Your project should only use iterable types in foreach loops 572
- Read doc
- Reliability
- Major
More information: https://insight.symfony.com/what-we-analyse/php.invalid_foreach_iterable
- public function execute()
- {
- $CLICSHOPPING_Archive = Registry::get('Archive');
- if (isset($_POST['selected'])) {
- foreach ($_POST['selected'] as $id) {
- $Qupdate = $CLICSHOPPING_Archive->db->prepare('update :table_products
- set products_archive = :products_archive
- where products_id = :products_id
- ');
- $Qupdate->bindInt(':products_archive', '0');
- $modules = $CLICSHOPPING_Archive->getConfigModules();
- $default_module = 'AR';
- foreach ($modules as $m) {
- if ($CLICSHOPPING_Archive->getConfigModuleInfo($m, 'is_installed') === true) {
- $default_module = $m;
- break;
- }
- }
- $this->init();
- $current_module = $this->getCurrentModule();
- $m = $this->getConfigModule($current_module);
- foreach ($m->getParameters() as $key) {
- $p = mb_strtolower($key);
- if (isset($_POST[$p])) {
- $this->app->saveCfgParam($key, $_POST[$p]);
- }
- </div>
- <div class="mt-1"></div>
- <ul class="nav nav-tabs flex-column flex-sm-row" role="tablist" id="appArchiveToolbar">
- <li class="nav-item">
- <?php
- foreach ($CLICSHOPPING_Archive->getConfigModules() as $m) {
- if ($CLICSHOPPING_Archive->getConfigModuleInfo($m, 'is_installed') === true) {
- echo '<li class="nav-link active" data-module="' . $m . '"><a href="' . $CLICSHOPPING_Archive->link('Configure&module=' . $m) . '">' . $CLICSHOPPING_Archive->getConfigModuleInfo($m, 'short_title') . '</a></li>';
- }
- }
- <li class="nav-item dropdown">
- <a class="nav-link dropdown-toggle" data-bs-toggle="dropdown" href="#" role="button" aria-haspopup="true"
- aria-expanded="false">Install</a>
- <div class="dropdown-menu">
- <?php
- foreach ($CLICSHOPPING_Archive->getConfigModules() as $m) {
- if ($CLICSHOPPING_Archive->getConfigModuleInfo($m, 'is_installed') === false) {
- echo '<a class="dropdown-item" href="' . $CLICSHOPPING_Archive->link('Configure&module=' . $m) . '">' . $CLICSHOPPING_Archive->getConfigModuleInfo($m, 'title') . '</a>';
- }
- }
- ?>
- </div>
- <div class="adminformTitle">
- <div class="card-block">
- <p class="card-text">
- <?php
- foreach ($CLICSHOPPING_Archive_Config->getInputParameters() as $cfg) {
- echo '<div>' . $cfg . '</div>';
- echo '<div class="mt-1"></div>';
- }
- ?>
- </p>
- protected function _buildBranch(int|string $parent_id, int $level = 0): string
- {
- $result = ((($level === 0) && ($this->parent_group_apply_to_root === true)) || ($level > 0)) ? $this->parent_group_start_string : null;
- if (isset($this->_data[$parent_id])) {
- foreach ($this->_data[$parent_id] as $category_id => $category) {
- if ($this->breadcrumb_usage === true) {
- $category_link = $this->buildBreadcrumb($category_id);
- } else {
- $category_link = $category_id;
- }
- if (empty($result)) {
- $result = [];
- }
- if (isset($this->_data[$parent_id])) {
- foreach ($this->_data[$parent_id] as $category_id => $category) {
- if ($this->breadcrumb_usage === true) {
- $category_link = $this->buildBreadcrumb($category_id);
- } else {
- $category_link = $category_id;
- }
- */
- public function buildBreadcrumb(?string $category_id, int $level = 0): string
- {
- $breadcrumb = '';
- foreach ($this->_data as $parent => $categories) {
- foreach ($categories as $id => $info) {
- if ($id == $category_id) {
- if ($level < 1) {
- $breadcrumb = $id;
- } else {
- public function buildBreadcrumb(?string $category_id, int $level = 0): string
- {
- $breadcrumb = '';
- foreach ($this->_data as $parent => $categories) {
- foreach ($categories as $id => $info) {
- if ($id == $category_id) {
- if ($level < 1) {
- $breadcrumb = $id;
- } else {
- $breadcrumb = $id . $this->breadcrumb_separator . $breadcrumb;
- * @param string $id The ID of the category to search for.
- * @return bool True if the category ID exists, false otherwise.
- */
- public function exists(string $id): bool
- {
- foreach ($this->_data as $parent => $categories) {
- foreach ($categories as $category_id => $info) {
- if ($id == $category_id) {
- return true;
- }
- }
- * @return bool True if the category ID exists, false otherwise.
- */
- public function exists(string $id): bool
- {
- foreach ($this->_data as $parent => $categories) {
- foreach ($categories as $category_id => $info) {
- if ($id == $category_id) {
- return true;
- }
- }
- }
- * @param array &$array Reference to an array where child IDs will be stored.
- * @return array An array containing the IDs of all child categories for the given category.
- */
- public function getChildren(string $category_id, array &$array = []): array
- {
- foreach ($this->_data as $parent => $categories) {
- if ($parent == $category_id) {
- foreach ($categories as $id => $info) {
- $array[] = $id;
- $this->getChildren($id, $array);
- }
- */
- public function getChildren(string $category_id, array &$array = []): array
- {
- foreach ($this->_data as $parent => $categories) {
- if ($parent == $category_id) {
- foreach ($categories as $id => $info) {
- $array[] = $id;
- $this->getChildren($id, $array);
- }
- }
- }
- * @return array|bool Returns an associative array of category data or a specific value if a key is provided. Returns false if the category is not found.
- */
- public function getData(string $id, $key = null): array|bool
- {
- foreach ($this->_data as $parent => $categories) {
- foreach ($categories as $category_id => $info) {
- if ($id == $category_id) {
- $data = [
- 'id' => $id,
- 'name' => $info['name'],
- */
- public function getData(string $id, $key = null): array|bool
- {
- foreach ($this->_data as $parent => $categories) {
- foreach ($categories as $category_id => $info) {
- if ($id == $category_id) {
- $data = [
- 'id' => $id,
- 'name' => $info['name'],
- 'description' => $info['description'],
- while ($Qtotals->fetch()) {
- $totals[$Qtotals->valueInt('categories_id')] = $Qtotals->valueInt('total');
- }
- foreach ($this->_data as $parent => $categories) {
- foreach ($categories as $id => $info) {
- if (isset($totals[$id]) && ($totals[$id] > 0)) {
- $this->_data[$parent][$id]['count'] = $totals[$id];
- $parent_category = $parent;
- while ($Qtotals->fetch()) {
- $totals[$Qtotals->valueInt('categories_id')] = $Qtotals->valueInt('total');
- }
- foreach ($this->_data as $parent => $categories) {
- foreach ($categories as $id => $info) {
- if (isset($totals[$id]) && ($totals[$id] > 0)) {
- $this->_data[$parent][$id]['count'] = $totals[$id];
- $parent_category = $parent;
- $this->_data[$parent][$id]['count'] = $totals[$id];
- $parent_category = $parent;
- while ($parent_category != $this->root_category_id) {
- foreach ($this->_data as $parent_parent => $parent_categories) {
- foreach ($parent_categories as $parent_category_id => $parent_category_info) {
- if ($parent_category_id == $parent_category) {
- $this->_data[$parent_parent][$parent_category_id]['count'] += $this->_data[$parent][$id]['count'];
- $parent_category = $parent_parent;
- $parent_category = $parent;
- while ($parent_category != $this->root_category_id) {
- foreach ($this->_data as $parent_parent => $parent_categories) {
- foreach ($parent_categories as $parent_category_id => $parent_category_info) {
- if ($parent_category_id == $parent_category) {
- $this->_data[$parent_parent][$parent_category_id]['count'] += $this->_data[$parent][$id]['count'];
- $parent_category = $parent_parent;
- * @param mixed $id The unique identifier for the category to search for.
- * @return int|bool The number of products in the specified category, or `false` if the category ID is not found.
- */
- public function getNumberOfProducts($id): int|bool
- {
- foreach ($this->_data as $parent => $categories) {
- foreach ($categories as $category_id => $info) {
- if ($id == $category_id) {
- return $info['count'];
- }
- }
- * @return int|bool The number of products in the specified category, or `false` if the category ID is not found.
- */
- public function getNumberOfProducts($id): int|bool
- {
- foreach ($this->_data as $parent => $categories) {
- foreach ($categories as $category_id => $info) {
- if ($id == $category_id) {
- return $info['count'];
- }
- }
- }
- $modules = $CLICSHOPPING_Categories->getConfigModules();
- $default_module = 'CT';
- foreach ($modules as $m) {
- if ($CLICSHOPPING_Categories->getConfigModuleInfo($m, 'is_installed') === true) {
- $default_module = $m;
- break;
- }
- }
- $this->init();
- $current_module = $this->getCurrentModule();
- $m = $this->getConfigModule($current_module);
- foreach ($m->getParameters() as $key) {
- $p = mb_strtolower($key);
- if (isset($_POST[$p])) {
- $this->app->saveCfgParam($key, $_POST[$p]);
- }
- </div>
- <div class="mt-1"></div>
- <ul class="nav nav-tabs flex-column flex-sm-row" role="tablist" id="appCategoriesToolbar">
- <li class="nav-item">
- <?php
- foreach ($CLICSHOPPING_Categories->getConfigModules() as $m) {
- if ($CLICSHOPPING_Categories->getConfigModuleInfo($m, 'is_installed') === true) {
- echo '<li class="nav-link active" data-module="' . $m . '"><a href="' . $CLICSHOPPING_Categories->link('Configure&module=' . $m) . '">' . $CLICSHOPPING_Categories->getConfigModuleInfo($m, 'short_title') . '</a></li>';
- }
- }
- <li class="nav-item dropdown">
- <a class="nav-link dropdown-toggle" data-bs-toggle="dropdown" href="#" role="button" aria-haspopup="true"
- aria-expanded="false">Install</a>
- <div class="dropdown-menu">
- <?php
- foreach ($CLICSHOPPING_Categories->getConfigModules() as $m) {
- if ($CLICSHOPPING_Categories->getConfigModuleInfo($m, 'is_installed') === false) {
- echo '<a class="dropdown-item" href="' . $CLICSHOPPING_Categories->link('Configure&module=' . $m) . '">' . $CLICSHOPPING_Categories->getConfigModuleInfo($m, 'title') . '</a>';
- }
- }
- ?>
- <div class="adminformTitle">
- <div class="card-block">
- <p class="card-text">
- <?php
- foreach ($CLICSHOPPING_Categories_Config->getInputParameters() as $cfg) {
- echo '<div>' . $cfg . '</div>';
- echo '<div class="mt-1"></div>';
- }
- ?>
- </p>
- $modules = $CLICSHOPPING_Manufacturers->getConfigModules();
- $default_module = 'CM';
- foreach ($modules as $m) {
- if ($CLICSHOPPING_Manufacturers->getConfigModuleInfo($m, 'is_installed') === true) {
- $default_module = $m;
- break;
- }
- }
- $this->init();
- $current_module = $this->getCurrentModule();
- $m = $this->getConfigModule($current_module);
- foreach ($m->getParameters() as $key) {
- $p = mb_strtolower($key);
- if (isset($_POST[$p])) {
- $this->app->saveCfgParam($key, $_POST[$p]);
- }
- </div>
- <div class="mt-1"></div>
- <ul class="nav nav-tabs flex-column flex-sm-row" role="tablist" id="appManufacturersToolbar">
- <li class="nav-item">
- <?php
- foreach ($CLICSHOPPING_Manufacturers->getConfigModules() as $m) {
- if ($CLICSHOPPING_Manufacturers->getConfigModuleInfo($m, 'is_installed') === true) {
- echo '<li class="nav-link active" data-module="' . $m . '"><a href="' . $CLICSHOPPING_Manufacturers->link('Configure&module=' . $m) . '">' . $CLICSHOPPING_Manufacturers->getConfigModuleInfo($m, 'short_title') . '</a></li>';
- }
- }
- <li class="nav-item dropdown">
- <a class="nav-link dropdown-toggle" data-bs-toggle="dropdown" href="#" role="button" aria-haspopup="true"
- aria-expanded="false">Install</a>
- <div class="dropdown-menu">
- <?php
- foreach ($CLICSHOPPING_Manufacturers->getConfigModules() as $m) {
- if ($CLICSHOPPING_Manufacturers->getConfigModuleInfo($m, 'is_installed') === false) {
- echo '<a class="dropdown-item" href="' . $CLICSHOPPING_Manufacturers->link('Configure&module=' . $m) . '">' . $CLICSHOPPING_Manufacturers->getConfigModuleInfo($m, 'title') . '</a>';
- }
- }
- ?>
- <div class="adminformTitle">
- <div class="card-block">
- <p class="card-text">
- <?php
- foreach ($CLICSHOPPING_Manufacturers_Config->getInputParameters() as $cfg) {
- echo '<div>' . $cfg . '</div>';
- echo '<div class="mt-1"></div>';
- }
- ?>
- </p>
- // Save the result to cache for future use
- $cache->save($cached_rules);
- }
- foreach ($cached_rules as $rule) {
- $rule_id = $rule['rules_id'];
- $condition = $rule['rules_condition'];
- $ruleName = $rule['rules_name'];
- $ruleType = $rule['rules_type'];
- $ruleValue = (float)$rule['rules_value'];
- $modules = $CLICSHOPPING_Products->getConfigModules();
- $default_module = 'PD';
- foreach ($modules as $m) {
- if ($CLICSHOPPING_Products->getConfigModuleInfo($m, 'is_installed') === true) {
- $default_module = $m;
- break;
- }
- }
- $this->init();
- $current_module = $this->getCurrentModule();
- $m = $this->getConfigModule($current_module);
- foreach ($m->getParameters() as $key) {
- $p = mb_strtolower($key);
- if (isset($_POST[$p])) {
- $this->app->saveCfgParam($key, $_POST[$p]);
- }
- * After deletion, redirects to the DynamicPricingRules page.
- */
- public function execute()
- {
- if (isset($_POST['selected'])) {
- foreach ($_POST['selected'] as $id) {
- $Qdelete = $this->app->db->prepare('delete
- from :table_dynamic_pricing_rules
- where rules_id = :rules_id
- ');
- $Qdelete->bindInt(':rules_id', $id);
- </div>
- <div class="mt-1"></div>
- <ul class="nav nav-tabs flex-column flex-sm-row" role="tablist" id="appProductsToolbar">
- <li class="nav-item">
- <?php
- foreach ($CLICSHOPPING_Products->getConfigModules() as $m) {
- if ($CLICSHOPPING_Products->getConfigModuleInfo($m, 'is_installed') === true) {
- echo '<li class="nav-link active" data-module="' . $m . '"><a href="' . $CLICSHOPPING_Products->link('Configure&module=' . $m) . '">' . $CLICSHOPPING_Products->getConfigModuleInfo($m, 'short_title') . '</a></li>';
- }
- }
- <li class="nav-item dropdown">
- <a class="nav-link dropdown-toggle" data-bs-toggle="dropdown" href="#" role="button" aria-haspopup="true"
- aria-expanded="false">Install</a>
- <div class="dropdown-menu">
- <?php
- foreach ($CLICSHOPPING_Products->getConfigModules() as $m) {
- if ($CLICSHOPPING_Products->getConfigModuleInfo($m, 'is_installed') === false) {
- echo '<a class="dropdown-item" href="' . $CLICSHOPPING_Products->link('Configure&module=' . $m) . '">' . $CLICSHOPPING_Products->getConfigModuleInfo($m, 'title') . '</a>';
- }
- }
- ?>
- <div class="adminformTitle">
- <div class="card-block">
- <p class="card-text">
- <?php
- foreach ($CLICSHOPPING_Products_Config->getInputParameters() as $cfg) {
- echo '<div>' . $cfg . '</div>';
- echo '<div class="mt-1"></div>';
- }
- ?>
- </p>
- Mustache.parse(templateLargeImage);
- <?php
- $pi_array = [];
- foreach ($pInfo->products_larger_images as $pi) {
- $pi_array[] = [
- 'counter' => count($pi_array) + 1,
- 'input_file_name' => 'products_image_large_' . $pi['id'],
- 'input_html_content_name' => 'products_image_htmlcontent_' . $pi['id'],
- 'image' => $pi['image'],
- public function install()
- {
- $cut_length = \strlen('CLICSHOPPING_APP_PRODUCTS_ATTRIBUTES_' . $this->code . '_');
- foreach ($this->getParameters() as $key) {
- $p = mb_strtolower(substr($key, $cut_length));
- $class = 'ClicShopping\Apps\Catalog\ProductsAttributes\Module\ClicShoppingAdmin\Config\\' . $this->code . '\Params\\' . $p;
- $cfg = new $class($this->code);
- $cut = 'CLICSHOPPING_APP_PRODUCTS_ATTRIBUTES_' . $this->code . '_';
- $cut_length = \strlen($cut);
- foreach ($this->getParameters() as $key) {
- $p = mb_strtolower(substr($key, $cut_length));
- $class = 'ClicShopping\Apps\Catalog\ProductsAttributes\Module\ClicShoppingAdmin\Config\\' . $this->code . '\Params\\' . $p;
- $cfg = new $class($this->code);
- $modules = $CLICSHOPPING_ProductsAttributes->getConfigModules();
- $default_module = 'PA';
- foreach ($modules as $m) {
- if ($CLICSHOPPING_ProductsAttributes->getConfigModuleInfo($m, 'is_installed') === true) {
- $default_module = $m;
- break;
- }
- }
- $this->init();
- $current_module = $this->getCurrentModule();
- $m = $this->getConfigModule($current_module);
- foreach ($m->getParameters() as $key) {
- $p = mb_strtolower($key);
- if (isset($_POST[$p])) {
- $this->app->saveCfgParam($key, $_POST[$p]);
- }
- </div>
- <div class="mt-1"></div>
- <ul class="nav nav-tabs flex-column flex-sm-row" role="tablist" id="appProductsAttributesToolbar">
- <li class="nav-item">
- <?php
- foreach ($CLICSHOPPING_ProductsAttributes->getConfigModules() as $m) {
- if ($CLICSHOPPING_ProductsAttributes->getConfigModuleInfo($m, 'is_installed') === true) {
- echo '<li class="nav-link active" data-module="' . $m . '"><a href="' . $CLICSHOPPING_ProductsAttributes->link('Configure&module=' . $m) . '">' . $CLICSHOPPING_ProductsAttributes->getConfigModuleInfo($m, 'short_title') . '</a></li>';
- }
- }
- <li class="nav-item dropdown">
- <a class="nav-link dropdown-toggle" data-bs-toggle="dropdown" href="#" role="button" aria-haspopup="true"
- aria-expanded="false">Install</a>
- <div class="dropdown-menu">
- <?php
- foreach ($CLICSHOPPING_ProductsAttributes->getConfigModules() as $m) {
- if ($CLICSHOPPING_ProductsAttributes->getConfigModuleInfo($m, 'is_installed') === false) {
- echo '<a class="dropdown-item" href="' . $CLICSHOPPING_ProductsAttributes->link('Configure&module=' . $m) . '">' . $CLICSHOPPING_ProductsAttributes->getConfigModuleInfo($m, 'title') . '</a>';
- }
- }
- ?>
- <div class="adminformTitle">
- <div class="card-block">
- <p class="card-text">
- <?php
- foreach ($CLICSHOPPING_ProductsAttributes_Config->getInputParameters() as $cfg) {
- echo '<div>' . $cfg . '</div>';
- echo '<div class="mt-1"></div>';
- }
- ?>
- </p>
- $modules = $CLICSHOPPING_Suppliers->getConfigModules();
- $default_module = 'CS';
- foreach ($modules as $m) {
- if ($CLICSHOPPING_Suppliers->getConfigModuleInfo($m, 'is_installed') === true) {
- $default_module = $m;
- break;
- }
- }
- $this->init();
- $current_module = $this->getCurrentModule();
- $m = $this->getConfigModule($current_module);
- foreach ($m->getParameters() as $key) {
- $p = mb_strtolower($key);
- if (isset($_POST[$p])) {
- $this->app->saveCfgParam($key, $_POST[$p]);
- }
- }
- public function execute()
- {
- if (isset($_POST['selected'])) {
- foreach ($_POST['selected'] as $id) {
- $Qdelete = $this->app->db->prepare('delete
- from :table_suppliers
- where suppliers_id = :suppliers_id
- ');
- $Qdelete->bindInt(':suppliers_id', $id);
- </div>
- <div class="mt-1"></div>
- <ul class="nav nav-tabs flex-column flex-sm-row" role="tablist" id="appSuppliersToolbar">
- <li class="nav-item">
- <?php
- foreach ($CLICSHOPPING_Suppliers->getConfigModules() as $m) {
- if ($CLICSHOPPING_Suppliers->getConfigModuleInfo($m, 'is_installed') === true) {
- echo '<li class="nav-link active" data-module="' . $m . '"><a href="' . $CLICSHOPPING_Suppliers->link('Configure&module=' . $m) . '">' . $CLICSHOPPING_Suppliers->getConfigModuleInfo($m, 'short_title') . '</a></li>';
- }
- }
- <li class="nav-item dropdown">
- <a class="nav-link dropdown-toggle" data-bs-toggle="dropdown" href="#" role="button" aria-haspopup="true"
- aria-expanded="false">Install</a>
- <div class="dropdown-menu">
- <?php
- foreach ($CLICSHOPPING_Suppliers->getConfigModules() as $m) {
- if ($CLICSHOPPING_Suppliers->getConfigModuleInfo($m, 'is_installed') === false) {
- echo '<a class="dropdown-item" href="' . $CLICSHOPPING_Suppliers->link('Configure&module=' . $m) . '">' . $CLICSHOPPING_Suppliers->getConfigModuleInfo($m, 'title') . '</a>';
- }
- }
- ?>
- <div class="adminformTitle">
- <div class="card-block">
- <p class="card-text">
- <?php
- foreach ($CLICSHOPPING_Suppliers_Config->getInputParameters() as $cfg) {
- echo '<div>' . $cfg . '</div>';
- echo '<div class="mt-1"></div>';
- }
- ?>
- </p>
- $modules = $CLICSHOPPING_EMail->getConfigModules();
- $default_module = 'EM';
- foreach ($modules as $m) {
- if ($CLICSHOPPING_EMail->getConfigModuleInfo($m, 'is_installed') === true) {
- $default_module = $m;
- break;
- }
- }
- $this->init();
- $current_module = $this->getCurrentModule();
- $m = $this->getConfigModule($current_module);
- foreach ($m->getParameters() as $key) {
- $p = mb_strtolower($key);
- if (isset($_POST[$p])) {
- $this->app->saveCfgParam($key, $_POST[$p]);
- }
- </div>
- <div class="mt-1"></div>
- <ul class="nav nav-tabs flex-column flex-sm-row" role="tablist" id="appEmailToolbar">
- <li class="nav-item">
- <?php
- foreach ($CLICSHOPPING_EMail->getConfigModules() as $m) {
- if ($CLICSHOPPING_EMail->getConfigModuleInfo($m, 'is_installed') === true) {
- echo '<li class="nav-link active" data-module="' . $m . '"><a href="' . $CLICSHOPPING_EMail->link('Configure&module=' . $m) . '">' . $CLICSHOPPING_EMail->getConfigModuleInfo($m, 'short_title') . '</a></li>';
- }
- }
- ?>
- <li class="nav-item dropdown">
- <a class="nav-link dropdown-toggle" data-bs-toggle="dropdown" href="#" role="button" aria-haspopup="true"
- aria-expanded="false">Install</a>
- <div class="dropdown-menu">
- <?php
- foreach ($CLICSHOPPING_EMail->getConfigModules() as $m) {
- if ($CLICSHOPPING_EMail->getConfigModuleInfo($m, 'is_installed') === false) {
- echo '<a class="dropdown-item" href="' . $CLICSHOPPING_EMail->link('Configure&module=' . $m) . '">' . $CLICSHOPPING_EMail->getConfigModuleInfo($m, 'title') . '</a>';
- }
- }
- ?>
- <div class="adminformTitle">
- <div class="card-block">
- <p class="card-text">
- <?php
- foreach ($CLICSHOPPING_EMail_Config->getInputParameters() as $cfg) {
- echo '<div>' . $cfg . '</div>';
- echo '<div class="mt-1"></div>';
- }
- ?>
- </p>
- $message = str_replace('src="/', 'src="' . HTTP::getShopUrlDomain(), $message);
- $CLICSHOPPING_Mail->addHtmlCkeditor($message);
- foreach ($send_newsletter as $value) {
- $CLICSHOPPING_Mail->send($value['customers_email_address'], $value['customers_firstname'] . ' ' . $value['customers_lastname'], $this->emailFrom, null, $subject);
- }
- $CLICSHOPPING_Hooks->call('Newsletter', 'NewsletterSendCkEditor');
- }
- }
- } else {
- $chosen = [];
- foreach ($_POST['chosen'] as $id) {
- if (is_numeric($id) && !\in_array($id, $chosen)) {
- $chosen[] = $id;
- }
- }
- ];
- }
- } else {
- $chosen = [];
- foreach ($_POST['chosen'] as $id) {
- if (is_numeric($id) && !\in_array($id, $chosen)) {
- $chosen[] = $id;
- }
- }
- $modules = $CLICSHOPPING_Newsletter->getConfigModules();
- $default_module = 'NL';
- foreach ($modules as $m) {
- if ($CLICSHOPPING_Newsletter->getConfigModuleInfo($m, 'is_installed') === true) {
- $default_module = $m;
- break;
- }
- }
- $this->init();
- $current_module = $this->getCurrentModule();
- $m = $this->getConfigModule($current_module);
- foreach ($m->getParameters() as $key) {
- $p = mb_strtolower($key);
- if (isset($_POST[$p])) {
- $this->app->saveCfgParam($key, $_POST[$p]);
- }
- if (isset($_GET['nID'])) {
- $nID = HTML::sanitize($_GET['nID']);
- }
- if (isset($_POST['selected'])) {
- foreach ($_POST['selected'] as $id) {
- $Qdelete = $CLICSHOPPING_Newsletter->db->prepare('delete
- from :table_newsletters
- where newsletters_id = :newsletters_id
- ');
- $Qdelete->bindInt(':newsletters_id', $id);
- </div>
- <div class="mt-1"></div>
- <ul class="nav nav-tabs flex-column flex-sm-row" role="tablist" id="appNewsletterToolbar">
- <li class="nav-item">
- <?php
- foreach ($CLICSHOPPING_Newsletter->getConfigModules() as $m) {
- if ($CLICSHOPPING_Newsletter->getConfigModuleInfo($m, 'is_installed') === true) {
- echo '<li class="nav-link active" data-module="' . $m . '"><a href="' . $CLICSHOPPING_Newsletter->link('Configure&module=' . $m) . '">' . $CLICSHOPPING_Newsletter->getConfigModuleInfo($m, 'short_title') . '</a></li>';
- }
- }
- ?>
- <li class="nav-item dropdown">
- <a class="nav-link dropdown-toggle" data-bs-toggle="dropdown" href="#" role="button" aria-haspopup="true"
- aria-expanded="false">Install</a>
- <div class="dropdown-menu">
- <?php
- foreach ($CLICSHOPPING_Newsletter->getConfigModules() as $m) {
- if ($CLICSHOPPING_Newsletter->getConfigModuleInfo($m, 'is_installed') === false) {
- echo '<a class="dropdown-item" href="' . $CLICSHOPPING_Newsletter->link('Configure&module=' . $m) . '">' . $CLICSHOPPING_Newsletter->getConfigModuleInfo($m, 'title') . '</a>';
- }
- }
- ?>
- <div class="adminformTitle">
- <div class="card-block">
- <p class="card-text">
- <?php
- foreach ($CLICSHOPPING_Newsletter_Config->getInputParameters() as $cfg) {
- echo '<div>' . $cfg . '</div>';
- echo '<div class="mt-1"></div>';
- }
- ?>
- </p>
- $modules = $CLICSHOPPING_PageManager->getConfigModules();
- $default_module = 'PM';
- foreach ($modules as $m) {
- if ($CLICSHOPPING_PageManager->getConfigModuleInfo($m, 'is_installed') === true) {
- $default_module = $m;
- break;
- }
- }
- $this->init();
- $current_module = $this->getCurrentModule();
- $m = $this->getConfigModule($current_module);
- foreach ($m->getParameters() as $key) {
- $p = mb_strtolower($key);
- if (isset($_POST[$p])) {
- $this->app->saveCfgParam($key, $_POST[$p]);
- }
- $CLICSHOPPING_Hooks = Registry::get('Hooks');
- $page = (isset($_GET['page']) && is_numeric($_GET['page'])) ? (int)$_GET['page'] : 1;
- if (!\is_null($_POST['selected'])) {
- foreach ($_POST['selected'] as $id) {
- if ($id != 3) {
- if ($id != 4) {
- if ($id != 5) {
- $CLICSHOPPING_PageManager->db->delete('pages_manager', ['pages_id' => (int)$id]);
- $CLICSHOPPING_PageManager->db->delete('pages_manager_description', ['pages_id' => (int)$id]);
- </div>
- <div class="mt-1"></div>
- <ul class="nav nav-tabs flex-column flex-sm-row" role="tablist" id="appPageManagerToolbar">
- <li class="nav-item">
- <?php
- foreach ($CLICSHOPPING_PageManager->getConfigModules() as $m) {
- if ($CLICSHOPPING_PageManager->getConfigModuleInfo($m, 'is_installed') === true) {
- echo '<li class="nav-link active" data-module="' . $m . '"><a href="' . $CLICSHOPPING_PageManager->link('Configure&module=' . $m) . '">' . $CLICSHOPPING_PageManager->getConfigModuleInfo($m, 'short_title') . '</a></li>';
- }
- }
- ?>
- <li class="nav-item dropdown">
- <a class="nav-link dropdown-toggle" data-bs-toggle="dropdown" href="#" role="button" aria-haspopup="true"
- aria-expanded="false">Install</a>
- <div class="dropdown-menu">
- <?php
- foreach ($CLICSHOPPING_PageManager->getConfigModules() as $m) {
- if ($CLICSHOPPING_PageManager->getConfigModuleInfo($m, 'is_installed') === false) {
- echo '<a class="dropdown-item" href="' . $CLICSHOPPING_PageManager->link('Configure&module=' . $m) . '">' . $CLICSHOPPING_PageManager->getConfigModuleInfo($m, 'title') . '</a>';
- }
- }
- ?>
- <div class="adminformTitle">
- <div class="card-block">
- <p class="card-text">
- <?php
- foreach ($CLICSHOPPING_PageManager_Config->getInputParameters() as $cfg) {
- echo '<div>' . $cfg . '</div>';
- echo '<div class="mt-1"></div>';
- }
- ?>
- </p>
- $modules = $CLICSHOPPING_Administrators->getConfigModules();
- $default_module = 'AD';
- foreach ($modules as $m) {
- if ($CLICSHOPPING_Administrators->getConfigModuleInfo($m, 'is_installed') === true) {
- $default_module = $m;
- break;
- }
- }
- $this->init();
- $current_module = $this->getCurrentModule();
- $m = $this->getConfigModule($current_module);
- foreach ($m->getParameters() as $key) {
- $p = mb_strtolower($key);
- if (isset($_POST[$p])) {
- $this->app->saveCfgParam($key, $_POST[$p]);
- }
- </div>
- <div class="mt-1"></div>
- <ul class="nav nav-tabs flex-column flex-sm-row" role="tablist" id="appAdministratorsToolbar">
- <li class="nav-item">
- <?php
- foreach ($CLICSHOPPING_Administrators->getConfigModules() as $m) {
- if ($CLICSHOPPING_Administrators->getConfigModuleInfo($m, 'is_installed') === true) {
- echo '<li class="nav-link active" data-module="' . $m . '"><a href="' . $CLICSHOPPING_Administrators->link('Configure&module=' . $m) . '">' . $CLICSHOPPING_Administrators->getConfigModuleInfo($m, 'short_title') . '</a></li>';
- }
- }
- <li class="nav-item dropdown">
- <a class="nav-link dropdown-toggle" data-bs-toggle="dropdown" href="#" role="button" aria-haspopup="true"
- aria-expanded="false">Install</a>
- <div class="dropdown-menu">
- <?php
- foreach ($CLICSHOPPING_Administrators->getConfigModules() as $m) {
- if ($CLICSHOPPING_Administrators->getConfigModuleInfo($m, 'is_installed') === false) {
- echo '<a class="dropdown-item" href="' . $CLICSHOPPING_Administrators->link('Configure&module=' . $m) . '">' . $CLICSHOPPING_Administrators->getConfigModuleInfo($m, 'title') . '</a>';
- }
- }
- ?>
- <div class="adminformTitle">
- <div class="card-block">
- <p class="card-text">
- <?php
- foreach ($CLICSHOPPING_Administrators_Config->getInputParameters() as $cfg) {
- echo '<div>' . $cfg . '</div>';
- echo '<div class="mt-1"></div>';
- }
- ?>
- </p>
- $modules = $CLICSHOPPING_Antispam->getConfigModules();
- $default_module = 'GE';
- foreach ($modules as $m) {
- if ($CLICSHOPPING_Antispam->getConfigModuleInfo($m, 'is_installed') === true) {
- $default_module = $m;
- break;
- }
- }
- $this->init();
- $current_module = $this->getCurrentModule();
- $m = $this->getConfigModule($current_module);
- foreach ($m->getParameters() as $key) {
- $p = mb_strtolower($key);
- if (isset($_POST[$p])) {
- $this->app->saveCfgParam($key, $_POST[$p]);
- }
- </div>
- <div class="mt-1"></div>
- <ul class="nav nav-tabs flex-column flex-sm-row" role="tablist" id="appAntispamToolbar">
- <li class="nav-item">
- <?php
- foreach ($CLICSHOPPING_Antispam->getConfigModules() as $m) {
- if ($CLICSHOPPING_Antispam->getConfigModuleInfo($m, 'is_installed') === true) {
- echo '<li class="nav-link active" data-module="' . $m . '"><a href="' . $CLICSHOPPING_Antispam->link('Configure&module=' . $m) . '">' . $CLICSHOPPING_Antispam->getConfigModuleInfo($m, 'short_title') . '</a></li>';
- }
- }
- ?>
- <li class="nav-item dropdown">
- <a class="nav-link dropdown-toggle" data-bs-toggle="dropdown" href="#" role="button" aria-haspopup="true"
- aria-expanded="false">Install</a>
- <div class="dropdown-menu">
- <?php
- foreach ($CLICSHOPPING_Antispam->getConfigModules() as $m) {
- if ($CLICSHOPPING_Antispam->getConfigModuleInfo($m, 'is_installed') === false) {
- echo '<a class="dropdown-item" href="' . $CLICSHOPPING_Antispam->link('Configure&module=' . $m) . '">' . $CLICSHOPPING_Antispam->getConfigModuleInfo($m, 'title') . '</a>';
- }
- }
- ?>
- </div>
- <div class="adminformTitle">
- <div class="card-block">
- <p class="card-text">
- <?php
- foreach ($CLICSHOPPING_Antispam_Config->getInputParameters() as $cfg) {
- echo '<div>' . $cfg . '</div>';
- echo '<div class="mt-1"></div>';
- }
- ?>
- </p>
- $this->db->save('api', $sql_data_array);
- $api_id = $this->db->lastInsertId();
- if (isset($data['api_ip'])) {
- foreach ($data['api_ip'] as $ip) {
- if ($ip) {
- $insert_data_array = [
- 'api_id' => (int)$api_id,
- 'ip' => HTML::sanitize($ip)
- ];
- $this->db->delete('api_ip', $delete_sql_array);
- if (isset($data['api_ip'])) {
- foreach ($data['api_ip'] as $ip) {
- if ($ip) {
- $insert_data_array = [
- 'api_id' => (int)$api_id,
- 'ip' => HTML::sanitize($ip)
- ];
- ');
- $Qapi->bindint(':api_id', $api_id);
- $Qapi->execute();
- foreach ($Qapi->fetch() as $result) {
- $ip_data[] = $result['ip'];
- }
- return $ip_data;
- }
- ]);
- return false;
- }
- foreach ($Qips as $allowedIp) {
- $ip = $allowedIp['ip'];
- if ($ip === '127.0.0.1' || $ip === 'localhost') {
- if (in_array($clientIp, ['127.0.0.1', '::1'])) {
- self::logSecurityEvent('Localhost access granted', [
- $modules = $CLICSHOPPING_Api->getConfigModules();
- $default_module = 'AI';
- foreach ($modules as $m) {
- if ($CLICSHOPPING_Api->getConfigModuleInfo($m, 'is_installed') === true) {
- $default_module = $m;
- break;
- }
- }
- $this->init();
- $current_module = $this->getCurrentModule();
- $m = $this->getConfigModule($current_module);
- foreach ($m->getParameters() as $key) {
- $p = mb_strtolower($key);
- if (isset($_POST[$p])) {
- $this->app->saveCfgParam($key, $_POST[$p]);
- }
- </div>
- <div class="mt-1"></div>
- <ul class="nav nav-tabs flex-column flex-sm-row" role="tablist" id="appApiToolbar">
- <li class="nav-item">
- <?php
- foreach ($CLICSHOPPING_Api->getConfigModules() as $m) {
- if ($CLICSHOPPING_Api->getConfigModuleInfo($m, 'is_installed') === true) {
- echo '<li class="nav-link active" data-module="' . $m . '"><a href="' . $CLICSHOPPING_Api->link('Configure&module=' . $m) . '">' . $CLICSHOPPING_Api->getConfigModuleInfo($m, 'short_title') . '</a></li>';
- }
- }
- <li class="nav-item dropdown">
- <a class="nav-link dropdown-toggle" data-bs-toggle="dropdown" href="#" role="button" aria-haspopup="true"
- aria-expanded="false">Install</a>
- <div class="dropdown-menu">
- <?php
- foreach ($CLICSHOPPING_Api->getConfigModules() as $m) {
- if ($CLICSHOPPING_Api->getConfigModuleInfo($m, 'is_installed') === false) {
- echo '<a class="dropdown-item" href="' . $CLICSHOPPING_Api->link('Configure&module=' . $m) . '">' . $CLICSHOPPING_Api->getConfigModuleInfo($m, 'title') . '</a>';
- }
- }
- ?>
- <div class="adminformTitle">
- <div class="card-block">
- <p class="card-text">
- <?php
- foreach ($CLICSHOPPING_Api_Config->getInputParameters() as $cfg) {
- echo '<div>' . $cfg . '</div>';
- echo '<div class="mt-1"></div>';
- }
- ?>
- </p>
- <td class="text-end"><?php echo $CLICSHOPPING_Api->getDef('text_action'); ?></td>
- </tr>
- </thead>
- <tbody>
- <?php
- foreach ($result as $value) {
- ?>
- <tr>
- <td><?php echo $value['ip']; ?></td>
- <td><?php echo $value['comment']; ?></td>
- <td class="text-end">
- <td class="text-end"><?php echo $CLICSHOPPING_Api->getDef('text_action'); ?></td>
- </tr>
- </thead>
- <tbody>
- <?php
- foreach ($result as $value) {
- ?>
- <tr>
- <td><?php echo $value['session_id']; ?></td>
- <td><?php echo $value['ip']; ?></td>
- <td><?php echo $value['date_added']; ?></td>
- $modules = $CLICSHOPPING_Cache->getConfigModules();
- $default_module = 'CA';
- foreach ($modules as $m) {
- if ($CLICSHOPPING_Cache->getConfigModuleInfo($m, 'is_installed') === true) {
- $default_module = $m;
- break;
- }
- }
- $this->init();
- $current_module = $this->getCurrentModule();
- $m = $this->getConfigModule($current_module);
- foreach ($m->getParameters() as $key) {
- $p = mb_strtolower($key);
- if (isset($_POST[$p])) {
- $this->app->saveCfgParam($key, $_POST[$p]);
- }
- $CLICSHOPPING_MessageStack->add($CLICSHOPPING_Cache->getDef('error_cache_directory_does_not_exist'), 'error');
- }
- $cache_files = [];
- foreach (glob(Cache::getPath() . '*.cache') as $c) {
- $key = basename($c, '.cache');
- if (($pos = strpos($key, '-')) !== false) {
- $cache_files[substr($key, 0, $pos)][] = $key;
- } else {
- </div>
- <div class="mt-1"></div>
- <ul class="nav nav-tabs flex-column flex-sm-row" role="tablist" id="appCacheToolbar">
- <li class="nav-item">
- <?php
- foreach ($CLICSHOPPING_Cache->getConfigModules() as $m) {
- if ($CLICSHOPPING_Cache->getConfigModuleInfo($m, 'is_installed') === true) {
- echo '<li class="nav-link active" data-module="' . $m . '"><a href="' . $CLICSHOPPING_Cache->link('Configure&module=' . $m) . '">' . $CLICSHOPPING_Cache->getConfigModuleInfo($m, 'short_title') . '</a></li>';
- }
- }
- <li class="nav-item dropdown">
- <a class="nav-link dropdown-toggle" data-bs-toggle="dropdown" href="#" role="button" aria-haspopup="true"
- aria-expanded="false">Install</a>
- <div class="dropdown-menu">
- <?php
- foreach ($CLICSHOPPING_Cache->getConfigModules() as $m) {
- if ($CLICSHOPPING_Cache->getConfigModuleInfo($m, 'is_installed') === false) {
- echo '<a class="dropdown-item" href="' . $CLICSHOPPING_Cache->link('Configure&module=' . $m) . '">' . $CLICSHOPPING_Cache->getConfigModuleInfo($m, 'title') . '</a>';
- }
- }
- ?>
- <div class="adminformTitle">
- <div class="card-block">
- <p class="card-text">
- <?php
- foreach ($CLICSHOPPING_Cache_Config->getInputParameters() as $cfg) {
- echo '<div>' . $cfg . '</div>';
- echo '<div class="mt-1"></div>';
- }
- ?>
- </p>
- <tr>
- <td><?php echo $CLICSHOPPING_Cache->getDef('text_enabled'); ?></td>
- <td>
- <?php
- $enabled = 'Unknown';
- foreach ($data['directives'] as $item) {
- if ($item['k'] === 'opcache.enable') {
- $enabled = $item['v'] ? 'Yes' : 'No';
- break;
- }
- }
- </tr>
- <tr>
- <td><?php echo $CLICSHOPPING_Cache->getDef('text_memory_consumption'); ?></td>
- <td>
- <?php
- foreach ($data['directives'] as $item) {
- if ($item['k'] === 'opcache.memory_consumption' && is_numeric($item['v'])) {
- echo number_format($item['v'] / 1024 / 1024, 2) . ' MB';
- break;
- }
- }
- <tr>
- <td><?php echo $CLICSHOPPING_Cache->getDef('text_jit_enabled'); ?></td>
- <td>
- <?php
- foreach ($data['directives'] as $item) {
- if ($item['k'] === 'opcache.jit') {
- echo $item['v'] !== 'off' && $item['v'] !== '0' ? 'Yes' : 'No';
- break;
- }
- }
- <tr>
- <td><?php echo $CLICSHOPPING_Cache->getDef('text_jit_buffer_size'); ?></td>
- <td>
- <?php
- foreach ($data['directives'] as $item) {
- if ($item['k'] === 'opcache.jit_buffer_size') {
- echo number_format($item['v'] / 1024 / 1024, 2) . ' MB';
- break;
- }
- }
- $Qcheck->bindInt(':language_id', $language_id);
- $Qcheck->execute();
- $check_array = $Qcheck->fetchAll();
- foreach ($check_array as $item) {
- $Qcheck = $this->app->db->prepare('select id,
- entity_id
- from :table_categories_embedding
- where entity_id = :entity_id
- ');
- $embeddedDocuments = NewVector::createEmbedding(null, $embedding_data);
- $embeddings = [];
- foreach ($embeddedDocuments as $embeddedDocument) {
- if (is_array($embeddedDocument->embedding)) {
- $embeddings[] = $embeddedDocument->embedding;
- }
- }
- $Qcheck->bindInt(':language_id', $language_id);
- $Qcheck->execute();
- $check_array = $Qcheck->fetchAll();
- foreach ($check_array as $item) {
- $Qcheck = $this->app->db->prepare('select id,
- entity_id
- from :table_manufacturers_embedding
- where entity_id = :entity_id
- ');
- $embeddedDocuments = NewVector::createEmbedding(null, $embedding_data);
- $embeddings = [];
- foreach ($embeddedDocuments as $embeddedDocument) {
- if (is_array($embeddedDocument->embedding)) {
- $embeddings[] = $embeddedDocument->embedding;
- }
- }
- $Qcheck->bindInt(':language_id', $language_id);
- $Qcheck->execute();
- $check_array = $Qcheck->fetchAll();
- foreach ($check_array as $item) {
- $Qcheck = $this->app->db->prepare('select id,
- entity_id
- from :table_pages_manager_embedding
- where entity_id = :entity_id
- ');
- $embeddedDocuments = NewVector::createEmbedding(null, $embedding_data);
- $embeddings = [];
- foreach ($embeddedDocuments as $embeddedDocument) {
- if (is_array($embeddedDocument->embedding)) {
- $embeddings[] = $embeddedDocument->embedding;
- }
- }
- $QcheckProducts->bindInt(':language_id', $language_id);
- $QcheckProducts->execute();
- $check_array = $QcheckProducts->fetchAll();
- foreach ($check_array as $item) {
- $Qcheck = $this->app->db->prepare('select id,
- entity_id
- from :table_products_embedding
- where entity_id = :entity_id
- ');
- $embeddedDocuments = NewVector::createEmbedding(null, $embedding_data);
- $embeddings = [];
- foreach ($embeddedDocuments as $embeddedDocument) {
- if (is_array($embeddedDocument->embedding)) {
- $embeddings[] = $embeddedDocument->embedding;
- }
- }
- $Qcheck->bindInt(':language_id', $language_id);
- $Qcheck->execute();
- $check_array = $Qcheck->fetchAll();
- foreach ($check_array as $item) {
- $Qcheck = $this->app->db->prepare('select id,
- entity_id
- from :table_reviews_embedding
- where entity_id = :entity_id
- ');
- $embeddedDocuments = NewVector::createEmbedding(null, $embedding_data);
- $embeddings = [];
- foreach ($embeddedDocuments as $embeddedDocument) {
- if (is_array($embeddedDocument->embedding)) {
- $embeddings[] = $embeddedDocument->embedding;
- }
- }
- $Qcheck->execute();
- $check_array = $Qcheck->fetchAll();
- foreach ($check_array as $item) {
- $Qcheck = $this->app->db->prepare('select id,
- entity_id
- from :table_suppliers_embedding
- where entity_id = :entity_id
- ');
- $embeddedDocuments = NewVector::createEmbedding(null, $embedding_data);
- $embeddings = [];
- foreach ($embeddedDocuments as $embeddedDocument) {
- if (is_array($embeddedDocument->embedding)) {
- $embeddings[] = $embeddedDocument->embedding;
- }
- }
- */
- public function updateAllEmbeddings(): void
- {
- $language_array = $this->lang->getLanguages();
- foreach ($language_array as $value) {
- $this->updateAllEmbeddingCategories($value['id']);
- $this->updateAllEmbeddingManufacturers($value['id']);
- $this->updateAllEmbeddingProducts($value['id']);
- $this->updateAllEmbeddingPageManager($value['id']);
- $this->updateAllEmbeddingReviews($value['id']);
- public function clearCache(): bool
- {
- $files = glob($this->cacheDir . '*.json');
- $success = true;
- foreach ($files as $file) {
- if (!@unlink($file)) {
- $success = false;
- }
- }
- $query = $this->db->prepare("SHOW TABLES");
- $query->execute();
- $tables = $query->fetchAll(\PDO::FETCH_COLUMN);
- // For each table, analyze the columns to detect potential relationships
- foreach ($tables as $table) {
- // Validate table name
- $safeTable = InputValidator::sanitizeIdentifier($table);
- if ($safeTable !== $table) {
- $this->securityLogger->logSecurityEvent(
- "Suspicious table name sanitized: {$table} -> {$safeTable}",
- $query->execute();
- $tables = $query->fetchAll(\PDO::FETCH_COLUMN);
- $this->databaseSchema = [];
- foreach ($tables as $table) {
- // Validate table name
- $safeTable = InputValidator::sanitizeIdentifier($table);
- if ($safeTable !== $table) {
- $this->securityLogger->logSecurityEvent(
- $columnsQuery->execute();
- $columns = $columnsQuery->fetchAll(\PDO::FETCH_ASSOC);
- $this->databaseSchema[$table] = [];
- foreach ($columns as $column) {
- $this->databaseSchema[$table][$column['Field']] = [
- 'type' => $column['Type'],
- 'null' => $column['Null'],
- 'key' => $column['Key'],
- 'default' => $column['Default'],
- $stmt = $this->db->prepare('EXPLAIN ' . $sql);
- $stmt->execute();
- $plan = $stmt->fetchAll(\PDO::FETCH_ASSOC);
- $this->securityLogger->logSecurityEvent("EXPLAIN PLAN for SQL:\n" . $sql, 'info');
- foreach ($plan as $row) {
- $this->securityLogger->logSecurityEvent(print_r($row, true), 'info');
- }
- } catch (\Exception $e) {
- $this->securityLogger->logSecurityEvent("Failed to EXPLAIN query: " . $e->getMessage(), 'error');
- }
- $query = $this->db->prepare("DESCRIBE " . $table);
- $query->execute();
- $columns = $query->fetchAll(\PDO::FETCH_ASSOC);
- $schema = [];
- foreach ($columns as $column) {
- $schema[$column['Field']] = $column['Type'];
- }
- // Cache the schema
- $this->tableSchemaCache[$table] = $schema;
- }
- // Ajuster pour gérer plusieurs jeux de résultats
- if (isset($results['multi_query_results'])) {
- $allResults = [];
- foreach ($results['multi_query_results'] as $queryBlock) {
- foreach ($queryBlock['results'] as $item) {
- $allResults[] = $item;
- }
- }
- $interpretation = $this->interpretResults($question, $allResults);
- // Ajuster pour gérer plusieurs jeux de résultats
- if (isset($results['multi_query_results'])) {
- $allResults = [];
- foreach ($results['multi_query_results'] as $queryBlock) {
- foreach ($queryBlock['results'] as $item) {
- $allResults[] = $item;
- }
- }
- $interpretation = $this->interpretResults($question, $allResults);
- } else {
- if ($this->debug == 'True') {
- $this->securityLogger->logSecurityEvent("Results found in table {$tableName}: " . count($results), 'info');
- }
- // Ajouter les résultats à la liste complète
- foreach ($results as $document) {
- $allResults[] = $document;
- }
- } catch (\Exception $e) {
- if ($this->debug == 'True') {
- $this->securityLogger->logSecurityEvent("Error while searching in table {$tableName}: " . $e->getMessage(), 'error');
- $rows = "<tbody>";
- foreach ($data as $row) {
- $rows .= "<tr>";
- foreach ($row as $key => $value) {
- if (!is_numeric($key)) {
- $value = HTMLOverrideCommon::removeInvisibleCharacters($value);
- $rows .= "<td>" . htmlspecialchars(Hash::displayDecryptedDataText($value)) . "</td>";
- }
- }
- */
- private function validateQueryPatterns(string $query): bool
- {
- // Check if query matches any whitelist pattern
- $whitelistMatch = false;
- foreach ($this->queryWhitelist as $pattern) {
- if (preg_match($pattern, $query)) {
- $whitelistMatch = true;
- break;
- }
- }
- if (!$whitelistMatch) {
- return false;
- }
- // Check if query contains any blacklisted pattern
- foreach ($this->queryBlacklist as $pattern) {
- if (preg_match($pattern, $query)) {
- return false;
- }
- }
- *
- * @param int $now Current timestamp
- */
- private function cleanupStorage(int $now): void
- {
- foreach ($this->storage as $key => $data) {
- if (isset($data['first_request']) && $data['first_request'] < ($now - ($this->timeWindow * 2))) {
- unset($this->storage[$key]);
- }
- }
- }
- return $sessions;
- }
- $files = glob($this->dirSession . '/*.json');
- foreach ($files as $file) {
- $sessionId = basename($file, '.json');
- if ($fullData) {
- $sessionData = json_decode(file_get_contents($file), true);
- if ($sessionData && isset($sessionData['checkout_session'])) {
- // Build line items according to OpenAI spec
- $lineItems = [];
- $itemsBaseAmount = 0;
- foreach ($items as $item) {
- $productData = $this->getProductData($item['id']);
- if (!$productData) {
- continue; // Skip invalid products
- }
- // Update items if provided
- if (isset($input['items'])) {
- $lineItems = [];
- $itemsBaseAmount = 0;
- foreach ($input['items'] as $item) {
- $productData = $this->getProductData($item['id']);
- if (!$productData) {
- continue;
- }
- $embeddedDocuments = NewVector::createEmbedding(null, $embedding_data);
- $embeddings = [];
- foreach ($embeddedDocuments as $embeddedDocument) {
- if (is_array($embeddedDocument->embedding)) {
- $embeddings[] = $embeddedDocument->embedding;
- }
- }
- $embeddedDocuments = NewVector::createEmbedding(null, $embedding_data);
- $embeddings = [];
- foreach ($embeddedDocuments as $embeddedDocument) {
- if (is_array($embeddedDocument->embedding)) {
- $embeddings[] = $embeddedDocument->embedding;
- }
- }
- $embeddedDocuments = NewVector::createEmbedding(null, $embedding_data);
- $embeddings = [];
- foreach ($embeddedDocuments as $embeddedDocument) {
- if (is_array($embeddedDocument->embedding)) {
- $embeddings[] = $embeddedDocument->embedding;
- }
- }
- $embeddedDocuments = NewVector::createEmbedding(null, $embedding_data);
- $embeddings = [];
- foreach ($embeddedDocuments as $embeddedDocument) {
- if (is_array($embeddedDocument->embedding)) {
- $embeddings[] = $embeddedDocument->embedding;
- }
- }
- $embeddedDocuments = NewVector::createEmbedding(null, $embedding_data);
- $embeddings = [];
- foreach ($embeddedDocuments as $embeddedDocument) {
- if (is_array($embeddedDocument->embedding)) {
- $embeddings[] = $embeddedDocument->embedding;
- }
- }
- }
- $embeddedDocuments = NewVector::createEmbedding(null, $embedding_data);
- $embeddings = [];
- foreach ($embeddedDocuments as $embeddedDocument) {
- if (is_array($embeddedDocument->embedding)) {
- $embeddings[] = $embeddedDocument->embedding;
- }
- }
- }
- $embeddedDocuments = NewVector::createEmbedding(null, $embedding_data);
- $embeddings = [];
- foreach ($embeddedDocuments as $embeddedDocument) {
- if (is_array($embeddedDocument->embedding)) {
- $embeddings[] = $embeddedDocument->embedding;
- }
- }
- $QreturnOrders->execute();
- $return_orders_array = $QreturnOrders->fetchAll();
- $embedding_data = "\n" . $this->app->getDef('text_orders_products_return_history') . "\n";
- foreach ($return_orders_array as $item) {
- $embedding_data .= $this->app->getDef('text_orders_products_return_history_comment') . ' : ' . HTMLOverrideCommon::cleanHtmlForEmbedding($item['comment']) . "\n";
- $embedding_data .= $this->app->getDef('text_orders_products_return_history_date_added') . ' : ' . $item['date_added'] . "\n";
- }
- return $embedding_data;
- $embeddedDocuments = NewVector::createEmbedding(null, $embedding_data);
- $embeddings = [];
- foreach ($embeddedDocuments as $embeddedDocument) {
- if (is_array($embeddedDocument->embedding)) {
- $embeddings[] = $embeddedDocument->embedding;
- }
- }
- $Qreviews->execute();
- $reviews_array = $Qreviews->fetchAll();
- $reviews_id = $Qreviews->valueInt('reviews_id');
- foreach ($reviews_array as $item) {
- $products_id = $item['products_id'];
- $reviews_text = $item['reviews_text'];
- $reviews_rating = $item['reviews_rating'];
- $date_added = $item['date_added'];
- $status = $item['status'];
- }
- $embeddedDocuments = NewVector::createEmbedding(null, $embedding_data);
- $embeddings = [];
- foreach ($embeddedDocuments as $embeddedDocument) {
- if (is_array($embeddedDocument->embedding)) {
- $embeddings[] = $embeddedDocument->embedding;
- }
- }
- $review_array = $Qreview->fetchAll();
- $review_texts = [];
- foreach ($review_array as $value) {
- $review_texts[] = $value['reviews_text'];
- }
- // Output the review texts separated by <br>
- $result = implode('<br> - ', $review_texts);
- $embeddedDocuments = NewVector::createEmbedding(null, $embedding_data);
- $embeddings = [];
- foreach ($embeddedDocuments as $embeddedDocument) {
- if (is_array($embeddedDocument->embedding)) {
- $embeddings[] = $embeddedDocument->embedding;
- }
- }
- $embeddedDocuments = NewVector::createEmbedding(null, $embedding_data);
- $embeddings = [];
- foreach ($embeddedDocuments as $embeddedDocument) {
- if (is_array($embeddedDocument->embedding)) {
- $embeddings[] = $embeddedDocument->embedding;
- }
- }
- $embeddedDocuments = NewVector::createEmbedding(null, $embedding_data);
- $embeddings = [];
- foreach ($embeddedDocuments as $embeddedDocument) {
- if (is_array($embeddedDocument->embedding)) {
- $embeddings[] = $embeddedDocument->embedding;
- }
- }
- $QreturnOrders->execute();
- $return_orders_array = $QreturnOrders->fetchAll();
- $embedding_data = "\n" . $this->app->getDef('text_orders_products_return_history') . "\n";
- foreach ($return_orders_array as $item) {
- $embedding_data .= $this->app->getDef('text_orders_products_return_history_comment') . ' : ' . HTMLOverrideCommon::cleanHtmlForEmbedding($item['comment']) . "\n";
- $embedding_data .= $this->app->getDef('text_orders_products_return_history_date_added') . ' : ' . $item['date_added'] . "\n";
- }
- return $embedding_data;
- $embeddedDocuments = NewVector::createEmbedding(null, $embedding_data);
- $embeddings = [];
- foreach ($embeddedDocuments as $embeddedDocument) {
- if (is_array($embeddedDocument->embedding)) {
- $embeddings[] = $embeddedDocument->embedding;
- }
- }
- $embeddedDocuments = NewVector::createEmbedding(null, $embedding_data);
- $embeddings = [];
- foreach ($embeddedDocuments as $embeddedDocument) {
- if (is_array($embeddedDocument->embedding)) {
- $embeddings[] = $embeddedDocument->embedding;
- }
- }
- $CLICSHOPPING_Hooks = Registry::get('Hooks');
- $page = (isset($_GET['page']) && is_numeric($_GET['page'])) ? (int)$_GET['page'] : 1;
- if (isset($_POST['selected']) && !\is_null($_POST['selected'])) {
- foreach ($_POST['selected'] as $id) {
- $CLICSHOPPING_ChatGpt->db->delete('gpt', ['gpt_id' => (int)$id]);
- $CLICSHOPPING_Hooks->call('Gpt', 'DeleteAll');
- }
- }
- $modules = $CLICSHOPPING_ChatGpt->getConfigModules();
- $default_module = 'CH';
- foreach ($modules as $m) {
- if ($CLICSHOPPING_ChatGpt->getConfigModuleInfo($m, 'is_installed') === true) {
- $default_module = $m;
- break;
- }
- }
- $this->init();
- $current_module = $this->getCurrentModule();
- $m = $this->getConfigModule($current_module);
- foreach ($m->getParameters() as $key) {
- $p = mb_strtolower($key);
- if (isset($_POST[$p])) {
- $this->app->saveCfgParam($key, $_POST[$p]);
- }
- </div>
- <div class="mt-1"></div>
- <ul class="nav nav-tabs flex-column flex-sm-row" role="tablist" id="appChatGptToolbar">
- <li class="nav-item">
- <?php
- foreach ($CLICSHOPPING_ChatGpt->getConfigModules() as $m) {
- if ($CLICSHOPPING_ChatGpt->getConfigModuleInfo($m, 'is_installed') === true) {
- echo '<li class="nav-link active" data-module="' . $m . '"><a href="' . $CLICSHOPPING_ChatGpt->link('Configure&module=' . $m) . '">' . $CLICSHOPPING_ChatGpt->getConfigModuleInfo($m, 'short_title') . '</a></li>';
- }
- }
- ?>
- <li class="nav-item dropdown">
- <a class="nav-link dropdown-toggle" data-bs-toggle="dropdown" href="#" role="button" aria-haspopup="true"
- aria-expanded="false">Install</a>
- <div class="dropdown-menu">
- <?php
- foreach ($CLICSHOPPING_ChatGpt->getConfigModules() as $m) {
- if ($CLICSHOPPING_ChatGpt->getConfigModuleInfo($m, 'is_installed') === false) {
- echo '<a class="dropdown-item" href="' . $CLICSHOPPING_ChatGpt->link('Configure&module=' . $m) . '">' . $CLICSHOPPING_ChatGpt->getConfigModuleInfo($m, 'title') . '</a>';
- }
- }
- ?>
- </div>
- <div class="adminformTitle">
- <div class="card-block">
- <p class="card-text">
- <?php
- foreach ($CLICSHOPPING_ChatGpt_Config->getInputParameters() as $cfg) {
- echo '<div>' . $cfg . '</div>';
- echo '<div class="mt-1"></div>';
- }
- ?>
- </p>
- public function install()
- {
- $cut_length = \strlen('CLICSHOPPING_APP_COUNTRIES_' . $this->code . '_');
- foreach ($this->getParameters() as $key) {
- $p = mb_strtolower(substr($key, $cut_length));
- $class = 'ClicShopping\Apps\Configuration\Countries\Module\ClicShoppingAdmin\Config\\' . $this->code . '\Params\\' . $p;
- $cfg = new $class($this->code);
- $cut = 'CLICSHOPPING_APP_COUNTRIES_' . $this->code . '_';
- $cut_length = \strlen($cut);
- foreach ($this->getParameters() as $key) {
- $p = mb_strtolower(substr($key, $cut_length));
- $class = 'ClicShopping\Apps\Configuration\Countries\Module\ClicShoppingAdmin\Config\\' . $this->code . '\Params\\' . $p;
- $cfg = new $class($this->code);
- $modules = $CLICSHOPPING_Countries->getConfigModules();
- $default_module = 'CT';
- foreach ($modules as $m) {
- if ($CLICSHOPPING_Countries->getConfigModuleInfo($m, 'is_installed') === true) {
- $default_module = $m;
- break;
- }
- }
- $this->init();
- $current_module = $this->getCurrentModule();
- $m = $this->getConfigModule($current_module);
- foreach ($m->getParameters() as $key) {
- $p = mb_strtolower($key);
- if (isset($_POST[$p])) {
- $this->app->saveCfgParam($key, $_POST[$p]);
- }
- public function execute()
- {
- $page = (isset($_GET['page']) && is_numeric($_GET['page'])) ? (int)$_GET['page'] : 1;
- if (isset($_POST['selected'])) {
- foreach ($_POST['selected'] as $id) {
- $Qupdate = $this->app->db->prepare('update :table_countries
- set status = 0
- where countries_id = :countries_id
- ');
- </div>
- <div class="mt-1"></div>
- <ul class="nav nav-tabs flex-column flex-sm-row" role="tablist" id="appCountriesToolbar">
- <li class="nav-item">
- <?php
- foreach ($CLICSHOPPING_Countries->getConfigModules() as $m) {
- if ($CLICSHOPPING_Countries->getConfigModuleInfo($m, 'is_installed') === true) {
- echo '<li class="nav-link active" data-module="' . $m . '"><a href="' . $CLICSHOPPING_Countries->link('Configure&module=' . $m) . '">' . $CLICSHOPPING_Countries->getConfigModuleInfo($m, 'short_title') . '</a></li>';
- }
- }
- <li class="nav-item dropdown">
- <a class="nav-link dropdown-toggle" data-bs-toggle="dropdown" href="#" role="button" aria-haspopup="true"
- aria-expanded="false">Install</a>
- <div class="dropdown-menu">
- <?php
- foreach ($CLICSHOPPING_Countries->getConfigModules() as $m) {
- if ($CLICSHOPPING_Countries->getConfigModuleInfo($m, 'is_installed') === false) {
- echo '<a class="dropdown-item" href="' . $CLICSHOPPING_Countries->link('Configure&module=' . $m) . '">' . $CLICSHOPPING_Countries->getConfigModuleInfo($m, 'title') . '</a>';
- }
- }
- ?>
- <div class="adminformTitle">
- <div class="card-block">
- <p class="card-text">
- <?php
- foreach ($CLICSHOPPING_Countries_Config->getInputParameters() as $cfg) {
- echo '<div>' . $cfg . '</div>';
- echo '<div class="mt-1"></div>';
- }
- ?>
- </p>
- </div>
- </div>
- <div class="mt-1"></div>
- <div class="row">
- <?php
- foreach ($address_formats_array as $value) {
- ?>
- <div class="col-md-3">
- <div class="card">
- <div class="card-body">
- <h4 class="card-title">
- </div>
- </div>
- <div class="mt-1"></div>
- <div class="row">
- <?php
- foreach ($address_formats_array as $value) {
- ?>
- <div class="col-md-3">
- <div class="card">
- <div class="card-body">
- <h4 class="card-title">
- $Qcurrencies->execute();
- $currencies = $Qcurrencies->fetchAll();
- foreach ($currencies as $c) {
- /**
- *
- */
- $this->currencies[$c['code']] = [
- 'id' => (int)$c['id'],
- $Qcurrencies->execute();
- $Qcurrencies->setCache('currencies');
- $currencies = $Qcurrencies->fetchAll();
- foreach ($currencies as $c) {
- $this->currencies[$c['code']] = [
- 'id' => (int)$c['id'],
- 'title' => $c['title'],
- 'symbol_left' => $c['symbol_left'],
- 'symbol_right' => $c['symbol_right'],
- $modules = $CLICSHOPPING_Currency->getConfigModules();
- $default_module = 'CR';
- foreach ($modules as $m) {
- if ($CLICSHOPPING_Currency->getConfigModuleInfo($m, 'is_installed') === true) {
- $default_module = $m;
- break;
- }
- }
- $this->init();
- $current_module = $this->getCurrentModule();
- $m = $this->getConfigModule($current_module);
- foreach ($m->getParameters() as $key) {
- $p = mb_strtolower($key);
- if (isset($_POST[$p])) {
- $this->app->saveCfgParam($key, $_POST[$p]);
- }
- </div>
- <div class="mt-1"></div>
- <ul class="nav nav-tabs flex-column flex-sm-row" role="tablist" id="appCurrencyToolbar">
- <li class="nav-item">
- <?php
- foreach ($CLICSHOPPING_Currency->getConfigModules() as $m) {
- if ($CLICSHOPPING_Currency->getConfigModuleInfo($m, 'is_installed') === true) {
- echo '<li class="nav-link active" data-module="' . $m . '"><a href="' . $CLICSHOPPING_Currency->link('Configure&module=' . $m) . '">' . $CLICSHOPPING_Currency->getConfigModuleInfo($m, 'short_title') . '</a></li>';
- }
- }
- <li class="nav-item dropdown">
- <a class="nav-link dropdown-toggle" data-bs-toggle="dropdown" href="#" role="button" aria-haspopup="true"
- aria-expanded="false">Install</a>
- <div class="dropdown-menu">
- <?php
- foreach ($CLICSHOPPING_Currency->getConfigModules() as $m) {
- if ($CLICSHOPPING_Currency->getConfigModuleInfo($m, 'is_installed') === false) {
- echo '<a class="dropdown-item" href="' . $CLICSHOPPING_Currency->link('Configure&module=' . $m) . '">' . $CLICSHOPPING_Currency->getConfigModuleInfo($m, 'title') . '</a>';
- }
- }
- ?>
- <div class="adminformTitle">
- <div class="card-block">
- <p class="card-text">
- <?php
- foreach ($CLICSHOPPING_Currency_Config->getInputParameters() as $cfg) {
- echo '<div>' . $cfg . '</div>';
- echo '<div class="mt-1"></div>';
- }
- ?>
- </p>
- $cInfo = new ObjectInfo($Qcurrency->toArray());
- $currency_select = json_decode(file_get_contents(CLICSHOPPING::BASE_DIR . 'External/CommonCurrencies.json'), true);
- $currency_select_array = array(array('id' => '', 'text' => $CLICSHOPPING_Currency->getDef('text_info_common_currency')));
- foreach ($currency_select as $cs) {
- if (!isset($CLICSHOPPING_Currency->currency[$cs['code']])) {
- $currency_select_array[] = array('id' => $cs['code'], 'text' => '[' . $cs['code'] . '] ' . $cs['title']);
- }
- }
- $modules = $CLICSHOPPING_Langues->getConfigModules();
- $default_module = 'LG';
- foreach ($modules as $m) {
- if ($CLICSHOPPING_Langues->getConfigModuleInfo($m, 'is_installed') === true) {
- $default_module = $m;
- break;
- }
- }
- $this->init();
- $current_module = $this->getCurrentModule();
- $m = $this->getConfigModule($current_module);
- foreach ($m->getParameters() as $key) {
- $p = mb_strtolower($key);
- if (isset($_POST[$p])) {
- $this->app->saveCfgParam($key, $_POST[$p]);
- }
- </div>
- <div class="mt-1"></div>
- <ul class="nav nav-tabs flex-column flex-sm-row" role="tablist" id="appLanguesToolbar">
- <li class="nav-item">
- <?php
- foreach ($CLICSHOPPING_Langues->getConfigModules() as $m) {
- if ($CLICSHOPPING_Langues->getConfigModuleInfo($m, 'is_installed') === true) {
- echo '<li class="nav-link active" data-module="' . $m . '"><a href="' . $CLICSHOPPING_Langues->link('Configure&module=' . $m) . '">' . $CLICSHOPPING_Langues->getConfigModuleInfo($m, 'short_title') . '</a></li>';
- }
- }
- <li class="nav-item dropdown">
- <a class="nav-link dropdown-toggle" data-bs-toggle="dropdown" href="#" role="button" aria-haspopup="true"
- aria-expanded="false">Install</a>
- <div class="dropdown-menu">
- <?php
- foreach ($CLICSHOPPING_Langues->getConfigModules() as $m) {
- if ($CLICSHOPPING_Langues->getConfigModuleInfo($m, 'is_installed') === false) {
- echo '<a class="dropdown-item" href="' . $CLICSHOPPING_Langues->link('Configure&module=' . $m) . '">' . $CLICSHOPPING_Langues->getConfigModuleInfo($m, 'title') . '</a>';
- }
- }
- ?>
- <div class="adminformTitle">
- <div class="card-block">
- <p class="card-text">
- <?php
- foreach ($CLICSHOPPING_Langues_Config->getInputParameters() as $cfg) {
- echo '<div>' . $cfg . '</div>';
- echo '<div class="mt-1"></div>';
- }
- ?>
- </p>
- $lInfo = new ObjectInfo($Qlanguages->toArray());
- $icons = [];
- foreach (glob(CLICSHOPPING::getConfig('dir_root', 'Shop') . 'sources/third_party/flag-icon-css/flags/4x3/*.svg') as $file) {
- $code = basename($file, '.svg');
- $icons[] = ['id' => $code,
- 'text' => $code
- ];
- ];
- }
- $directories = [];
- foreach (glob(CLICSHOPPING::getConfig('dir_root', 'Shop') . 'sources/languages/*', GLOB_ONLYDIR) as $dir) {
- $code = basename($dir);
- $directories[] = ['id' => $code,
- 'text' => $code
- ];
- $directories[] = ['id' => $code,
- 'text' => $code
- ];
- }
- foreach (glob(CLICSHOPPING::getConfig('dir_root', 'ClicShoppingAdmin') . 'Core/languages/*', GLOB_ONLYDIR) as $dir) {
- $code = basename($dir);
- if (array_search($code, array_column($directories, 'id')) === false) {
- $directories[] = ['id' => $code,
- 'text' => $code
- $CLICSHOPPING_Langues = Registry::get('Langues');
- $icons = [];
- foreach (glob(CLICSHOPPING::getConfig('dir_root', 'Shop') . 'sources/third_party/flag-icon-css/flags/4x3/*.svg') as $file) {
- $code = basename($file, '.svg');
- $icons[] = [
- 'id' => $code,
- 'text' => $code
- ];
- }
- $directories = [];
- foreach (glob(CLICSHOPPING::getConfig('dir_root', 'Shop') . 'sources/languages/*', GLOB_ONLYDIR) as $dir) {
- $code = basename($dir);
- $directories[] = ['id' => $code,
- 'text' => $code
- ];
- $directories[] = ['id' => $code,
- 'text' => $code
- ];
- }
- foreach (glob(CLICSHOPPING::getConfig('dir_root', 'ClicShoppingAdmin') . 'Core/languages/*', GLOB_ONLYDIR) as $dir) {
- $code = basename($dir);
- if (array_search($code, array_column($directories, 'id')) === false) {
- $directories[] = ['id' => $code,
- 'text' => $code
- $modules = $CLICSHOPPING_Modules->getConfigModules();
- $default_module = 'MO';
- foreach ($modules as $m) {
- if ($CLICSHOPPING_Modules->getConfigModuleInfo($m, 'is_installed') === true) {
- $default_module = $m;
- break;
- }
- }
- $this->init();
- $current_module = $this->getCurrentModule();
- $m = $this->getConfigModule($current_module);
- foreach ($m->getParameters() as $key) {
- $p = mb_strtolower($key);
- if (isset($_POST[$p])) {
- $this->app->saveCfgParam($key, $_POST[$p]);
- }
- $CLICSHOPPING_Db = Registry::get('Db');
- if (isset($_GET['Update'])) {
- $set = $_GET['set'] ?? '';
- foreach ($_POST['configuration'] as $key => $value) {
- if ((\is_array($value)) && (!empty($value))) {
- $key = HTML::sanitize($key);
- $value = HTML::sanitize($value);
- $pages = '';
- </div>
- <div class="mt-1"></div>
- <ul class="nav nav-tabs flex-column flex-sm-row" role="tablist" id="appModulesToolbar">
- <li class="nav-item">
- <?php
- foreach ($CLICSHOPPING_Modules->getConfigModules() as $m) {
- if ($CLICSHOPPING_Modules->getConfigModuleInfo($m, 'is_installed') === true) {
- echo '<li class="nav-link active" data-module="' . $m . '"><a href="' . $CLICSHOPPING_Modules->link('Configure&module=' . $m) . '">' . $CLICSHOPPING_Modules->getConfigModuleInfo($m, 'short_title') . '</a></li>';
- }
- }
- <li class="nav-item dropdown">
- <a class="nav-link dropdown-toggle" data-bs-toggle="dropdown" href="#" role="button" aria-haspopup="true"
- aria-expanded="false">Install</a>
- <div class="dropdown-menu">
- <?php
- foreach ($CLICSHOPPING_Modules->getConfigModules() as $m) {
- if ($CLICSHOPPING_Modules->getConfigModuleInfo($m, 'is_installed') === false) {
- echo '<a class="dropdown-item" href="' . $CLICSHOPPING_Modules->link('Configure&module=' . $m) . '">' . $CLICSHOPPING_Modules->getConfigModuleInfo($m, 'title') . '</a>';
- }
- }
- ?>
- <div class="adminformTitle">
- <div class="card-block">
- <p class="card-text">
- <?php
- foreach ($CLICSHOPPING_Modules_Config->getInputParameters() as $cfg) {
- echo '<div>' . $cfg . '</div>';
- echo '<div class="mt-1"></div>';
- }
- ?>
- </p>
- $modules = $CLICSHOPPING_OrdersStatus->getConfigModules();
- $default_module = 'OU';
- foreach ($modules as $m) {
- if ($CLICSHOPPING_OrdersStatus->getConfigModuleInfo($m, 'is_installed') === true) {
- $default_module = $m;
- break;
- }
- }
- $this->init();
- $current_module = $this->getCurrentModule();
- $m = $this->getConfigModule($current_module);
- foreach ($m->getParameters() as $key) {
- $p = mb_strtolower($key);
- if (isset($_POST[$p])) {
- $this->app->saveCfgParam($key, $_POST[$p]);
- }
- </div>
- <div class="mt-1"></div>
- <ul class="nav nav-tabs flex-column flex-sm-row" role="tablist" id="appOrdersStatusToolbar">
- <li class="nav-item">
- <?php
- foreach ($CLICSHOPPING_OrdersStatus->getConfigModules() as $m) {
- if ($CLICSHOPPING_OrdersStatus->getConfigModuleInfo($m, 'is_installed') === true) {
- echo '<li class="nav-link active" data-module="' . $m . '"><a href="' . $CLICSHOPPING_OrdersStatus->link('Configure&module=' . $m) . '">' . $CLICSHOPPING_OrdersStatus->getConfigModuleInfo($m, 'short_title') . '</a></li>';
- }
- }
- <li class="nav-item dropdown">
- <a class="nav-link dropdown-toggle" data-bs-toggle="dropdown" href="#" role="button" aria-haspopup="true"
- aria-expanded="false">Install</a>
- <div class="dropdown-menu">
- <?php
- foreach ($CLICSHOPPING_OrdersStatus->getConfigModules() as $m) {
- if ($CLICSHOPPING_OrdersStatus->getConfigModuleInfo($m, 'is_installed') === false) {
- echo '<a class="dropdown-item" href="' . $CLICSHOPPING_OrdersStatus->link('Configure&module=' . $m) . '">' . $CLICSHOPPING_OrdersStatus->getConfigModuleInfo($m, 'title') . '</a>';
- }
- }
- ?>
- <div class="adminformTitle">
- <div class="card-block">
- <p class="card-text">
- <?php
- foreach ($CLICSHOPPING_OrdersStatus_Config->getInputParameters() as $cfg) {
- echo '<div>' . $cfg . '</div>';
- echo '<div class="mt-1"></div>';
- }
- ?>
- </p>
- $modules = $CLICSHOPPING_OrdersStatusInvoice->getConfigModules();
- $default_module = 'OI';
- foreach ($modules as $m) {
- if ($CLICSHOPPING_OrdersStatusInvoice->getConfigModuleInfo($m, 'is_installed') === true) {
- $default_module = $m;
- break;
- }
- }
- $this->init();
- $current_module = $this->getCurrentModule();
- $m = $this->getConfigModule($current_module);
- foreach ($m->getParameters() as $key) {
- $p = mb_strtolower($key);
- if (isset($_POST[$p])) {
- $this->app->saveCfgParam($key, $_POST[$p]);
- }
- </div>
- <div class="mt-1"></div>
- <ul class="nav nav-tabs flex-column flex-sm-row" role="tablist" id="appOrdersStatusInvoiceToolbar">
- <li class="nav-item">
- <?php
- foreach ($CLICSHOPPING_OrdersStatusInvoice->getConfigModules() as $m) {
- if ($CLICSHOPPING_OrdersStatusInvoice->getConfigModuleInfo($m, 'is_installed') === true) {
- echo '<li class="nav-link active" data-module="' . $m . '"><a href="' . $CLICSHOPPING_OrdersStatusInvoice->link('Configure&module=' . $m) . '">' . $CLICSHOPPING_OrdersStatusInvoice->getConfigModuleInfo($m, 'short_title') . '</a></li>';
- }
- }
- <li class="nav-item dropdown">
- <a class="nav-link dropdown-toggle" data-bs-toggle="dropdown" href="#" role="button" aria-haspopup="true"
- aria-expanded="false">Install</a>
- <div class="dropdown-menu">
- <?php
- foreach ($CLICSHOPPING_OrdersStatusInvoice->getConfigModules() as $m) {
- if ($CLICSHOPPING_OrdersStatusInvoice->getConfigModuleInfo($m, 'is_installed') === false) {
- echo '<a class="dropdown-item" href="' . $CLICSHOPPING_OrdersStatusInvoice->link('Configure&module=' . $m) . '">' . $CLICSHOPPING_OrdersStatusInvoice->getConfigModuleInfo($m, 'title') . '</a>';
- }
- }
- ?>
- <div class="adminformTitle">
- <div class="card-block">
- <p class="card-text">
- <?php
- foreach ($CLICSHOPPING_OrdersStatusInvoice_Config->getInputParameters() as $cfg) {
- echo '<div>' . $cfg . '</div>';
- echo '<div class="mt-1"></div>';
- }
- ?>
- </p>
- $modules = $CLICSHOPPING_ProductsLength->getConfigModules();
- $default_module = 'PL';
- foreach ($modules as $m) {
- if ($CLICSHOPPING_ProductsLength->getConfigModuleInfo($m, 'is_installed') === true) {
- $default_module = $m;
- break;
- }
- }
- $this->init();
- $current_module = $this->getCurrentModule();
- $m = $this->getConfigModule($current_module);
- foreach ($m->getParameters() as $key) {
- $p = mb_strtolower($key);
- if (isset($_POST[$p])) {
- $this->app->saveCfgParam($key, $_POST[$p]);
- }
- </div>
- <div class="mt-1"></div>
- <ul class="nav nav-tabs flex-column flex-sm-row" role="tablist" id="appProductsLengthToolbar">
- <li class="nav-item">
- <?php
- foreach ($CLICSHOPPING_ProductsLength->getConfigModules() as $m) {
- if ($CLICSHOPPING_ProductsLength->getConfigModuleInfo($m, 'is_installed') === true) {
- echo '<li class="nav-link active" data-module="' . $m . '"><a href="' . $CLICSHOPPING_ProductsLength->link('Configure&module=' . $m) . '">' . $CLICSHOPPING_ProductsLength->getConfigModuleInfo($m, 'short_title') . '</a></li>';
- }
- }
- <li class="nav-item dropdown">
- <a class="nav-link dropdown-toggle" data-bs-toggle="dropdown" href="#" role="button" aria-haspopup="true"
- aria-expanded="false">Install</a>
- <div class="dropdown-menu">
- <?php
- foreach ($CLICSHOPPING_ProductsLength->getConfigModules() as $m) {
- if ($CLICSHOPPING_ProductsLength->getConfigModuleInfo($m, 'is_installed') === false) {
- echo '<a class="dropdown-item" href="' . $CLICSHOPPING_ProductsLength->link('Configure&module=' . $m) . '">' . $CLICSHOPPING_ProductsLength->getConfigModuleInfo($m, 'title') . '</a>';
- }
- }
- ?>
- <div class="adminformTitle">
- <div class="card-block">
- <p class="card-text">
- <?php
- foreach ($CLICSHOPPING_ProductsLength_Config->getInputParameters() as $cfg) {
- echo '<div>' . $cfg . '</div>';
- echo '<div class="mt-1"></div>';
- }
- ?>
- </p>
- $modules = $CLICSHOPPING_ProductsQuantityUnit->getConfigModules();
- $default_module = 'PQ';
- foreach ($modules as $m) {
- if ($CLICSHOPPING_ProductsQuantityUnit->getConfigModuleInfo($m, 'is_installed') === true) {
- $default_module = $m;
- break;
- }
- }
- $this->init();
- $current_module = $this->getCurrentModule();
- $m = $this->getConfigModule($current_module);
- foreach ($m->getParameters() as $key) {
- $p = mb_strtolower($key);
- if (isset($_POST[$p])) {
- $this->app->saveCfgParam($key, $_POST[$p]);
- }
- </div>
- <div class="mt-1"></div>
- <ul class="nav nav-tabs flex-column flex-sm-row" role="tablist" id="appProductsQuantityUnitToolbar">
- <li class="nav-item">
- <?php
- foreach ($CLICSHOPPING_ProductsQuantityUnit->getConfigModules() as $m) {
- if ($CLICSHOPPING_ProductsQuantityUnit->getConfigModuleInfo($m, 'is_installed') === true) {
- echo '<li class="nav-link active" data-module="' . $m . '"><a href="' . $CLICSHOPPING_ProductsQuantityUnit->link('Configure&module=' . $m) . '">' . $CLICSHOPPING_ProductsQuantityUnit->getConfigModuleInfo($m, 'short_title') . '</a></li>';
- }
- }
- <li class="nav-item dropdown">
- <a class="nav-link dropdown-toggle" data-bs-toggle="dropdown" href="#" role="button" aria-haspopup="true"
- aria-expanded="false">Install</a>
- <div class="dropdown-menu">
- <?php
- foreach ($CLICSHOPPING_ProductsQuantityUnit->getConfigModules() as $m) {
- if ($CLICSHOPPING_ProductsQuantityUnit->getConfigModuleInfo($m, 'is_installed') === false) {
- echo '<a class="dropdown-item" href="' . $CLICSHOPPING_ProductsQuantityUnit->link('Configure&module=' . $m) . '">' . $CLICSHOPPING_ProductsQuantityUnit->getConfigModuleInfo($m, 'title') . '</a>';
- }
- }
- ?>
- <div class="adminformTitle">
- <div class="card-block">
- <p class="card-text">
- <?php
- foreach ($CLICSHOPPING_ProductsQuantityUnit_Config->getInputParameters() as $cfg) {
- echo '<div>' . $cfg . '</div>';
- echo '<div class="mt-1"></div>';
- }
- ?>
- </p>
- public function install()
- {
- $cut_length = \strlen('CLICSHOPPING_APP_SETTINGS_' . $this->code . '_');
- foreach ($this->getParameters() as $key) {
- $p = mb_strtolower(substr($key, $cut_length));
- $class = 'ClicShopping\Apps\Configuration\Settings\Module\ClicShoppingAdmin\Config\\' . $this->code . '\Params\\' . $p;
- $cfg = new $class($this->code);
- $cut = 'CLICSHOPPING_APP_SETTINGS_' . $this->code . '_';
- $cut_length = \strlen($cut);
- foreach ($this->getParameters() as $key) {
- $p = mb_strtolower(substr($key, $cut_length));
- $class = 'ClicShopping\Apps\Configuration\Settings\Module\ClicShoppingAdmin\Config\\' . $this->code . '\Params\\' . $p;
- $cfg = new $class($this->code);
- $modules = $CLICSHOPPING_Settings->getConfigModules();
- $default_module = 'ST';
- foreach ($modules as $m) {
- if ($CLICSHOPPING_Settings->getConfigModuleInfo($m, 'is_installed') === true) {
- $default_module = $m;
- break;
- }
- }
- $this->init();
- $current_module = $this->getCurrentModule();
- $m = $this->getConfigModule($current_module);
- foreach ($m->getParameters() as $key) {
- $p = mb_strtolower($key);
- if (isset($_POST[$p])) {
- $this->app->saveCfgParam($key, $_POST[$p]);
- }
- * @return void
- */
- public function execute()
- {
- if (isset($_POST['configuration'])) {
- foreach ($_POST['configuration'] as $value) {
- $configuration_value = $value;
- }
- } else {
- $configuration_value = $_POST['configuration_value'] ?? '';
- }
- </div>
- <div class="mt-1"></div>
- <ul class="nav nav-tabs flex-column flex-sm-row" role="tablist" id="appSettingsToolbar">
- <li class="nav-item">
- <?php
- foreach ($CLICSHOPPING_Settings->getConfigModules() as $m) {
- if ($CLICSHOPPING_Settings->getConfigModuleInfo($m, 'is_installed') === true) {
- echo '<li class="nav-link active" data-module="' . $m . '"><a href="' . $CLICSHOPPING_Settings->link('Configure&module=' . $m) . '">' . $CLICSHOPPING_Settings->getConfigModuleInfo($m, 'short_title') . '</a></li>';
- }
- }
- <li class="nav-item dropdown">
- <a class="nav-link dropdown-toggle" data-bs-toggle="dropdown" href="#" role="button" aria-haspopup="true"
- aria-expanded="false">Install</a>
- <div class="dropdown-menu">
- <?php
- foreach ($CLICSHOPPING_Settings->getConfigModules() as $m) {
- if ($CLICSHOPPING_Settings->getConfigModuleInfo($m, 'is_installed') === false) {
- echo '<a class="dropdown-item" href="' . $CLICSHOPPING_Settings->link('Configure&module=' . $m) . '">' . $CLICSHOPPING_Settings->getConfigModuleInfo($m, 'title') . '</a>';
- }
- }
- ?>
- <div class="adminformTitle">
- <div class="card-block">
- <p class="card-text">
- <?php
- foreach ($CLICSHOPPING_Settings_Config->getInputParameters() as $cfg) {
- echo '<div>' . $cfg . '</div>';
- echo '<div class="mt-1"></div>';
- }
- ?>
- </p>
- $modules = $CLICSHOPPING_TaxClass->getConfigModules();
- $default_module = 'TC';
- foreach ($modules as $m) {
- if ($CLICSHOPPING_TaxClass->getConfigModuleInfo($m, 'is_installed') === true) {
- $default_module = $m;
- break;
- }
- }
- $this->init();
- $current_module = $this->getCurrentModule();
- $m = $this->getConfigModule($current_module);
- foreach ($m->getParameters() as $key) {
- $p = mb_strtolower($key);
- if (isset($_POST[$p])) {
- $this->app->saveCfgParam($key, $_POST[$p]);
- }
- </div>
- <div class="mt-1"></div>
- <ul class="nav nav-tabs flex-column flex-sm-row" role="tablist" id="appTaxClassToolbar">
- <li class="nav-item">
- <?php
- foreach ($CLICSHOPPING_TaxClass->getConfigModules() as $m) {
- if ($CLICSHOPPING_TaxClass->getConfigModuleInfo($m, 'is_installed') === true) {
- echo '<li class="nav-link active" data-module="' . $m . '"><a href="' . $CLICSHOPPING_TaxClass->link('Configure&module=' . $m) . '">' . $CLICSHOPPING_TaxClass->getConfigModuleInfo($m, 'short_title') . '</a></li>';
- }
- }
- <li class="nav-item dropdown">
- <a class="nav-link dropdown-toggle" data-bs-toggle="dropdown" href="#" role="button" aria-haspopup="true"
- aria-expanded="false">Install</a>
- <div class="dropdown-menu">
- <?php
- foreach ($CLICSHOPPING_TaxClass->getConfigModules() as $m) {
- if ($CLICSHOPPING_TaxClass->getConfigModuleInfo($m, 'is_installed') === false) {
- echo '<a class="dropdown-item" href="' . $CLICSHOPPING_TaxClass->link('Configure&module=' . $m) . '">' . $CLICSHOPPING_TaxClass->getConfigModuleInfo($m, 'title') . '</a>';
- }
- }
- ?>
- <div class="adminformTitle">
- <div class="card-block">
- <p class="card-text">
- <?php
- foreach ($CLICSHOPPING_TaxClass_Config->getInputParameters() as $cfg) {
- echo '<div>' . $cfg . '</div>';
- echo '<div class="mt-1"></div>';
- }
- ?>
- </p>
- $modules = $CLICSHOPPING_TaxGeoZones->getConfigModules();
- $default_module = 'TG';
- foreach ($modules as $m) {
- if ($CLICSHOPPING_TaxGeoZones->getConfigModuleInfo($m, 'is_installed') === true) {
- $default_module = $m;
- break;
- }
- }
- $this->init();
- $current_module = $this->getCurrentModule();
- $m = $this->getConfigModule($current_module);
- foreach ($m->getParameters() as $key) {
- $p = mb_strtolower($key);
- if (isset($_POST[$p])) {
- $this->app->saveCfgParam($key, $_POST[$p]);
- }
- </div>
- <div class="mt-1"></div>
- <ul class="nav nav-tabs flex-column flex-sm-row" role="tablist" id="appTaxGeoZonesToolbar">
- <li class="nav-item">
- <?php
- foreach ($CLICSHOPPING_TaxGeoZones->getConfigModules() as $m) {
- if ($CLICSHOPPING_TaxGeoZones->getConfigModuleInfo($m, 'is_installed') === true) {
- echo '<li class="nav-link active" data-module="' . $m . '"><a href="' . $CLICSHOPPING_TaxGeoZones->link('Configure&module=' . $m) . '">' . $CLICSHOPPING_TaxGeoZones->getConfigModuleInfo($m, 'short_title') . '</a></li>';
- }
- }
- <li class="nav-item dropdown">
- <a class="nav-link dropdown-toggle" data-bs-toggle="dropdown" href="#" role="button" aria-haspopup="true"
- aria-expanded="false">Install</a>
- <div class="dropdown-menu">
- <?php
- foreach ($CLICSHOPPING_TaxGeoZones->getConfigModules() as $m) {
- if ($CLICSHOPPING_TaxGeoZones->getConfigModuleInfo($m, 'is_installed') === false) {
- echo '<a class="dropdown-item" href="' . $CLICSHOPPING_TaxGeoZones->link('Configure&module=' . $m) . '">' . $CLICSHOPPING_TaxGeoZones->getConfigModuleInfo($m, 'title') . '</a>';
- }
- }
- ?>
- <div class="adminformTitle">
- <div class="card-block">
- <p class="card-text">
- <?php
- foreach ($CLICSHOPPING_TaxGeoZones_Config->getInputParameters() as $cfg) {
- echo '<div>' . $cfg . '</div>';
- echo '<div class="mt-1"></div>';
- }
- ?>
- </p>
- $modules = $CLICSHOPPING_TaxRates->getConfigModules();
- $default_module = 'TR';
- foreach ($modules as $m) {
- if ($CLICSHOPPING_TaxRates->getConfigModuleInfo($m, 'is_installed') === true) {
- $default_module = $m;
- break;
- }
- }
- $this->init();
- $current_module = $this->getCurrentModule();
- $m = $this->getConfigModule($current_module);
- foreach ($m->getParameters() as $key) {
- $p = mb_strtolower($key);
- if (isset($_POST[$p])) {
- $this->app->saveCfgParam($key, $_POST[$p]);
- }
- </div>
- <div class="mt-1"></div>
- <ul class="nav nav-tabs flex-column flex-sm-row" role="tablist" id="appTaxRatesToolbar">
- <li class="nav-item">
- <?php
- foreach ($CLICSHOPPING_TaxRates->getConfigModules() as $m) {
- if ($CLICSHOPPING_TaxRates->getConfigModuleInfo($m, 'is_installed') === true) {
- echo '<li class="nav-link active" data-module="' . $m . '"><a href="' . $CLICSHOPPING_TaxRates->link('Configure&module=' . $m) . '">' . $CLICSHOPPING_TaxRates->getConfigModuleInfo($m, 'short_title') . '</a></li>';
- }
- }
- <li class="nav-item dropdown">
- <a class="nav-link dropdown-toggle" data-bs-toggle="dropdown" href="#" role="button" aria-haspopup="true"
- aria-expanded="false">Install</a>
- <div class="dropdown-menu">
- <?php
- foreach ($CLICSHOPPING_TaxRates->getConfigModules() as $m) {
- if ($CLICSHOPPING_TaxRates->getConfigModuleInfo($m, 'is_installed') === false) {
- echo '<a class="dropdown-item" href="' . $CLICSHOPPING_TaxRates->link('Configure&module=' . $m) . '">' . $CLICSHOPPING_TaxRates->getConfigModuleInfo($m, 'title') . '</a>';
- }
- }
- ?>
- <div class="adminformTitle">
- <div class="card-block">
- <p class="card-text">
- <?php
- foreach ($CLICSHOPPING_TaxRates_Config->getInputParameters() as $cfg) {
- echo '<div>' . $cfg . '</div>';
- echo '<div class="mt-1"></div>';
- }
- ?>
- </p>
- $modules = $CLICSHOPPING_TemplateEmail->getConfigModules();
- $default_module = 'TE';
- foreach ($modules as $m) {
- if ($CLICSHOPPING_TemplateEmail->getConfigModuleInfo($m, 'is_installed') === true) {
- $default_module = $m;
- break;
- }
- }
- $this->init();
- $current_module = $this->getCurrentModule();
- $m = $this->getConfigModule($current_module);
- foreach ($m->getParameters() as $key) {
- $p = mb_strtolower($key);
- if (isset($_POST[$p])) {
- $this->app->saveCfgParam($key, $_POST[$p]);
- }
- </div>
- <div class="mt-1"></div>
- <ul class="nav nav-tabs flex-column flex-sm-row" role="tablist" id="appTemplateEmailToolbar">
- <li class="nav-item">
- <?php
- foreach ($CLICSHOPPING_TemplateEmail->getConfigModules() as $m) {
- if ($CLICSHOPPING_TemplateEmail->getConfigModuleInfo($m, 'is_installed') === true) {
- echo '<li class="nav-link active" data-module="' . $m . '"><a href="' . $CLICSHOPPING_TemplateEmail->link('Configure&module=' . $m) . '">' . $CLICSHOPPING_TemplateEmail->getConfigModuleInfo($m, 'short_title') . '</a></li>';
- }
- }
- <li class="nav-item dropdown">
- <a class="nav-link dropdown-toggle" data-bs-toggle="dropdown" href="#" role="button" aria-haspopup="true"
- aria-expanded="false">Install</a>
- <div class="dropdown-menu">
- <?php
- foreach ($CLICSHOPPING_TemplateEmail->getConfigModules() as $m) {
- if ($CLICSHOPPING_TemplateEmail->getConfigModuleInfo($m, 'is_installed') === false) {
- echo '<a class="dropdown-item" href="' . $CLICSHOPPING_TemplateEmail->link('Configure&module=' . $m) . '">' . $CLICSHOPPING_TemplateEmail->getConfigModuleInfo($m, 'title') . '</a>';
- }
- }
- ?>
- <div class="adminformTitle">
- <div class="card-block">
- <p class="card-text">
- <?php
- foreach ($CLICSHOPPING_TemplateEmail_Config->getInputParameters() as $cfg) {
- echo '<div>' . $cfg . '</div>';
- echo '<div class="mt-1"></div>';
- }
- ?>
- </p>
- $modules = $CLICSHOPPING_Weight->getConfigModules();
- $default_module = 'WE';
- foreach ($modules as $m) {
- if ($CLICSHOPPING_Weight->getConfigModuleInfo($m, 'is_installed') === true) {
- $default_module = $m;
- break;
- }
- }
- $this->init();
- $current_module = $this->getCurrentModule();
- $m = $this->getConfigModule($current_module);
- foreach ($m->getParameters() as $key) {
- $p = mb_strtolower($key);
- if (isset($_POST[$p])) {
- $this->app->saveCfgParam($key, $_POST[$p]);
- }
- </div>
- <div class="mt-1"></div>
- <ul class="nav nav-tabs flex-column flex-sm-row" role="tablist" id="appWeightToolbar">
- <li class="nav-item">
- <?php
- foreach ($CLICSHOPPING_Weight->getConfigModules() as $m) {
- if ($CLICSHOPPING_Weight->getConfigModuleInfo($m, 'is_installed') === true) {
- echo '<li class="nav-link active" data-module="' . $m . '"><a href="' . $CLICSHOPPING_Weight->link('Configure&module=' . $m) . '">' . $CLICSHOPPING_Weight->getConfigModuleInfo($m, 'short_title') . '</a></li>';
- }
- }
- <li class="nav-item dropdown">
- <a class="nav-link dropdown-toggle" data-bs-toggle="dropdown" href="#" role="button" aria-haspopup="true"
- aria-expanded="false">Install</a>
- <div class="dropdown-menu">
- <?php
- foreach ($CLICSHOPPING_Weight->getConfigModules() as $m) {
- if ($CLICSHOPPING_Weight->getConfigModuleInfo($m, 'is_installed') === false) {
- echo '<a class="dropdown-item" href="' . $CLICSHOPPING_Weight->link('Configure&module=' . $m) . '">' . $CLICSHOPPING_Weight->getConfigModuleInfo($m, 'title') . '</a>';
- }
- }
- ?>
- <div class="adminformTitle">
- <div class="card-block">
- <p class="card-text">
- <?php
- foreach ($CLICSHOPPING_Weight_Config->getInputParameters() as $cfg) {
- echo '<div>' . $cfg . '</div>';
- echo '<div class="mt-1"></div>';
- }
- ?>
- </p>
- $modules = $CLICSHOPPING_Zones->getConfigModules();
- $default_module = 'ZN';
- foreach ($modules as $m) {
- if ($CLICSHOPPING_Zones->getConfigModuleInfo($m, 'is_installed') === true) {
- $default_module = $m;
- break;
- }
- }
- $this->init();
- $current_module = $this->getCurrentModule();
- $m = $this->getConfigModule($current_module);
- foreach ($m->getParameters() as $key) {
- $p = mb_strtolower($key);
- if (isset($_POST[$p])) {
- $this->app->saveCfgParam($key, $_POST[$p]);
- }
- public function execute()
- {
- $page = (isset($_GET['page']) && is_numeric($_GET['page'])) ? (int)$_GET['page'] : 1;
- if (isset($_POST['selected'])) {
- foreach ($_POST['selected'] as $id) {
- $Qzones = $this->app->db->prepare('select zone_status
- from :table_zones
- where zone_id = :zone_id
- ');
- </div>
- <div class="mt-1"></div>
- <ul class="nav nav-tabs flex-column flex-sm-row" role="tablist" id="appZonesToolbar">
- <li class="nav-item">
- <?php
- foreach ($CLICSHOPPING_Zones->getConfigModules() as $m) {
- if ($CLICSHOPPING_Zones->getConfigModuleInfo($m, 'is_installed') === true) {
- echo '<li class="nav-link active" data-module="' . $m . '"><a href="' . $CLICSHOPPING_Zones->link('Configure&module=' . $m) . '">' . $CLICSHOPPING_Zones->getConfigModuleInfo($m, 'short_title') . '</a></li>';
- }
- }
- <li class="nav-item dropdown">
- <a class="nav-link dropdown-toggle" data-bs-toggle="dropdown" href="#" role="button" aria-haspopup="true"
- aria-expanded="false">Install</a>
- <div class="dropdown-menu">
- <?php
- foreach ($CLICSHOPPING_Zones->getConfigModules() as $m) {
- if ($CLICSHOPPING_Zones->getConfigModuleInfo($m, 'is_installed') === false) {
- echo '<a class="dropdown-item" href="' . $CLICSHOPPING_Zones->link('Configure&module=' . $m) . '">' . $CLICSHOPPING_Zones->getConfigModuleInfo($m, 'title') . '</a>';
- }
- }
- ?>
- <div class="adminformTitle">
- <div class="card-block">
- <p class="card-text">
- <?php
- foreach ($CLICSHOPPING_Zones_Config->getInputParameters() as $cfg) {
- echo '<div>' . $cfg . '</div>';
- echo '<div class="mt-1"></div>';
- }
- ?>
- </p>
- $modules = $CLICSHOPPING_Customers->getConfigModules();
- $default_module = 'CS';
- foreach ($modules as $m) {
- if ($CLICSHOPPING_Customers->getConfigModuleInfo($m, 'is_installed') === true) {
- $default_module = $m;
- break;
- }
- }
- $this->init();
- $current_module = $this->getCurrentModule();
- $m = $this->getConfigModule($current_module);
- foreach ($m->getParameters() as $key) {
- $p = mb_strtolower($key);
- if (isset($_POST[$p])) {
- $this->app->saveCfgParam($key, $_POST[$p]);
- }
- $CLICSHOPPING_Hooks = Registry::get('Hooks');
- $page = (isset($_GET['page']) && is_numeric($_GET['page'])) ? (int)$_GET['page'] : 1;
- if (isset($_POST['selected']) && isset($_GET['DeleteAll'])) {
- foreach ($_POST['selected'] as $id) {
- $CLICSHOPPING_Customers->db->delete('address_book', ['customers_id' => $id]);
- $CLICSHOPPING_Customers->db->delete('customers', ['customers_id' => $id]);
- $CLICSHOPPING_Customers->db->delete('customers_info', ['customers_info_id' => $id]);
- $CLICSHOPPING_Customers->db->delete('customers_basket', ['customers_id' => $id]);
- $CLICSHOPPING_Customers->db->delete('customers_basket_attributes', ['customers_id' => $id]);
- </div>
- <div class="mt-1"></div>
- <ul class="nav nav-tabs flex-column flex-sm-row" role="tablist" id="appCustomersToolbar">
- <li class="nav-item">
- <?php
- foreach ($CLICSHOPPING_Customers->getConfigModules() as $m) {
- if ($CLICSHOPPING_Customers->getConfigModuleInfo($m, 'is_installed') === true) {
- echo '<li class="nav-link active" data-module="' . $m . '"><a href="' . $CLICSHOPPING_Customers->link('Configure&module=' . $m) . '">' . $CLICSHOPPING_Customers->getConfigModuleInfo($m, 'short_title') . '</a></li>';
- }
- }
- <li class="nav-item dropdown">
- <a class="nav-link dropdown-toggle" data-bs-toggle="dropdown" href="#" role="button" aria-haspopup="true"
- aria-expanded="false">Install</a>
- <div class="dropdown-menu">
- <?php
- foreach ($CLICSHOPPING_Customers->getConfigModules() as $m) {
- if ($CLICSHOPPING_Customers->getConfigModuleInfo($m, 'is_installed') === false) {
- echo '<a class="dropdown-item" href="' . $CLICSHOPPING_Customers->link('Configure&module=' . $m) . '">' . $CLICSHOPPING_Customers->getConfigModuleInfo($m, 'title') . '</a>';
- }
- }
- ?>
- <div class="adminformTitle">
- <div class="card-block">
- <p class="card-text">
- <?php
- foreach ($CLICSHOPPING_Customers_Config->getInputParameters() as $cfg) {
- echo '<div>' . $cfg . '</div>';
- echo '<div class="mt-1"></div>';
- }
- ?>
- </p>
- */
- private function cronJob(): void
- {
- $results = $this->getExpires();
- foreach ($results as $result) {
- $cron_id_gdpr = Cron::getCronCode('gdpr');
- if (isset($_GET['cronId'])) {
- $cron_id = HTML::sanitize($_GET['cronId']);
- $modules = $CLICSHOPPING_Gdpr->getConfigModules();
- $default_module = 'GD';
- foreach ($modules as $m) {
- if ($CLICSHOPPING_Gdpr->getConfigModuleInfo($m, 'is_installed') === true) {
- $default_module = $m;
- break;
- }
- }
- $this->init();
- $current_module = $this->getCurrentModule();
- $m = $this->getConfigModule($current_module);
- foreach ($m->getParameters() as $key) {
- $p = mb_strtolower($key);
- if (isset($_POST[$p])) {
- $this->app->saveCfgParam($key, $_POST[$p]);
- }
- {
- $CLICSHOPPING_Gdpr = Registry::get('Gdpr');
- $page = (isset($_GET['page']) && is_numeric($_GET['page'])) ? (int)$_GET['page'] : 1;
- if (isset($_POST['selected'])) {
- foreach ($_POST['selected'] as $id) {
- GdprAdmin::deleteCustomersData($id);
- }
- }
- $CLICSHOPPING_Gdpr->redirect('Customers', 'page=' . $page);
- </div>
- <div class="mt-1"></div>
- <ul class="nav nav-tabs flex-column flex-sm-row" role="tablist" id="appGdprToolbar">
- <li class="nav-item">
- <?php
- foreach ($CLICSHOPPING_Gdpr->getConfigModules() as $m) {
- if ($CLICSHOPPING_Gdpr->getConfigModuleInfo($m, 'is_installed') === true) {
- echo '<li class="nav-link active" data-module="' . $m . '"><a href="' . $CLICSHOPPING_Gdpr->link('Configure&module=' . $m) . '">' . $CLICSHOPPING_Gdpr->getConfigModuleInfo($m, 'short_title') . '</a></li>';
- }
- }
- ?>
- <li class="nav-item dropdown">
- <a class="nav-link dropdown-toggle" data-bs-toggle="dropdown" href="#" role="button" aria-haspopup="true"
- aria-expanded="false">Install</a>
- <div class="dropdown-menu">
- <?php
- foreach ($CLICSHOPPING_Gdpr->getConfigModules() as $m) {
- if ($CLICSHOPPING_Gdpr->getConfigModuleInfo($m, 'is_installed') === false) {
- echo '<a class="dropdown-item" href="' . $CLICSHOPPING_Gdpr->link('Configure&module=' . $m) . '">' . $CLICSHOPPING_Gdpr->getConfigModuleInfo($m, 'title') . '</a>';
- }
- }
- ?>
- <div class="adminformTitle">
- <div class="card-block">
- <p class="card-text">
- <?php
- foreach ($CLICSHOPPING_Gdpr_Config->getInputParameters() as $cfg) {
- echo '<div>' . $cfg . '</div>';
- echo '<div class="mt-1"></div>';
- }
- ?>
- </p>
- $modules = $CLICSHOPPING_Groups->getConfigModules();
- $default_module = 'GR';
- foreach ($modules as $m) {
- if ($CLICSHOPPING_Groups->getConfigModuleInfo($m, 'is_installed') === true) {
- $default_module = $m;
- break;
- }
- }
- $this->init();
- $current_module = $this->getCurrentModule();
- $m = $this->getConfigModule($current_module);
- foreach ($m->getParameters() as $key) {
- $p = mb_strtolower($key);
- if (isset($_POST[$p])) {
- $this->app->saveCfgParam($key, $_POST[$p]);
- }
- // Module de paiement autorise
- if (isset($_POST['payment_unallowed'])) {
- $group_payment_unallowed = '';
- foreach ($_POST['payment_unallowed'] as $key => $val) {
- if (isset($val)) {
- $group_payment_unallowed .= $val . ',';
- }
- }
- // Module de livraison autorise
- if (isset($_POST['shipping_unallowed'])) {
- $group_shipping_unallowed = '';
- foreach ($_POST['shipping_unallowed'] as $key => $val) {
- if (isset($val)) {
- $group_shipping_unallowed .= $val . ',';
- }
- }
- // Module de paiement autorise
- if (isset($_POST['payment_unallowed'])) {
- $group_payment_unallowed = '';
- foreach ($_POST['payment_unallowed'] as $key => $val) {
- if (isset($val)) {
- $group_payment_unallowed .= $val . ',';
- }
- }
- // Module de livraison autorise
- if (isset($_POST['shipping_unallowed'])) {
- $group_shipping_unallowed = '';
- foreach ($_POST['shipping_unallowed'] as $key => $val) {
- if (isset($val)) {
- $group_shipping_unallowed .= $val . ',';
- }
- }
- </div>
- <div class="mt-1"></div>
- <ul class="nav nav-tabs flex-column flex-sm-row" role="tablist" id="appGroupsToolbar">
- <li class="nav-item">
- <?php
- foreach ($CLICSHOPPING_Groups->getConfigModules() as $m) {
- if ($CLICSHOPPING_Groups->getConfigModuleInfo($m, 'is_installed') === true) {
- echo '<li class="nav-link active" data-module="' . $m . '"><a href="' . $CLICSHOPPING_Groups->link('Configure&module=' . $m) . '">' . $CLICSHOPPING_Groups->getConfigModuleInfo($m, 'short_title') . '</a></li>';
- }
- }
- ?>
- <li class="nav-item dropdown">
- <a class="nav-link dropdown-toggle" data-bs-toggle="dropdown" href="#" role="button" aria-haspopup="true"
- aria-expanded="false">Install</a>
- <div class="dropdown-menu">
- <?php
- foreach ($CLICSHOPPING_Groups->getConfigModules() as $m) {
- if ($CLICSHOPPING_Groups->getConfigModuleInfo($m, 'is_installed') === false) {
- echo '<a class="dropdown-item" href="' . $CLICSHOPPING_Groups->link('Configure&module=' . $m) . '">' . $CLICSHOPPING_Groups->getConfigModuleInfo($m, 'title') . '</a>';
- }
- }
- ?>
- <div class="adminformTitle">
- <div class="card-block">
- <p class="card-text">
- <?php
- foreach ($CLICSHOPPING_Groups_Config->getInputParameters() as $cfg) {
- echo '<div>' . $cfg . '</div>';
- echo '<div class="mt-1"></div>';
- }
- ?>
- </p>
- $modules = $CLICSHOPPING_Members->getConfigModules();
- $default_module = 'ME';
- foreach ($modules as $m) {
- if ($CLICSHOPPING_Members->getConfigModuleInfo($m, 'is_installed') === true) {
- $default_module = $m;
- break;
- }
- }
- $this->init();
- $current_module = $this->getCurrentModule();
- $m = $this->getConfigModule($current_module);
- foreach ($m->getParameters() as $key) {
- $p = mb_strtolower($key);
- if (isset($_POST[$p])) {
- $this->app->saveCfgParam($key, $_POST[$p]);
- }
- </div>
- <div class="mt-1"></div>
- <ul class="nav nav-tabs flex-column flex-sm-row" role="tablist" id="appMembersToolbar">
- <li class="nav-item">
- <?php
- foreach ($CLICSHOPPING_Members->getConfigModules() as $m) {
- if ($CLICSHOPPING_Members->getConfigModuleInfo($m, 'is_installed') === true) {
- echo '<li class="nav-link active" data-module="' . $m . '"><a href="' . $CLICSHOPPING_Members->link('Configure&module=' . $m) . '">' . $CLICSHOPPING_Members->getConfigModuleInfo($m, 'short_title') . '</a></li>';
- }
- }
- ?>
- <li class="nav-item dropdown">
- <a class="nav-link dropdown-toggle" data-bs-toggle="dropdown" href="#" role="button" aria-haspopup="true"
- aria-expanded="false">Install</a>
- <div class="dropdown-menu">
- <?php
- foreach ($CLICSHOPPING_Members->getConfigModules() as $m) {
- if ($CLICSHOPPING_Members->getConfigModuleInfo($m, 'is_installed') === false) {
- echo '<a class="dropdown-item" href="' . $CLICSHOPPING_Members->link('Configure&module=' . $m) . '">' . $CLICSHOPPING_Members->getConfigModuleInfo($m, 'title') . '</a>';
- }
- }
- ?>
- <div class="adminformTitle">
- <div class="card-block">
- <p class="card-text">
- <?php
- foreach ($CLICSHOPPING_Members_Config->getInputParameters() as $cfg) {
- echo '<div>' . $cfg . '</div>';
- echo '<div class="mt-1"></div>';
- }
- ?>
- </p>
- $Qreviews->execute();
- $reviews_array = $Qreviews->fetchAll();
- $total = 0;
- foreach ($reviews_array as $value) {
- $customer_tag_array = explode(',', $value['customers_tag']);
- $total += count($customer_tag_array);
- }
- return $total;
- */
- public function execute()
- {
- if (isset($_GET['DeleteAll'])) {
- if (isset($_POST['selected'])) {
- foreach ($_POST['selected'] as $id) {
- $this->deleteCustomer($id);
- }
- } else {
- $id = HTML::sanitize($_POST['id']);
- $this->deleteCustomer($id);
- * @return void
- */
- public function execute()
- {
- if (isset($_POST['selected'])) {
- foreach ($_POST['selected'] as $id) {
- $this->removeReviews($id);
- $this->removeReviewsSentiment($id);
- }
- } elseif (isset($_POST['products_id'])) {
- $id = HTML::sanitize($_POST['products_id']);
- $modules = $CLICSHOPPING_Reviews->getConfigModules();
- $default_module = 'RV';
- foreach ($modules as $m) {
- if ($CLICSHOPPING_Reviews->getConfigModuleInfo($m, 'is_installed') === true) {
- $default_module = $m;
- break;
- }
- }
- $this->init();
- $current_module = $this->getCurrentModule();
- $m = $this->getConfigModule($current_module);
- foreach ($m->getParameters() as $key) {
- $p = mb_strtolower($key);
- if (isset($_POST[$p])) {
- $this->app->saveCfgParam($key, $_POST[$p]);
- }
- $CLICSHOPPING_Hooks = Registry::get('Hooks');
- $page = (isset($_GET['page']) && is_numeric($_GET['page'])) ? (int)$_GET['page'] : 1;
- if (isset($_POST['selected'])) {
- foreach ($_POST['selected'] as $id) {
- $reviews_id = HTML::sanitize($id);
- $CLICSHOPPING_Reviews->db->delete('reviews', ['reviews_id' => (int)$reviews_id]);
- $CLICSHOPPING_Reviews->db->delete('reviews_description', ['reviews_id' => (int)$reviews_id]);
- $CLICSHOPPING_Hooks = Registry::get('Hooks');
- $page = (isset($_GET['page']) && is_numeric($_GET['page'])) ? (int)$_GET['page'] : 1;
- if (isset($_POST['selected'])) {
- foreach ($_POST['selected'] as $id) {
- $reviews_id = HTML::sanitize($id);
- $CLICSHOPPING_Reviews->db->delete('reviews', ['reviews_id' => (int)$reviews_id]);
- }
- }
- $CLICSHOPPING_Hooks = Registry::get('Hooks');
- $page = (isset($_GET['page']) && is_numeric($_GET['page'])) ? (int)$_GET['page'] : 1;
- if (isset($_POST['selected'])) {
- foreach ($_POST['selected'] as $id) {
- $Qid = $CLICSHOPPING_Reviews->db->get('reviews_sentiment', 'id', ['reviews_id' => (int)$id]);
- $CLICSHOPPING_Reviews->db->delete('reviews_sentiment', ['reviews_id' => (int)$id]);
- $CLICSHOPPING_Reviews->db->delete('reviews_sentiment_description', ['id' => (int)$Qid->valueInt('id')]);
- }
- </div>
- <div class="mt-1"></div>
- <ul class="nav nav-tabs flex-column flex-sm-row" role="tablist" id="appReviewsToolbar">
- <li class="nav-item">
- <?php
- foreach ($CLICSHOPPING_Reviews->getConfigModules() as $m) {
- if ($CLICSHOPPING_Reviews->getConfigModuleInfo($m, 'is_installed') === true) {
- echo '<li class="nav-link active" data-module="' . $m . '"><a href="' . $CLICSHOPPING_Reviews->link('Configure&module=' . $m) . '">' . $CLICSHOPPING_Reviews->getConfigModuleInfo($m, 'short_title') . '</a></li>';
- }
- }
- ?>
- <li class="nav-item dropdown">
- <a class="nav-link dropdown-toggle" data-bs-toggle="dropdown" href="#" role="button" aria-haspopup="true"
- aria-expanded="false">Install</a>
- <div class="dropdown-menu">
- <?php
- foreach ($CLICSHOPPING_Reviews->getConfigModules() as $m) {
- if ($CLICSHOPPING_Reviews->getConfigModuleInfo($m, 'is_installed') === false) {
- echo '<a class="dropdown-item" href="' . $CLICSHOPPING_Reviews->link('Configure&module=' . $m) . '">' . $CLICSHOPPING_Reviews->getConfigModuleInfo($m, 'title') . '</a>';
- }
- }
- ?>
- <div class="adminformTitle">
- <div class="card-block">
- <p class="card-text">
- <?php
- foreach ($CLICSHOPPING_Reviews_Config->getInputParameters() as $cfg) {
- echo '<div>' . $cfg . '</div>';
- echo '<div class="mt-1"></div>';
- }
- ?>
- </p>
- $CLICSHOPPING_Hooks = Registry::get('Hooks');
- $page = (isset($_GET['page']) && is_numeric($_GET['page'])) ? (int)$_GET['page'] : 1;
- if (isset($_POST['selected'])) {
- foreach ($_POST['selected'] as $id) {
- $CLICSHOPPING_BannerManager->db->delete('banners', ['banners_id' => (int)$id]);
- $CLICSHOPPING_BannerManager->db->delete('banners_history', ['banners_id' => (int)$id]);
- $CLICSHOPPING_Hooks->call('BannerManager', 'RemoveBanner');
- }
- $modules = $CLICSHOPPING_BannerManager->getConfigModules();
- $default_module = 'BM';
- foreach ($modules as $m) {
- if ($CLICSHOPPING_BannerManager->getConfigModuleInfo($m, 'is_installed') === true) {
- $default_module = $m;
- break;
- }
- }
- $this->init();
- $current_module = $this->getCurrentModule();
- $m = $this->getConfigModule($current_module);
- foreach ($m->getParameters() as $key) {
- $p = mb_strtolower($key);
- if (isset($_POST[$p])) {
- $this->app->saveCfgParam($key, $_POST[$p]);
- }
- </div>
- <div class="mt-1"></div>
- <ul class="nav nav-tabs flex-column flex-sm-row" role="tablist" id="appBannerManagerToolbar">
- <li class="nav-item">
- <?php
- foreach ($CLICSHOPPING_BannerManager->getConfigModules() as $m) {
- if ($CLICSHOPPING_BannerManager->getConfigModuleInfo($m, 'is_installed') === true) {
- echo '<li class="nav-link active" data-module="' . $m . '"><a href="' . $CLICSHOPPING_BannerManager->link('Configure&module=' . $m) . '">' . $CLICSHOPPING_BannerManager->getConfigModuleInfo($m, 'short_title') . '</a></li>';
- }
- }
- <li class="nav-item dropdown">
- <a class="nav-link dropdown-toggle" data-bs-toggle="dropdown" href="#" role="button" aria-haspopup="true"
- aria-expanded="false">Install</a>
- <div class="dropdown-menu">
- <?php
- foreach ($CLICSHOPPING_BannerManager->getConfigModules() as $m) {
- if ($CLICSHOPPING_BannerManager->getConfigModuleInfo($m, 'is_installed') === false) {
- echo '<a class="dropdown-item" href="' . $CLICSHOPPING_BannerManager->link('Configure&module=' . $m) . '">' . $CLICSHOPPING_BannerManager->getConfigModuleInfo($m, 'title') . '</a>';
- }
- }
- ?>
- <div class="adminformTitle">
- <div class="card-block">
- <p class="card-text">
- <?php
- foreach ($CLICSHOPPING_BannerManager_Config->getInputParameters() as $cfg) {
- echo '<div>' . $cfg . '</div>';
- echo '<div class="mt-1"></div>';
- }
- ?>
- </p>
- $modules = $CLICSHOPPING_Favorites->getConfigModules();
- $default_module = 'FA';
- foreach ($modules as $m) {
- if ($CLICSHOPPING_Favorites->getConfigModuleInfo($m, 'is_installed') === true) {
- $default_module = $m;
- break;
- }
- }
- $this->init();
- $current_module = $this->getCurrentModule();
- $m = $this->getConfigModule($current_module);
- foreach ($m->getParameters() as $key) {
- $p = mb_strtolower($key);
- if (isset($_POST[$p])) {
- $this->app->saveCfgParam($key, $_POST[$p]);
- }
- $CLICSHOPPING_Hooks = Registry::get('Hooks');
- $page = (isset($_GET['page']) && is_numeric($_GET['page'])) ? (int)$_GET['page'] : 1;
- if (isset($_POST['selected'])) {
- foreach ($_POST['selected'] as $id) {
- $Qdelete = $CLICSHOPPING_Favorites->db->prepare('delete
- from :table_products_favorites
- where products_favorites_id = :products_favorites_id
- ');
- $Qdelete->bindInt(':products_favorites_id', (int)$id);
- </div>
- <div class="mt-1"></div>
- <ul class="nav nav-tabs flex-column flex-sm-row" role="tablist" id="appFavoritesToolbar">
- <li class="nav-item">
- <?php
- foreach ($CLICSHOPPING_Favorites->getConfigModules() as $m) {
- if ($CLICSHOPPING_Favorites->getConfigModuleInfo($m, 'is_installed') === true) {
- echo '<li class="nav-link active" data-module="' . $m . '"><a href="' . $CLICSHOPPING_Favorites->link('Configure&module=' . $m) . '">' . $CLICSHOPPING_Favorites->getConfigModuleInfo($m, 'short_title') . '</a></li>';
- }
- }
- <li class="nav-item dropdown">
- <a class="nav-link dropdown-toggle" data-bs-toggle="dropdown" href="#" role="button" aria-haspopup="true"
- aria-expanded="false">Install</a>
- <div class="dropdown-menu">
- <?php
- foreach ($CLICSHOPPING_Favorites->getConfigModules() as $m) {
- if ($CLICSHOPPING_Favorites->getConfigModuleInfo($m, 'is_installed') === false) {
- echo '<a class="dropdown-item" href="' . $CLICSHOPPING_Favorites->link('Configure&module=' . $m) . '">' . $CLICSHOPPING_Favorites->getConfigModuleInfo($m, 'title') . '</a>';
- }
- }
- ?>
- <div class="adminformTitle">
- <div class="card-block">
- <p class="card-text">
- <?php
- foreach ($CLICSHOPPING_Favorites_Config->getInputParameters() as $cfg) {
- echo '<div>' . $cfg . '</div>';
- echo '<div class="mt-1"></div>';
- }
- ?>
- </p>
- $modules = $CLICSHOPPING_Featured->getConfigModules();
- $default_module = 'FE';
- foreach ($modules as $m) {
- if ($CLICSHOPPING_Featured->getConfigModuleInfo($m, 'is_installed') === true) {
- $default_module = $m;
- break;
- }
- }
- $this->init();
- $current_module = $this->getCurrentModule();
- $m = $this->getConfigModule($current_module);
- foreach ($m->getParameters() as $key) {
- $p = mb_strtolower($key);
- if (isset($_POST[$p])) {
- $this->app->saveCfgParam($key, $_POST[$p]);
- }
- $CLICSHOPPING_Featured = Registry::get('Featured');
- $page = (isset($_GET['page']) && is_numeric($_GET['page'])) ? (int)$_GET['page'] : 1;
- if (isset($_POST['selected'])) {
- foreach ($_POST['selected'] as $id) {
- $Qdelete = $CLICSHOPPING_Featured->db->prepare('delete
- from :table_products_featured
- where products_featured_id = :products_featured_id
- ');
- $Qdelete->bindInt(':products_featured_id', (int)$id);
- </div>
- <div class="mt-1"></div>
- <ul class="nav nav-tabs flex-column flex-sm-row" role="tablist" id="appFeaturedToolbar">
- <li class="nav-item">
- <?php
- foreach ($CLICSHOPPING_Featured->getConfigModules() as $m) {
- if ($CLICSHOPPING_Featured->getConfigModuleInfo($m, 'is_installed') === true) {
- echo '<li class="nav-link active" data-module="' . $m . '"><a href="' . $CLICSHOPPING_Featured->link('Configure&module=' . $m) . '">' . $CLICSHOPPING_Featured->getConfigModuleInfo($m, 'short_title') . '</a></li>';
- }
- }
- <li class="nav-item dropdown">
- <a class="nav-link dropdown-toggle" data-bs-toggle="dropdown" href="#" role="button" aria-haspopup="true"
- aria-expanded="false">Install</a>
- <div class="dropdown-menu">
- <?php
- foreach ($CLICSHOPPING_Featured->getConfigModules() as $m) {
- if ($CLICSHOPPING_Featured->getConfigModuleInfo($m, 'is_installed') === false) {
- echo '<a class="dropdown-item" href="' . $CLICSHOPPING_Featured->link('Configure&module=' . $m) . '">' . $CLICSHOPPING_Featured->getConfigModuleInfo($m, 'title') . '</a>';
- }
- }
- ?>
- <div class="adminformTitle">
- <div class="card-block">
- <p class="card-text">
- <?php
- foreach ($CLICSHOPPING_Featured_Config->getInputParameters() as $cfg) {
- echo '<div>' . $cfg . '</div>';
- echo '<div class="mt-1"></div>';
- }
- ?>
- </p>
- $modules = $CLICSHOPPING_Recommendations->getConfigModules();
- $default_module = 'PR';
- foreach ($modules as $m) {
- if ($CLICSHOPPING_Recommendations->getConfigModuleInfo($m, 'is_installed') === true) {
- $default_module = $m;
- break;
- }
- }
- $this->init();
- $current_module = $this->getCurrentModule();
- $m = $this->getConfigModule($current_module);
- foreach ($m->getParameters() as $key) {
- $p = mb_strtolower($key);
- if (isset($_POST[$p])) {
- $this->app->saveCfgParam($key, $_POST[$p]);
- }
- $CLICSHOPPING_Hooks = Registry::get('Hooks');
- $page = (isset($_GET['page']) && is_numeric($_GET['page'])) ? (int)$_GET['page'] : 1;
- if (isset($_POST['selected'], $_GET['DeleteAll'], $_GET['Recommendations'])) {
- foreach ($_POST['selected'] as $id) {
- $CLICSHOPPING_Recommendations->db->delete('customers_basket', ['products_id' => (int)$id]);
- $CLICSHOPPING_Hooks->call('Recommendations', 'RemoveRecommendations');
- }
- }
- </div>
- <div class="mt-1"></div>
- <ul class="nav nav-tabs flex-column flex-sm-row" role="tablist" id="appRecommendationsToolbar">
- <li class="nav-item">
- <?php
- foreach ($CLICSHOPPING_Recommendations->getConfigModules() as $m) {
- if ($CLICSHOPPING_Recommendations->getConfigModuleInfo($m, 'is_installed') === true) {
- echo '<li class="nav-link active" data-module="' . $m . '"><a href="' . $CLICSHOPPING_Recommendations->link('Configure&module=' . $m) . '">' . $CLICSHOPPING_Recommendations->getConfigModuleInfo($m, 'short_title') . '</a></li>';
- }
- }
- <li class="nav-item dropdown">
- <a class="nav-link dropdown-toggle" data-bs-toggle="dropdown" href="#" role="button" aria-haspopup="true"
- aria-expanded="false">Install</a>
- <div class="dropdown-menu">
- <?php
- foreach ($CLICSHOPPING_Recommendations->getConfigModules() as $m) {
- if ($CLICSHOPPING_Recommendations->getConfigModuleInfo($m, 'is_installed') === false) {
- echo '<a class="dropdown-item" href="' . $CLICSHOPPING_Recommendations->link('Configure&module=' . $m) . '">' . $CLICSHOPPING_Recommendations->getConfigModuleInfo($m, 'title') . '</a>';
- }
- }
- ?>
- <div class="adminformTitle">
- <div class="card-block">
- <p class="card-text">
- <?php
- foreach ($CLICSHOPPING_Recommendations_Config->getInputParameters() as $cfg) {
- echo '<div>' . $cfg . '</div>';
- echo '<div class="mt-1"></div>';
- }
- ?>
- </p>
- </thead>
- <tbody>
- <?php
- $mostRecommendedProducts = $CLICSHOPPING_RecommendationsAdmin->getMostRecommendedProducts($limit, $customers_group_id, $date);
- foreach ($mostRecommendedProducts as $product) {
- $productId = $product['products_id'];
- $productName = $CLICSHOPPING_ProductsAdmin->getProductsName($productId, $CLICSHOPPING_Language->getId());
- $recommendationCount = $product['recommendation_count'];
- $score = $product['score'];
- ?>
- </thead>
- <tbody>
- <?php
- $rejectedProducts = $CLICSHOPPING_RecommendationsAdmin->getRejectedProducts($limit, $customers_group_id, $date);
- foreach ($rejectedProducts as $product) {
- $productId = $product['products_id'];
- $productName = $CLICSHOPPING_ProductsAdmin->getProductsName($productId, $CLICSHOPPING_Language->getId());
- $rejectionCount = $product['rejection_count'];
- $rejectionScore = $product['score'];
- ?>
- $modules = $CLICSHOPPING_SEO->getConfigModules();
- $default_module = 'SE';
- foreach ($modules as $m) {
- if ($CLICSHOPPING_SEO->getConfigModuleInfo($m, 'is_installed') === true) {
- $default_module = $m;
- break;
- }
- }
- $this->init();
- $current_module = $this->getCurrentModule();
- $m = $this->getConfigModule($current_module);
- foreach ($m->getParameters() as $key) {
- $p = mb_strtolower($key);
- if (isset($_POST[$p])) {
- $this->app->saveCfgParam($key, $_POST[$p]);
- }
- </div>
- <div class="mt-1"></div>
- <ul class="nav nav-tabs flex-column flex-sm-row" role="tablist" id="appSEOToolbar">
- <li class="nav-item">
- <?php
- foreach ($CLICSHOPPING_SEO->getConfigModules() as $m) {
- if ($CLICSHOPPING_SEO->getConfigModuleInfo($m, 'is_installed') === true) {
- echo '<li class="nav-link active" data-module="' . $m . '"><a href="' . $CLICSHOPPING_SEO->link('Configure&module=' . $m) . '">' . $CLICSHOPPING_SEO->getConfigModuleInfo($m, 'short_title') . '</a></li>';
- }
- }
- <li class="nav-item dropdown">
- <a class="nav-link dropdown-toggle" data-bs-toggle="dropdown" href="#" role="button" aria-haspopup="true"
- aria-expanded="false">Install</a>
- <div class="dropdown-menu">
- <?php
- foreach ($CLICSHOPPING_SEO->getConfigModules() as $m) {
- if ($CLICSHOPPING_SEO->getConfigModuleInfo($m, 'is_installed') === false) {
- echo '<a class="dropdown-item" href="' . $CLICSHOPPING_SEO->link('Configure&module=' . $m) . '">' . $CLICSHOPPING_SEO->getConfigModuleInfo($m, 'title') . '</a>';
- }
- }
- ?>
- <div class="adminformTitle">
- <div class="card-block">
- <p class="card-text">
- <?php
- foreach ($CLICSHOPPING_SEO_Config->getInputParameters() as $cfg) {
- echo '<div>' . $cfg . '</div>';
- echo '<div class="mt-1"></div>';
- }
- ?>
- </p>
- $modules = $CLICSHOPPING_Specials->getConfigModules();
- $default_module = 'SP';
- foreach ($modules as $m) {
- if ($CLICSHOPPING_Specials->getConfigModuleInfo($m, 'is_installed') === true) {
- $default_module = $m;
- break;
- }
- }
- $this->init();
- $current_module = $this->getCurrentModule();
- $m = $this->getConfigModule($current_module);
- foreach ($m->getParameters() as $key) {
- $p = mb_strtolower($key);
- if (isset($_POST[$p])) {
- $this->app->saveCfgParam($key, $_POST[$p]);
- }
- $CLICSHOPPING_Specials = Registry::get('Specials');
- $page = (isset($_GET['page']) && is_numeric($_GET['page'])) ? (int)$_GET['page'] : 1;
- if (isset($_POST['selected'])) {
- foreach ($_POST['selected'] as $id) {
- $Qdelete = $CLICSHOPPING_Specials->db->prepare('delete
- from :table_specials
- where specials_id = :specials_id
- ');
- $Qdelete->bindInt(':specials_id', (int)$id);
- </div>
- <div class="mt-1"></div>
- <ul class="nav nav-tabs flex-column flex-sm-row" role="tablist" id="appSpecialsToolbar">
- <li class="nav-item">
- <?php
- foreach ($CLICSHOPPING_Specials->getConfigModules() as $m) {
- if ($CLICSHOPPING_Specials->getConfigModuleInfo($m, 'is_installed') === true) {
- echo '<li class="nav-link active" data-module="' . $m . '"><a href="' . $CLICSHOPPING_Specials->link('Configure&module=' . $m) . '">' . $CLICSHOPPING_Specials->getConfigModuleInfo($m, 'short_title') . '</a></li>';
- }
- }
- <li class="nav-item dropdown">
- <a class="nav-link dropdown-toggle" data-bs-toggle="dropdown" href="#" role="button" aria-haspopup="true"
- aria-expanded="false">Install</a>
- <div class="dropdown-menu">
- <?php
- foreach ($CLICSHOPPING_Specials->getConfigModules() as $m) {
- if ($CLICSHOPPING_Specials->getConfigModuleInfo($m, 'is_installed') === false) {
- echo '<a class="dropdown-item" href="' . $CLICSHOPPING_Specials->link('Configure&module=' . $m) . '">' . $CLICSHOPPING_Specials->getConfigModuleInfo($m, 'title') . '</a>';
- }
- }
- ?>
- <div class="adminformTitle">
- <div class="card-block">
- <p class="card-text">
- <?php
- foreach ($CLICSHOPPING_Specials_Config->getInputParameters() as $cfg) {
- echo '<div>' . $cfg . '</div>';
- echo '<div class="mt-1"></div>';
- }
- ?>
- </p>
- $modules = $CLICSHOPPING_SubTotal->getConfigModules();
- $default_module = 'ST';
- foreach ($modules as $m) {
- if ($CLICSHOPPING_SubTotal->getConfigModuleInfo($m, 'is_installed') === true) {
- $default_module = $m;
- break;
- }
- }
- $this->init();
- $current_module = $this->getCurrentModule();
- $m = $this->getConfigModule($current_module);
- foreach ($m->getParameters() as $key) {
- $p = mb_strtolower($key);
- if (isset($_POST[$p])) {
- $this->app->saveCfgParam($key, $_POST[$p]);
- }
- <div class="adminformTitle">
- <div class="card-block">
- <p class="card-text">
- <?php
- foreach ($CLICSHOPPING_SubTotal_Config->getInputParameters() as $cfg) {
- echo '<div>' . $cfg . '</div>';
- echo '<div class="mt-1"></div>';
- }
- ?>
- </p>
- $modules = $CLICSHOPPING_Total->getConfigModules();
- $default_module = 'TO';
- foreach ($modules as $m) {
- if ($CLICSHOPPING_Total->getConfigModuleInfo($m, 'is_installed') === true) {
- $default_module = $m;
- break;
- }
- }
- $this->init();
- $current_module = $this->getCurrentModule();
- $m = $this->getConfigModule($current_module);
- foreach ($m->getParameters() as $key) {
- $p = mb_strtolower($key);
- if (isset($_POST[$p])) {
- $this->app->saveCfgParam($key, $_POST[$p]);
- }
- <div class="adminformTitle">
- <div class="card-block">
- <p class="card-text">
- <?php
- foreach ($CLICSHOPPING_Total_Config->getInputParameters() as $cfg) {
- echo '<div>' . $cfg . '</div>';
- echo '<div class="mt-1"></div>';
- }
- ?>
- </p>
- $modules = $CLICSHOPPING_TotalShipping->getConfigModules();
- $default_module = 'SH';
- foreach ($modules as $m) {
- if ($CLICSHOPPING_TotalShipping->getConfigModuleInfo($m, 'is_installed') === true) {
- $default_module = $m;
- break;
- }
- }
- $this->init();
- $current_module = $this->getCurrentModule();
- $m = $this->getConfigModule($current_module);
- foreach ($m->getParameters() as $key) {
- $p = mb_strtolower($key);
- if (isset($_POST[$p])) {
- $this->app->saveCfgParam($key, $_POST[$p]);
- }
- <div class="adminformTitle">
- <div class="card-block">
- <p class="card-text">
- <?php
- foreach ($CLICSHOPPING_TotalShipping_Config->getInputParameters() as $cfg) {
- echo '<div>' . $cfg . '</div>';
- echo '<div class="mt-1"></div>';
- }
- ?>
- </p>
- // Si l'ordre d'affichage du shipping < sort order on additionne les frais d'envoi au sous total
- if (defined('CLICSHOPPING_APP_ORDER_TOTAL_SHIPPING_SH_SORT_ORDER') && CLICSHOPPING_APP_ORDER_TOTAL_SHIPPING_SH_SORT_ORDER < CLICSHOPPING_APP_ORDER_TOTAL_TAX_TX_SORT_ORDER) $subtotal += $CLICSHOPPING_Order->info['shipping_cost'];
- $hst_total = $subtotal * ($Qtax->valueDecimal('tax_rate') / 100);
- foreach ($CLICSHOPPING_Order->info['tax_groups'] as $key => $value) {
- if ($value > 0) {
- $this->output[] = [
- 'title' => $Qtax->value('tax_description') . ' : ',
- 'text' => $CLICSHOPPING_Currencies->format($hst_total, true, $CLICSHOPPING_Order->info['currency'], $CLICSHOPPING_Order->info['currency_value']), 'value' => $hst_total
- ];
- } else {
- // **********************************
- // normal tax
- // ************************************
- foreach ($CLICSHOPPING_Order->info['tax_groups'] as $key => $value) {
- if ($value > 0) {
- $this->output[] = [
- 'title' => $key,
- 'text' => $CLICSHOPPING_Currencies->format($value, true, $CLICSHOPPING_Order->info['currency'], $CLICSHOPPING_Order->info['currency_value']),
- 'value' => $value
- $modules = $CLICSHOPPING_TotalTax->getConfigModules();
- $default_module = 'TX';
- foreach ($modules as $m) {
- if ($CLICSHOPPING_TotalTax->getConfigModuleInfo($m, 'is_installed') === true) {
- $default_module = $m;
- break;
- }
- }
- $this->init();
- $current_module = $this->getCurrentModule();
- $m = $this->getConfigModule($current_module);
- foreach ($m->getParameters() as $key) {
- $p = mb_strtolower($key);
- if (isset($_POST[$p])) {
- $this->app->saveCfgParam($key, $_POST[$p]);
- }
- <div class="adminformTitle">
- <div class="card-block">
- <p class="card-text">
- <?php
- foreach ($CLICSHOPPING_TotalTax_Config->getInputParameters() as $cfg) {
- echo '<div>' . $cfg . '</div>';
- echo '<div class="mt-1"></div>';
- }
- ?>
- </p>
- }
- if ($products[$i]['attributes']) {
- $subindex = 0;
- foreach ($products[$i]['attributes'] as $option => $value) {
- $Qattributes = $CLICSHOPPING_ProductsAttributes->getProductsAttributesInfo($products[$i]['id'], $option, $value, $this->lang->getId());
- $this->products[$index]['attributes'][$subindex] = ['option' => $Qattributes->value('products_options_name'),
- 'value' => $Qattributes->value('products_options_values_name'),
- public function install()
- {
- $cut_length = \strlen('CLICSHOPPING_APP_ORDERS_' . $this->code . '_');
- foreach ($this->getParameters() as $key) {
- $p = mb_strtolower(substr($key, $cut_length));
- $class = 'ClicShopping\Apps\Orders\Orders\Module\ClicShoppingAdmin\Config\\' . $this->code . '\Params\\' . $p;
- $cfg = new $class($this->code);
- $cut = 'CLICSHOPPING_APP_ORDERS_' . $this->code . '_';
- $cut_length = \strlen($cut);
- foreach ($this->getParameters() as $key) {
- $p = mb_strtolower(substr($key, $cut_length));
- $class = 'ClicShopping\Apps\Orders\Orders\Module\ClicShoppingAdmin\Config\\' . $this->code . '\Params\\' . $p;
- $cfg = new $class($this->code);
- $modules = $CLICSHOPPING_Orders->getConfigModules();
- $default_module = 'OD';
- foreach ($modules as $m) {
- if ($CLICSHOPPING_Orders->getConfigModuleInfo($m, 'is_installed') === true) {
- $default_module = $m;
- break;
- }
- }
- $this->init();
- $current_module = $this->getCurrentModule();
- $m = $this->getConfigModule($current_module);
- foreach ($m->getParameters() as $key) {
- $p = mb_strtolower($key);
- if (isset($_POST[$p])) {
- $this->app->saveCfgParam($key, $_POST[$p]);
- }
- </div>
- <div class="mt-1"></div>
- <ul class="nav nav-tabs flex-column flex-sm-row" role="tablist" id="appOrdersToolbar">
- <li class="nav-item">
- <?php
- foreach ($CLICSHOPPING_Orders->getConfigModules() as $m) {
- if ($CLICSHOPPING_Orders->getConfigModuleInfo($m, 'is_installed') === true) {
- echo '<li class="nav-link active" data-module="' . $m . '"><a href="' . $CLICSHOPPING_Orders->link('Configure&module=' . $m) . '">' . $CLICSHOPPING_Orders->getConfigModuleInfo($m, 'short_title') . '</a></li>';
- }
- }
- <li class="nav-item dropdown">
- <a class="nav-link dropdown-toggle" data-bs-toggle="dropdown" href="#" role="button" aria-haspopup="true"
- aria-expanded="false">Install</a>
- <div class="dropdown-menu">
- <?php
- foreach ($CLICSHOPPING_Orders->getConfigModules() as $m) {
- if ($CLICSHOPPING_Orders->getConfigModuleInfo($m, 'is_installed') === false) {
- echo '<a class="dropdown-item" href="' . $CLICSHOPPING_Orders->link('Configure&module=' . $m) . '">' . $CLICSHOPPING_Orders->getConfigModuleInfo($m, 'title') . '</a>';
- }
- }
- ?>
- <div class="adminformTitle">
- <div class="card-block">
- <p class="card-text">
- <?php
- foreach ($CLICSHOPPING_Orders_Config->getInputParameters() as $cfg) {
- echo '<div>' . $cfg . '</div>';
- echo '<div class="mt-1"></div>';
- }
- ?>
- </p>
- </table>
- <div class="mt-1"></div>
- <table border="0" cellspacing="0" cellpadding="2" width="100%">
- <?php
- foreach ($order->totals as $value) {
- echo ' <tr>' . "\n" .
- ' <td class="text-end"><strong>' . $value['title'] . '</strong></td>' . "\n" .
- ' <td class="text-end"><strong>' . strip_tags($value['text']) . '</strong></td>' . "\n" .
- ' </tr>' . "\n";
- }
- $modules = $CLICSHOPPING_ReturnOrders->getConfigModules();
- $default_module = 'RO';
- foreach ($modules as $m) {
- if ($CLICSHOPPING_ReturnOrders->getConfigModuleInfo($m, 'is_installed') === true) {
- $default_module = $m;
- break;
- }
- }
- $this->init();
- $current_module = $this->getCurrentModule();
- $m = $this->getConfigModule($current_module);
- foreach ($m->getParameters() as $key) {
- $p = mb_strtolower($key);
- if (isset($_POST[$p])) {
- $this->app->saveCfgParam($key, $_POST[$p]);
- }
- </div>
- <div class="mt-1"></div>
- <ul class="nav nav-tabs flex-column flex-sm-row" role="tablist" id="appReturnOrdersToolbar">
- <li class="nav-item">
- <?php
- foreach ($CLICSHOPPING_ReturnOrders->getConfigModules() as $m) {
- if ($CLICSHOPPING_ReturnOrders->getConfigModuleInfo($m, 'is_installed') === true) {
- echo '<li class="nav-link active" data-module="' . $m . '"><a href="' . $CLICSHOPPING_ReturnOrders->link('Configure&module=' . $m) . '">' . $CLICSHOPPING_ReturnOrders->getConfigModuleInfo($m, 'short_title') . '</a></li>';
- }
- }
- <li class="nav-item dropdown">
- <a class="nav-link dropdown-toggle" data-bs-toggle="dropdown" href="#" role="button" aria-haspopup="true"
- aria-expanded="false">Install</a>
- <div class="dropdown-menu">
- <?php
- foreach ($CLICSHOPPING_ReturnOrders->getConfigModules() as $m) {
- if ($CLICSHOPPING_ReturnOrders->getConfigModuleInfo($m, 'is_installed') === false) {
- echo '<a class="dropdown-item" href="' . $CLICSHOPPING_ReturnOrders->link('Configure&module=' . $m) . '">' . $CLICSHOPPING_ReturnOrders->getConfigModuleInfo($m, 'title') . '</a>';
- }
- }
- ?>
- </div>
- <div class="adminformTitle">
- <div class="card-block">
- <p class="card-text">
- <?php
- foreach ($CLICSHOPPING_ReturnOrders_Config->getInputParameters() as $cfg) {
- echo '<div>' . $cfg . '</div>';
- echo '<div class="mt-1"></div>';
- }
- ?>
- </p>
- $modules = $CLICSHOPPING_COD->getConfigModules();
- $default_module = 'CO';
- foreach ($modules as $m) {
- if ($CLICSHOPPING_COD->getConfigModuleInfo($m, 'is_installed') === true) {
- $default_module = $m;
- break;
- }
- }
- $this->init();
- $current_module = $this->getCurrentModule();
- $m = $this->getConfigModule($current_module);
- foreach ($m->getParameters() as $key) {
- $p = mb_strtolower($key);
- if (isset($_POST[$p])) {
- $this->app->saveCfgParam($key, $_POST[$p]);
- }
- <div class="adminformTitle">
- <div class="card-block">
- <p class="card-text">
- <?php
- foreach ($CLICSHOPPING_COD_Config->getInputParameters() as $cfg) {
- echo '<div>' . $cfg . '</div>';
- echo '<div class="mt-1"></div>';
- }
- ?>
- </p>
- $modules = $CLICSHOPPING_MoneyOrder->getConfigModules();
- $default_module = 'MO';
- foreach ($modules as $m) {
- if ($CLICSHOPPING_MoneyOrder->getConfigModuleInfo($m, 'is_installed') === true) {
- $default_module = $m;
- break;
- }
- }
- $this->init();
- $current_module = $this->getCurrentModule();
- $m = $this->getConfigModule($current_module);
- foreach ($m->getParameters() as $key) {
- $p = mb_strtolower($key);
- if (isset($_POST[$p])) {
- $this->app->saveCfgParam($key, $_POST[$p]);
- }
- <div class="adminformTitle">
- <div class="card-block">
- <p class="card-text">
- <?php
- foreach ($CLICSHOPPING_MoneyOrder_Config->getInputParameters() as $cfg) {
- echo '<div>' . $cfg . '</div>';
- echo '<div class="mt-1"></div>';
- }
- ?>
- </p>
- ];
- $i = 0;
- if (\count($CLICSHOPPING_Order->products) < 7) {
- foreach ($CLICSHOPPING_Order->products as $product) {
- $i++;
- $metadata['product_' . $i . '_name'] = $product['name'];
- $metadata['product_' . $i . '_model'] = $product['model'];
- $metadata['product_' . $i . '_id'] = $product['id'];
- $modules = $CLICSHOPPING_Stripe->getConfigModules();
- $default_module = 'ST';
- foreach ($modules as $m) {
- if ($CLICSHOPPING_Stripe->getConfigModuleInfo($m, 'is_installed') === true) {
- $default_module = $m;
- break;
- }
- }
- $this->init();
- $current_module = $this->getCurrentModule();
- $m = $this->getConfigModule($current_module);
- foreach ($m->getParameters() as $key) {
- $p = mb_strtolower($key);
- if (isset($_POST[$p])) {
- $this->app->saveCfgParam($key, $_POST[$p]);
- }
- <div class="adminformTitle">
- <div class="card-block">
- <p class="card-text">
- <?php
- foreach ($CLICSHOPPING_Stripe_Config->getInputParameters() as $cfg) {
- echo '<div>' . $cfg . '</div>';
- echo '<div class="mt-1"></div>';
- }
- ?>
- </p>
- $modules = $CLICSHOPPING_StatsProductsNotification->getConfigModules();
- $default_module = 'PN';
- foreach ($modules as $m) {
- if ($CLICSHOPPING_StatsProductsNotification->getConfigModuleInfo($m, 'is_installed') === true) {
- $default_module = $m;
- break;
- }
- }
- $this->init();
- $current_module = $this->getCurrentModule();
- $m = $this->getConfigModule($current_module);
- foreach ($m->getParameters() as $key) {
- $p = mb_strtolower($key);
- if (isset($_POST[$p])) {
- $this->app->saveCfgParam($key, $_POST[$p]);
- }
- </div>
- <div class="mt-1"></div>
- <ul class="nav nav-tabs flex-column flex-sm-row" role="tablist" id="appStatsProductsNotificationToolbar">
- <li class="nav-item">
- <?php
- foreach ($CLICSHOPPING_StatsProductsNotification->getConfigModules() as $m) {
- if ($CLICSHOPPING_StatsProductsNotification->getConfigModuleInfo($m, 'is_installed') === true) {
- echo '<li class="nav-link active" data-module="' . $m . '"><a href="' . $CLICSHOPPING_StatsProductsNotification->link('Configure&module=' . $m) . '">' . $CLICSHOPPING_StatsProductsNotification->getConfigModuleInfo($m, 'short_title') . '</a></li>';
- }
- }
- <li class="nav-item dropdown">
- <a class="nav-link dropdown-toggle" data-bs-toggle="dropdown" href="#" role="button" aria-haspopup="true"
- aria-expanded="false">Install</a>
- <div class="dropdown-menu">
- <?php
- foreach ($CLICSHOPPING_StatsProductsNotification->getConfigModules() as $m) {
- if ($CLICSHOPPING_StatsProductsNotification->getConfigModuleInfo($m, 'is_installed') === false) {
- echo '<a class="dropdown-item" href="' . $CLICSHOPPING_StatsProductsNotification->link('Configure&module=' . $m) . '">' . $CLICSHOPPING_StatsProductsNotification->getConfigModuleInfo($m, 'title') . '</a>';
- }
- }
- ?>
- <div class="adminformTitle">
- <div class="card-block">
- <p class="card-text">
- <?php
- foreach ($CLICSHOPPING_StatsProductsNotification_Config->getInputParameters() as $cfg) {
- echo '<div>' . $cfg . '</div>';
- echo '<div class="mt-1"></div>';
- }
- ?>
- </p>
- for ($i = 0, $n = \count($CLICSHOPPING_Order->products); $i < $n; $i++) {
- $number_of_items += $CLICSHOPPING_Order->products[$i]['qty'];
- if (isset($CLICSHOPPING_Order->products[$i]['attributes'])) {
- foreach ($CLICSHOPPING_Order->products[$i]['attributes'] as $option => $value) {
- $Qcheck = $CLICSHOPPING_Db->prepare('select pa.products_id
- from :table_products_attributes pa,
- :table_products_attributes_download pad
- where pa.products_id = :products_id
- and pa.options_values_id = :options_values_id
- $modules = $CLICSHOPPING_Item->getConfigModules();
- $default_module = 'IT';
- foreach ($modules as $m) {
- if ($CLICSHOPPING_Item->getConfigModuleInfo($m, 'is_installed') === true) {
- $default_module = $m;
- break;
- }
- }
- $this->init();
- $current_module = $this->getCurrentModule();
- $m = $this->getConfigModule($current_module);
- foreach ($m->getParameters() as $key) {
- $p = mb_strtolower($key);
- if (isset($_POST[$p])) {
- $this->app->saveCfgParam($key, $_POST[$p]);
- }
- <div class="adminformTitle">
- <div class="card-block">
- <p class="card-text">
- <?php
- foreach ($CLICSHOPPING_Item_Config->getInputParameters() as $cfg) {
- echo '<div>' . $cfg . '</div>';
- echo '<div class="mt-1"></div>';
- }
- ?>
- </p>
- public function install()
- {
- $cut_length = \strlen('CLICSHOPPING_APP_TABLE_' . $this->code . '_');
- foreach ($this->getParameters() as $key) {
- $p = mb_strtolower(substr($key, $cut_length));
- $class = 'ClicShopping\Apps\Shipping\Table\Module\ClicShoppingAdmin\Config\\' . $this->code . '\Params\\' . $p;
- $cfg = new $class($this->code);
- $cut = 'CLICSHOPPING_APP_TABLE_' . $this->code . '_';
- $cut_length = \strlen($cut);
- foreach ($this->getParameters() as $key) {
- $p = mb_strtolower(substr($key, $cut_length));
- $class = 'ClicShopping\Apps\Shipping\Table\Module\ClicShoppingAdmin\Config\\' . $this->code . '\Params\\' . $p;
- $cfg = new $class($this->code);
- for ($i = 0, $n = \count($CLICSHOPPING_Order->products); $i < $n; $i++) {
- $order_total += $CLICSHOPPING_Currencies->calculatePrice($CLICSHOPPING_Order->products[$i]['final_price'], $CLICSHOPPING_Order->products[$i]['tax'], $CLICSHOPPING_Order->products[$i]['qty']);
- if (isset($CLICSHOPPING_Order->products[$i]['attributes'])) {
- foreach ($CLICSHOPPING_Order->products[$i]['attributes'] as $option => $value) {
- $Qcheck = $CLICSHOPPING_Db->prepare('select pa.products_id
- from :table_products_attributes pa,
- :table_products_attributes_download pad
- where pa.products_id = :products_id
- and pa.options_values_id = :options_values_id
- $modules = $CLICSHOPPING_Table->getConfigModules();
- $default_module = 'TA';
- foreach ($modules as $m) {
- if ($CLICSHOPPING_Table->getConfigModuleInfo($m, 'is_installed') === true) {
- $default_module = $m;
- break;
- }
- }
- $this->init();
- $current_module = $this->getCurrentModule();
- $m = $this->getConfigModule($current_module);
- foreach ($m->getParameters() as $key) {
- $p = mb_strtolower($key);
- if (isset($_POST[$p])) {
- $this->app->saveCfgParam($key, $_POST[$p]);
- }
- <div class="adminformTitle">
- <div class="card-block">
- <p class="card-text">
- <?php
- foreach ($CLICSHOPPING_Table_Config->getInputParameters() as $cfg) {
- echo '<div>' . $cfg . '</div>';
- echo '<div class="mt-1"></div>';
- }
- ?>
- </p>
- $modules = $CLICSHOPPING_ActionsRecorder->getConfigModules();
- $default_module = 'AR';
- foreach ($modules as $m) {
- if ($CLICSHOPPING_ActionsRecorder->getConfigModuleInfo($m, 'is_installed') === true) {
- $default_module = $m;
- break;
- }
- }
- $this->init();
- $current_module = $this->getCurrentModule();
- $m = $this->getConfigModule($current_module);
- foreach ($m->getParameters() as $key) {
- $p = mb_strtolower($key);
- if (isset($_POST[$p])) {
- $this->app->saveCfgParam($key, $_POST[$p]);
- }
- </div>
- <div class="mt-1"></div>
- <ul class="nav nav-tabs flex-column flex-sm-row" role="tablist" id="appActionsRecorderToolbar">
- <li class="nav-item">
- <?php
- foreach ($CLICSHOPPING_ActionsRecorder->getConfigModules() as $m) {
- if ($CLICSHOPPING_ActionsRecorder->getConfigModuleInfo($m, 'is_installed') === true) {
- echo '<li class="nav-link active" data-module="' . $m . '"><a href="' . $CLICSHOPPING_ActionsRecorder->link('Configure&module=' . $m) . '">' . $CLICSHOPPING_ActionsRecorder->getConfigModuleInfo($m, 'short_title') . '</a></li>';
- }
- }
- <li class="nav-item dropdown">
- <a class="nav-link dropdown-toggle" data-bs-toggle="dropdown" href="#" role="button" aria-haspopup="true"
- aria-expanded="false">Install</a>
- <div class="dropdown-menu">
- <?php
- foreach ($CLICSHOPPING_ActionsRecorder->getConfigModules() as $m) {
- if ($CLICSHOPPING_ActionsRecorder->getConfigModuleInfo($m, 'is_installed') === false) {
- echo '<a class="dropdown-item" href="' . $CLICSHOPPING_ActionsRecorder->link('Configure&module=' . $m) . '">' . $CLICSHOPPING_ActionsRecorder->getConfigModuleInfo($m, 'title') . '</a>';
- }
- }
- ?>
- </div>
- <div class="adminformTitle">
- <div class="card-block">
- <p class="card-text">
- <?php
- foreach ($CLICSHOPPING_ActionsRecorder_Config->getInputParameters() as $cfg) {
- echo '<div>' . $cfg . '</div>';
- echo '<div class="mt-1"></div>';
- }
- ?>
- </p>
- *
- * @return array An array containing all child category IDs, including both direct and indirect children.
- */
- public static function getChildren(string $category_id, array &$array = []): array
- {
- foreach (static::$data as $parent => $categories) {
- if ($parent == $category_id) {
- foreach ($categories as $id => $info) {
- $array[] = $id;
- self::getChildren($id, $array);
- }
- */
- public static function getChildren(string $category_id, array &$array = []): array
- {
- foreach (static::$data as $parent => $categories) {
- if ($parent == $category_id) {
- foreach ($categories as $id => $info) {
- $array[] = $id;
- self::getChildren($id, $array);
- }
- }
- }
- */
- public function install()
- {
- $cut_length = \strlen('CLICSHOPPING_APP_ADMINISTRATOR_MENU_' . $this->code . '_');
- foreach ($this->getParameters() as $key) {
- $p = mb_strtolower(substr($key, $cut_length));
- $class = 'ClicShopping\Apps\Tools\AdministratorMenu\Module\ClicShoppingAdmin\Config\\' . $this->code . '\Params\\' . $p;
- $cfg = new $class($this->code);
- $cut = 'CLICSHOPPING_APP_ADMINISTRATOR_MENU_' . $this->code . '_';
- $cut_length = \strlen($cut);
- foreach ($this->getParameters() as $key) {
- $p = mb_strtolower(substr($key, $cut_length));
- $class = 'ClicShopping\Apps\Tools\AdministratorMenu\Module\ClicShoppingAdmin\Config\\' . $this->code . '\Params\\' . $p;
- $cfg = new $class($this->code);
- $modules = $CLICSHOPPING_AdministratorMenu->getConfigModules();
- $default_module = 'AM';
- foreach ($modules as $m) {
- if ($CLICSHOPPING_AdministratorMenu->getConfigModuleInfo($m, 'is_installed') === true) {
- $default_module = $m;
- break;
- }
- }
- $this->init();
- $current_module = $this->getCurrentModule();
- $m = $this->getConfigModule($current_module);
- foreach ($m->getParameters() as $key) {
- $p = mb_strtolower($key);
- if (isset($_POST[$p])) {
- $this->app->saveCfgParam($key, $_POST[$p]);
- }
- </div>
- <div class="mt-1"></div>
- <ul class="nav nav-tabs flex-column flex-sm-row" role="tablist" id="appAdministratorMenuToolbar">
- <li class="nav-item">
- <?php
- foreach ($CLICSHOPPING_AdministratorMenu->getConfigModules() as $m) {
- if ($CLICSHOPPING_AdministratorMenu->getConfigModuleInfo($m, 'is_installed') === true) {
- echo '<li class="nav-link active" data-module="' . $m . '"><a href="' . $CLICSHOPPING_AdministratorMenu->link('Configure&module=' . $m) . '">' . $CLICSHOPPING_AdministratorMenu->getConfigModuleInfo($m, 'short_title') . '</a></li>';
- }
- }
- <li class="nav-item dropdown">
- <a class="nav-link dropdown-toggle" data-bs-toggle="dropdown" href="#" role="button" aria-haspopup="true"
- aria-expanded="false">Install</a>
- <div class="dropdown-menu">
- <?php
- foreach ($CLICSHOPPING_AdministratorMenu->getConfigModules() as $m) {
- if ($CLICSHOPPING_AdministratorMenu->getConfigModuleInfo($m, 'is_installed') === false) {
- echo '<a class="dropdown-item" href="' . $CLICSHOPPING_AdministratorMenu->link('Configure&module=' . $m) . '">' . $CLICSHOPPING_AdministratorMenu->getConfigModuleInfo($m, 'title') . '</a>';
- }
- }
- ?>
- <div class="adminformTitle">
- <div class="card-block">
- <p class="card-text">
- <?php
- foreach ($CLICSHOPPING_AdministratorMenu_Config->getInputParameters() as $cfg) {
- echo '<div>' . $cfg . '</div>';
- echo '<div class="mt-1"></div>';
- }
- ?>
- </p>
- $modules = $CLICSHOPPING_Apps->getConfigModules();
- $default_module = 'AP';
- foreach ($modules as $m) {
- if ($CLICSHOPPING_Apps->getConfigModuleInfo($m, 'is_installed') === true) {
- $default_module = $m;
- break;
- }
- }
- $this->init();
- $current_module = $this->getCurrentModule();
- $m = $this->getConfigModule($current_module);
- foreach ($m->getParameters() as $key) {
- $p = mb_strtolower($key);
- if (isset($_POST[$p])) {
- $this->app->saveCfgParam($key, $_POST[$p]);
- }
- </div>
- <div class="mt-1"></div>
- <ul class="nav nav-tabs flex-column flex-sm-row" role="tablist" id="appAppsToolbar">
- <li class="nav-item">
- <?php
- foreach ($CLICSHOPPING_Apps->getConfigModules() as $m) {
- if ($CLICSHOPPING_Apps->getConfigModuleInfo($m, 'is_installed') === true) {
- echo '<li class="nav-link active" data-module="' . $m . '"><a href="' . $CLICSHOPPING_Apps->link('Configure&module=' . $m) . '">' . $CLICSHOPPING_Apps->getConfigModuleInfo($m, 'short_title') . '</a></li>';
- }
- }
- <li class="nav-item dropdown">
- <a class="nav-link dropdown-toggle" data-bs-toggle="dropdown" href="#" role="button" aria-haspopup="true"
- aria-expanded="false">Install</a>
- <div class="dropdown-menu">
- <?php
- foreach ($CLICSHOPPING_Apps->getConfigModules() as $m) {
- if ($CLICSHOPPING_Apps->getConfigModuleInfo($m, 'is_installed') === false) {
- echo '<a class="dropdown-item" href="' . $CLICSHOPPING_Apps->link('Configure&module=' . $m) . '">' . $CLICSHOPPING_Apps->getConfigModuleInfo($m, 'title') . '</a>';
- }
- }
- ?>
- <div class="adminformTitle">
- <div class="card-block">
- <p class="card-text">
- <?php
- foreach ($CLICSHOPPING_Apps_Config->getInputParameters() as $cfg) {
- echo '<div>' . $cfg . '</div>';
- echo '<div class="mt-1"></div>';
- }
- ?>
- </p>
- $modules = $CLICSHOPPING_Backup->getConfigModules();
- $default_module = 'BC';
- foreach ($modules as $m) {
- if ($CLICSHOPPING_Backup->getConfigModuleInfo($m, 'is_installed') === true) {
- $default_module = $m;
- break;
- }
- }
- $this->init();
- $current_module = $this->getCurrentModule();
- $m = $this->getConfigModule($current_module);
- foreach ($m->getParameters() as $key) {
- $p = mb_strtolower($key);
- if (isset($_POST[$p])) {
- $this->app->saveCfgParam($key, $_POST[$p]);
- }
- </div>
- <div class="mt-1"></div>
- <ul class="nav nav-tabs flex-column flex-sm-row" role="tablist" id="appBackupToolbar">
- <li class="nav-item">
- <?php
- foreach ($CLICSHOPPING_Backup->getConfigModules() as $m) {
- if ($CLICSHOPPING_Backup->getConfigModuleInfo($m, 'is_installed') === true) {
- echo '<li class="nav-link active" data-module="' . $m . '"><a href="' . $CLICSHOPPING_Backup->link('Configure&module=' . $m) . '">' . $CLICSHOPPING_Backup->getConfigModuleInfo($m, 'short_title') . '</a></li>';
- }
- }
- <li class="nav-item dropdown">
- <a class="nav-link dropdown-toggle" data-bs-toggle="dropdown" href="#" role="button" aria-haspopup="true"
- aria-expanded="false">Install</a>
- <div class="dropdown-menu">
- <?php
- foreach ($CLICSHOPPING_Backup->getConfigModules() as $m) {
- if ($CLICSHOPPING_Backup->getConfigModuleInfo($m, 'is_installed') === false) {
- echo '<a class="dropdown-item" href="' . $CLICSHOPPING_Backup->link('Configure&module=' . $m) . '">' . $CLICSHOPPING_Backup->getConfigModuleInfo($m, 'title') . '</a>';
- }
- }
- ?>
- <div class="adminformTitle">
- <div class="card-block">
- <p class="card-text">
- <?php
- foreach ($CLICSHOPPING_Backup_Config->getInputParameters() as $cfg) {
- echo '<div>' . $cfg . '</div>';
- echo '<div class="mt-1"></div>';
- }
- ?>
- </p>
- $modules = $CLICSHOPPING_Cronjob->getConfigModules();
- $default_module = 'CJ';
- foreach ($modules as $m) {
- if ($CLICSHOPPING_Cronjob->getConfigModuleInfo($m, 'is_installed') === true) {
- $default_module = $m;
- break;
- }
- }
- $this->init();
- $current_module = $this->getCurrentModule();
- $m = $this->getConfigModule($current_module);
- foreach ($m->getParameters() as $key) {
- $p = mb_strtolower($key);
- if (isset($_POST[$p])) {
- $this->app->saveCfgParam($key, $_POST[$p]);
- }
- </div>
- <div class="mt-1"></div>
- <ul class="nav nav-tabs flex-column flex-sm-row" role="tablist" id="appCronjobToolbar">
- <li class="nav-item">
- <?php
- foreach ($CLICSHOPPING_Cronjob->getConfigModules() as $m) {
- if ($CLICSHOPPING_Cronjob->getConfigModuleInfo($m, 'is_installed') === true) {
- echo '<li class="nav-link active" data-module="' . $m . '"><a href="' . $CLICSHOPPING_Cronjob->link('Configure&module=' . $m) . '">' . $CLICSHOPPING_Cronjob->getConfigModuleInfo($m, 'short_title') . '</a></li>';
- }
- }
- <li class="nav-item dropdown">
- <a class="nav-link dropdown-toggle" data-bs-toggle="dropdown" href="#" role="button" aria-haspopup="true"
- aria-expanded="false">Install</a>
- <div class="dropdown-menu">
- <?php
- foreach ($CLICSHOPPING_Cronjob->getConfigModules() as $m) {
- if ($CLICSHOPPING_Cronjob->getConfigModuleInfo($m, 'is_installed') === false) {
- echo '<a class="dropdown-item" href="' . $CLICSHOPPING_Cronjob->link('Configure&module=' . $m) . '">' . $CLICSHOPPING_Cronjob->getConfigModuleInfo($m, 'title') . '</a>';
- }
- }
- ?>
- </div>
- <div class="adminformTitle">
- <div class="card-block">
- <p class="card-text">
- <?php
- foreach ($CLICSHOPPING_Cronjob_Config->getInputParameters() as $cfg) {
- echo '<div>' . $cfg . '</div>';
- echo '<div class="mt-1"></div>';
- }
- ?>
- </p>
- $modules = $CLICSHOPPING_DataBaseTables->getConfigModules();
- $default_module = 'DT';
- foreach ($modules as $m) {
- if ($CLICSHOPPING_DataBaseTables->getConfigModuleInfo($m, 'is_installed') === true) {
- $default_module = $m;
- break;
- }
- }
- $this->init();
- $current_module = $this->getCurrentModule();
- $m = $this->getConfigModule($current_module);
- foreach ($m->getParameters() as $key) {
- $p = mb_strtolower($key);
- if (isset($_POST[$p])) {
- $this->app->saveCfgParam($key, $_POST[$p]);
- }
- </div>
- <div class="mt-1"></div>
- <ul class="nav nav-tabs flex-column flex-sm-row" role="tablist" id="appDataBaseTablesToolbar">
- <li class="nav-item">
- <?php
- foreach ($CLICSHOPPING_DataBaseTables->getConfigModules() as $m) {
- if ($CLICSHOPPING_DataBaseTables->getConfigModuleInfo($m, 'is_installed') === true) {
- echo '<li class="nav-link active" data-module="' . $m . '"><a href="' . $CLICSHOPPING_DataBaseTables->link('Configure&module=' . $m) . '">' . $CLICSHOPPING_DataBaseTables->getConfigModuleInfo($m, 'short_title') . '</a></li>';
- }
- }
- <li class="nav-item dropdown">
- <a class="nav-link dropdown-toggle" data-bs-toggle="dropdown" href="#" role="button" aria-haspopup="true"
- aria-expanded="false">Install</a>
- <div class="dropdown-menu">
- <?php
- foreach ($CLICSHOPPING_DataBaseTables->getConfigModules() as $m) {
- if ($CLICSHOPPING_DataBaseTables->getConfigModuleInfo($m, 'is_installed') === false) {
- echo '<a class="dropdown-item" href="' . $CLICSHOPPING_DataBaseTables->link('Configure&module=' . $m) . '">' . $CLICSHOPPING_DataBaseTables->getConfigModuleInfo($m, 'title') . '</a>';
- }
- }
- ?>
- <div class="adminformTitle">
- <div class="card-block">
- <p class="card-text">
- <?php
- foreach ($CLICSHOPPING_DataBaseTables_Config->getInputParameters() as $cfg) {
- echo '<div>' . $cfg . '</div>';
- echo '<div class="mt-1"></div>';
- }
- ?>
- </p>
- HTML::checkboxField('masterblaster')
- ];
- $table_data = [];
- foreach ($_POST['id'] as $table) {
- $current_table = null;
- $Qaction = $CLICSHOPPING_DataBaseTables->db->query($action . ' table ' . $table);
- while ($Qaction->fetch()) {
- );
- }
- $table_data = [];
- foreach ($_POST['id'] as $table) {
- $result = 'OK';
- $queries = [];
- $Qcols = $CLICSHOPPING_DataBaseTables->db->query('SHOW FULL COLUMNS FROM ' . $table);
- $modules = $CLICSHOPPING_DefineLanguage->getConfigModules();
- $default_module = 'DL';
- foreach ($modules as $m) {
- if ($CLICSHOPPING_DefineLanguage->getConfigModuleInfo($m, 'is_installed') === true) {
- $default_module = $m;
- break;
- }
- }
- $this->init();
- $current_module = $this->getCurrentModule();
- $m = $this->getConfigModule($current_module);
- foreach ($m->getParameters() as $key) {
- $p = mb_strtolower($key);
- if (isset($_POST[$p])) {
- $this->app->saveCfgParam($key, $_POST[$p]);
- }
- $this->app->db->delete(':table_languages_definitions', $where_array);
- if (\is_array($definition_values)) {
- foreach ($definition_values as $definition_key => $language_definition) {
- foreach ($language_definition as $language_id => $definition_value) {
- $sql_data_array = [
- 'content_group' => $content_group,
- 'definition_key' => $definition_key,
- 'languages_id' => $language_id,
- 'definition_value' => $definition_value
- </div>
- <div class="mt-1"></div>
- <ul class="nav nav-tabs flex-column flex-sm-row" role="tablist" id="appDefineLanguageToolbar">
- <li class="nav-item">
- <?php
- foreach ($CLICSHOPPING_DefineLanguage->getConfigModules() as $m) {
- if ($CLICSHOPPING_DefineLanguage->getConfigModuleInfo($m, 'is_installed') === true) {
- echo '<li class="nav-link active" data-module="' . $m . '"><a href="' . $CLICSHOPPING_DefineLanguage->link('Configure&module=' . $m) . '">' . $CLICSHOPPING_DefineLanguage->getConfigModuleInfo($m, 'short_title') . '</a></li>';
- }
- }
- <li class="nav-item dropdown">
- <a class="nav-link dropdown-toggle" data-bs-toggle="dropdown" href="#" role="button" aria-haspopup="true"
- aria-expanded="false">Install</a>
- <div class="dropdown-menu">
- <?php
- foreach ($CLICSHOPPING_DefineLanguage->getConfigModules() as $m) {
- if ($CLICSHOPPING_DefineLanguage->getConfigModuleInfo($m, 'is_installed') === false) {
- echo '<a class="dropdown-item" href="' . $CLICSHOPPING_DefineLanguage->link('Configure&module=' . $m) . '">' . $CLICSHOPPING_DefineLanguage->getConfigModuleInfo($m, 'title') . '</a>';
- }
- }
- ?>
- <div class="adminformTitle">
- <div class="card-block">
- <p class="card-text">
- <?php
- foreach ($CLICSHOPPING_DefineLanguage_Config->getInputParameters() as $cfg) {
- echo '<div>' . $cfg . '</div>';
- echo '<div class="mt-1"></div>';
- }
- ?>
- </p>
- $modules = $CLICSHOPPING_EditDesign->getConfigModules();
- $default_module = 'ED';
- foreach ($modules as $m) {
- if ($CLICSHOPPING_EditDesign->getConfigModuleInfo($m, 'is_installed') === true) {
- $default_module = $m;
- break;
- }
- }
- $this->init();
- $current_module = $this->getCurrentModule();
- $m = $this->getConfigModule($current_module);
- foreach ($m->getParameters() as $key) {
- $p = mb_strtolower($key);
- if (isset($_POST[$p])) {
- $this->app->saveCfgParam($key, $_POST[$p]);
- }
- </div>
- <div class="mt-1"></div>
- <ul class="nav nav-tabs flex-column flex-sm-row" role="tablist" id="appEditDesignToolbar">
- <li class="nav-item">
- <?php
- foreach ($CLICSHOPPING_EditDesign->getConfigModules() as $m) {
- if ($CLICSHOPPING_EditDesign->getConfigModuleInfo($m, 'is_installed') === true) {
- echo '<li class="nav-link active" data-module="' . $m . '"><a href="' . $CLICSHOPPING_EditDesign->link('Configure&module=' . $m) . '">' . $CLICSHOPPING_EditDesign->getConfigModuleInfo($m, 'short_title') . '</a></li>';
- }
- }
- <li class="nav-item dropdown">
- <a class="nav-link dropdown-toggle" data-bs-toggle="dropdown" href="#" role="button" aria-haspopup="true"
- aria-expanded="false">Install</a>
- <div class="dropdown-menu">
- <?php
- foreach ($CLICSHOPPING_EditDesign->getConfigModules() as $m) {
- if ($CLICSHOPPING_EditDesign->getConfigModuleInfo($m, 'is_installed') === false) {
- echo '<a class="dropdown-item" href="' . $CLICSHOPPING_EditDesign->link('Configure&module=' . $m) . '">' . $CLICSHOPPING_EditDesign->getConfigModuleInfo($m, 'title') . '</a>';
- }
- }
- ?>
- <div class="adminformTitle">
- <div class="card-block">
- <p class="card-text">
- <?php
- foreach ($CLICSHOPPING_EditDesign_Config->getInputParameters() as $cfg) {
- echo '<div>' . $cfg . '</div>';
- echo '<div class="mt-1"></div>';
- }
- ?>
- </p>
- $modules = $CLICSHOPPING_EditLogError->getConfigModules();
- $default_module = 'EL';
- foreach ($modules as $m) {
- if ($CLICSHOPPING_EditLogError->getConfigModuleInfo($m, 'is_installed') === true) {
- $default_module = $m;
- break;
- }
- }
- $this->init();
- $current_module = $this->getCurrentModule();
- $m = $this->getConfigModule($current_module);
- foreach ($m->getParameters() as $key) {
- $p = mb_strtolower($key);
- if (isset($_POST[$p])) {
- $this->app->saveCfgParam($key, $_POST[$p]);
- }
- $CLICSHOPPING_EditLogError = Registry::get('EditLogError');
- $CLICSHOPPING_MessageStack = Registry::get('MessageStack');
- $files = [];
- foreach (glob(ErrorHandler::getDirectory() . 'errors-*.txt') as $f) {
- $key = basename($f, '.txt');
- if (preg_match('/^errors-([0-9]{4})([0-9]{2})([0-9]{2})$/', $key, $matches)) {
- $files[$key] = [
- 'path' => $f,
- $result = true;
- $files = [];
- foreach (glob(ErrorHandler::getDirectory() . 'errors-*.txt') as $f) {
- $key = basename($f, '.txt');
- if (preg_match('/^errors-([0-9]{4})([0-9]{2})([0-9]{2})$/', $key, $matches)) {
- $files[$key] = [
- 'path' => $f,
- $result = true;
- $files = [];
- foreach (glob(ErrorHandler::getDirectory() . 'phpmail_error-*.txt') as $f) {
- $key = basename($f, '.txt');
- if (preg_match('/^phpmail_error-([0-9]{4})([0-9]{2})([0-9]{2})$/', $key, $matches)) {
- $files[$key] = [
- 'path' => $f,
- $CLICSHOPPING_EditLogError = Registry::get('EditLogError');
- $CLICSHOPPING_MessageStack = Registry::get('MessageStack');
- $files = [];
- foreach (glob(ErrorHandler::getDirectory() . 'phpmail_error-*.txt') as $f) {
- $key = basename($f, '.txt');
- if (preg_match('/^phpmail_error-([0-9]{4})([0-9]{2})([0-9]{2})$/', $key, $matches)) {
- $files[$key] = [
- 'path' => $f,
- </div>
- <div class="mt-1"></div>
- <ul class="nav nav-tabs flex-column flex-sm-row" role="tablist" id="appEditLogErrorToolbar">
- <li class="nav-item">
- <?php
- foreach ($CLICSHOPPING_EditLogError->getConfigModules() as $m) {
- if ($CLICSHOPPING_EditLogError->getConfigModuleInfo($m, 'is_installed') === true) {
- echo '<li class="nav-link active" data-module="' . $m . '"><a href="' . $CLICSHOPPING_EditLogError->link('Configure&module=' . $m) . '">' . $CLICSHOPPING_EditLogError->getConfigModuleInfo($m, 'short_title') . '</a></li>';
- }
- }
- <li class="nav-item dropdown">
- <a class="nav-link dropdown-toggle" data-bs-toggle="dropdown" href="#" role="button" aria-haspopup="true"
- aria-expanded="false">Install</a>
- <div class="dropdown-menu">
- <?php
- foreach ($CLICSHOPPING_EditLogError->getConfigModules() as $m) {
- if ($CLICSHOPPING_EditLogError->getConfigModuleInfo($m, 'is_installed') === false) {
- echo '<a class="dropdown-item" href="' . $CLICSHOPPING_EditLogError->link('Configure&module=' . $m) . '">' . $CLICSHOPPING_EditLogError->getConfigModuleInfo($m, 'title') . '</a>';
- }
- }
- ?>
- <div class="adminformTitle">
- <div class="card-block">
- <p class="card-text">
- <?php
- foreach ($CLICSHOPPING_EditLogError_Config->getInputParameters() as $cfg) {
- echo '<div>' . $cfg . '</div>';
- echo '<div class="mt-1"></div>';
- }
- ?>
- </p>
- $CLICSHOPPING_Page = Registry::get('Site')->getPage();
- $files = [];
- foreach (glob(ErrorHandler::getDirectory() . 'errors-*.txt') as $f) {
- $key = basename($f, '.txt');
- if (preg_match('/^errors-([0-9]{4})([0-9]{2})([0-9]{2})$/', $key, $matches)) {
- $files[$key] = [
- 'path' => $f,
- $CLICSHOPPING_Page = Registry::get('Site')->getPage();
- $files = [];
- foreach (glob(ErrorHandler::getDirectory() . 'phpmail_error-*.txt') as $f) {
- $key = basename($f, '.txt');
- if (preg_match('/^phpmail_error-([0-9]{4})([0-9]{2})([0-9]{2})$/', $key, $matches)) {
- $files[$key] = [
- 'path' => $f,
- $CLICSHOPPING_Page = Registry::get('Site')->getPage();
- $files = [];
- foreach (glob(ErrorHandler::getDirectory() . 'errors-*.txt') as $f) {
- $key = basename($f, '.txt');
- if (preg_match('/^errors-([0-9]{4})([0-9]{2})([0-9]{2})$/', $key, $matches)) {
- $files[$key] = [
- 'path' => $f,
- $CLICSHOPPING_Page = Registry::get('Site')->getPage();
- $files = [];
- foreach (glob(ErrorHandler::getDirectory() . 'phpmail_error-*.txt') as $f) {
- $key = basename($f, '.txt');
- if (preg_match('/^phpmail_error-([0-9]{4})([0-9]{2})([0-9]{2})$/', $key, $matches)) {
- $files[$key] = [
- 'path' => $f,
- }
- $this->logger->warning("MCP status: Recommendations found. Starting decision process.");
- // 2. Reasoning and Decision: Iterate over recommendations and take actions
- foreach ($recommendations as $rec) {
- $this->logger->info("Recommendation found: " . $rec['message'] . " (Priority: " . $rec['priority'] . ")");
- $this->takeActionAndLog($rec);
- }
- // 3. Cleanup: Delete old alerts
- */
- private function exportToCsv(array $data): string
- {
- $output = "timestamp,latency,error_rate,requests,uptime\n";
- foreach ($data['history'] as $point) {
- $output .= sprintf("%d,%.2f,%.2f,%d,%.2f\n",
- $point['timestamp'],
- $point['latency'],
- $point['error_rate'],
- $point['requests'],
- ');
- $Qcategories->bindInt(':language_id', (int)$this->lang->getId());
- $Qcategories->execute();
- $categories_array = $Qcategories->fetchAll();
- foreach ($categories_array as $cat) {
- $catLower = strtolower($cat['categories_name'] ?? '');
- if (strpos($translated, $catLower) !== false) {
- $intent['entities']['category'] = $catLower;
- $matchWeight += 0.8;
- $totalWeight += 1;
- $stopwords = [
- 'the', 'and', 'for', 'with', 'your', 'our', 'you', 'are', 'not', 'can', 'how', 'what', 'why', 'which', 'have', 'has', 'had', 'from', 'this', 'that', 'these', 'those', 'a', 'an', 'to', 'of', 'in', 'on', 'by', 'at', 'it', 'is', 'as', 'or', 'be', 'do', 'does', 'did', 'me', 'my', 'we', 'us', 'they', 'them', 'their', 'there', 'here', 'about', 'please', 'show', 'find', 'search', 'look', 'list', 'between', 'under', 'over', 'more', 'than', 'less', 'cheaper', 'above', 'below'
- ];
- $tokens = preg_split('/[^a-z0-9]+/i', $translated, -1, PREG_SPLIT_NO_EMPTY);
- foreach ($tokens as $tok) {
- $tokLower = strtolower($tok);
- if (strlen($tokLower) > 2 && !in_array($tokLower, $stopwords, true)) {
- $keywords[] = $tokLower;
- }
- }
- // Display applied filters and detected intent
- if (!empty($intent['filters'])) {
- $response .= "**Applied Filters:** ";
- $filters = [];
- foreach ($intent['filters'] as $key => $value) {
- $filters[] = "$key: $value";
- }
- $response .= implode(", ", $filters) . "\n";
- }
- if (!empty($intent['type'])) {
- }
- if (!empty($intent['type'])) {
- $response .= "**Detected Intent:** " . $intent['type'] . "\n\n";
- }
- foreach ($results['products'] as $i => $p) {
- $response .= "**" . ($i + 1) . ". " . ($p['products_name'] ?? '') . "**\n";
- $response .= "💰 Price: " . ($p['products_price'] ?? 'N/A') . "€\n";
- $response .= "📦 Stock: " . ($p['products_quantity'] ?? 'N/A') . " units\n";
- $ean = $p['products_ean'] ?? '';
- ]);
- return false;
- }
- foreach ($Qips as $allowedIp) {
- $ip = $allowedIp['ip'];
- if ($ip === '127.0.0.1' || $ip === 'localhost') {
- if (in_array($clientIp, ['127.0.0.1', '::1'])) {
- self::logSecurityEvent('Localhost access granted', [
- public function install()
- {
- $cut_length = \strlen('CLICSHOPPING_APP_MCP_' . $this->code . '_');
- foreach ($this->getParameters() as $key) {
- $p = mb_strtolower(substr($key, $cut_length));
- $class = 'ClicShopping\Apps\Tools\MCP\Module\ClicShoppingAdmin\Config\\' . $this->code . '\Params\\' . $p;
- $cfg = new $class($this->code);
- $cut = 'CLICSHOPPING_APP_MCP_' . $this->code . '_';
- $cut_length = \strlen($cut);
- foreach ($this->getParameters() as $key) {
- $p = mb_strtolower(substr($key, $cut_length));
- $class = 'ClicShopping\Apps\Tools\MCP\Module\ClicShoppingAdmin\Config\\' . $this->code . '\Params\\' . $p;
- $cfg = new $class($this->code);
- $modules = $CLICSHOPPING_MCP->getConfigModules();
- $default_module = 'MC';
- foreach ($modules as $m) {
- if ($CLICSHOPPING_MCP->getConfigModuleInfo($m, 'is_installed') === true) {
- $default_module = $m;
- break;
- }
- }
- $this->init();
- $current_module = $this->getCurrentModule();
- $m = $this->getConfigModule($current_module);
- foreach ($m->getParameters() as $key) {
- $p = mb_strtolower($key);
- if (isset($_POST[$p])) {
- $this->app->saveCfgParam($key, $_POST[$p]);
- }
- </div>
- <div class="mt-1"></div>
- <ul class="nav nav-tabs flex-column flex-sm-row" role="tablist" id="appMCPToolbar">
- <li class="nav-item">
- <?php
- foreach ($CLICSHOPPING_MCP->getConfigModules() as $m) {
- if ($CLICSHOPPING_MCP->getConfigModuleInfo($m, 'is_installed') === true) {
- echo '<li class="nav-link active" data-module="' . $m . '"><a href="' . $CLICSHOPPING_MCP->link('Configure&module=' . $m) . '">' . $CLICSHOPPING_MCP->getConfigModuleInfo($m, 'short_title') . '</a></li>';
- }
- }
- <li class="nav-item dropdown">
- <a class="nav-link dropdown-toggle" data-bs-toggle="dropdown" href="#" role="button" aria-haspopup="true"
- aria-expanded="false">Install</a>
- <div class="dropdown-menu">
- <?php
- foreach ($CLICSHOPPING_MCP->getConfigModules() as $m) {
- if ($CLICSHOPPING_MCP->getConfigModuleInfo($m, 'is_installed') === false) {
- echo '<a class="dropdown-item" href="' . $CLICSHOPPING_MCP->link('Configure&module=' . $m) . '">' . $CLICSHOPPING_MCP->getConfigModuleInfo($m, 'title') . '</a>';
- }
- }
- ?>
- <div class="adminformTitle">
- <div class="card-block">
- <p class="card-text">
- <?php
- foreach ($CLICSHOPPING_MCP_Config->getInputParameters() as $cfg) {
- echo '<div>' . $cfg . '</div>';
- echo '<div class="mt-1"></div>';
- }
- ?>
- </p>
- <td class="text-end"><?php echo $CLICSHOPPING_Mcp->getDef('text_action'); ?></td>
- </tr>
- </thead>
- <tbody>
- <?php
- foreach ($result as $value) {
- ?>
- <tr>
- <td><?php echo $value['ip']; ?></td>
- <td><?php echo $value['comment']; ?></td>
- <td class="text-end">
- <td class="text-end"><?php echo $CLICSHOPPING_Mcp->getDef('text_action'); ?></td>
- </tr>
- </thead>
- <tbody>
- <?php
- foreach ($result_array as $value) {
- ?>
- <tr>
- <td><?php echo $value['session_id']; ?></td>
- <td><?php echo $value['ip']; ?></td>
- <td><?php echo $value['date_added']; ?></td>
- // Display applied filters and detected intent
- if (!empty($intent['filters'])) {
- $response .= "**Applied Filters:** ";
- $filters = [];
- foreach ($intent['filters'] as $key => $value) {
- $filters[] = "$key: $value";
- }
- $response .= implode(", ", $filters) . "\n";
- }
- if (!empty($intent['type'])) {
- }
- if (!empty($intent['type'])) {
- $response .= "**Detected Intent:** " . $intent['type'] . "\n\n";
- }
- foreach ($results['products'] as $i => $p) {
- $response .= "**" . ($i + 1) . ". " . ($p['products_name'] ?? '') . "**\n";
- $response .= "💰 Price: " . ($p['products_price'] ?? 'N/A') . "€\n";
- $response .= "📦 Stock: " . ($p['products_quantity'] ?? 'N/A') . " units\n";
- $ean = $p['products_ean'] ?? '';
- $modules = $CLICSHOPPING_ModulesHooks->getConfigModules();
- $default_module = 'MH';
- foreach ($modules as $m) {
- if ($CLICSHOPPING_ModulesHooks->getConfigModuleInfo($m, 'is_installed') === true) {
- $default_module = $m;
- break;
- }
- }
- $this->init();
- $current_module = $this->getCurrentModule();
- $m = $this->getConfigModule($current_module);
- foreach ($m->getParameters() as $key) {
- $p = mb_strtolower($key);
- if (isset($_POST[$p])) {
- $this->app->saveCfgParam($key, $_POST[$p]);
- }
- </div>
- <div class="mt-1"></div>
- <ul class="nav nav-tabs flex-column flex-sm-row" role="tablist" id="appModulesHooksToolbar">
- <li class="nav-item">
- <?php
- foreach ($CLICSHOPPING_ModulesHooks->getConfigModules() as $m) {
- if ($CLICSHOPPING_ModulesHooks->getConfigModuleInfo($m, 'is_installed') === true) {
- echo '<li class="nav-link active" data-module="' . $m . '"><a href="' . $CLICSHOPPING_ModulesHooks->link('Configure&module=' . $m) . '">' . $CLICSHOPPING_ModulesHooks->getConfigModuleInfo($m, 'short_title') . '</a></li>';
- }
- }
- <li class="nav-item dropdown">
- <a class="nav-link dropdown-toggle" data-bs-toggle="dropdown" href="#" role="button" aria-haspopup="true"
- aria-expanded="false">Install</a>
- <div class="dropdown-menu">
- <?php
- foreach ($CLICSHOPPING_ModulesHooks->getConfigModules() as $m) {
- if ($CLICSHOPPING_ModulesHooks->getConfigModuleInfo($m, 'is_installed') === false) {
- echo '<a class="dropdown-item" href="' . $CLICSHOPPING_ModulesHooks->link('Configure&module=' . $m) . '">' . $CLICSHOPPING_ModulesHooks->getConfigModuleInfo($m, 'title') . '</a>';
- }
- }
- ?>
- <div class="adminformTitle">
- <div class="card-block">
- <p class="card-text">
- <?php
- foreach ($CLICSHOPPING_ModulesHooks_Config->getInputParameters() as $cfg) {
- echo '<div>' . $cfg . '</div>';
- echo '<div class="mt-1"></div>';
- }
- ?>
- </p>
- $modules = $CLICSHOPPING_SecDirPermissions->getConfigModules();
- $default_module = 'SP';
- foreach ($modules as $m) {
- if ($CLICSHOPPING_SecDirPermissions->getConfigModuleInfo($m, 'is_installed') === true) {
- $default_module = $m;
- break;
- }
- }
- $this->init();
- $current_module = $this->getCurrentModule();
- $m = $this->getConfigModule($current_module);
- foreach ($m->getParameters() as $key) {
- $p = mb_strtolower($key);
- if (isset($_POST[$p])) {
- $this->app->saveCfgParam($key, $_POST[$p]);
- }
- </div>
- <div class="mt-1"></div>
- <ul class="nav nav-tabs flex-column flex-sm-row" role="tablist" id="appSecDirPermissionsToolbar">
- <li class="nav-item">
- <?php
- foreach ($CLICSHOPPING_SecDirPermissions->getConfigModules() as $m) {
- if ($CLICSHOPPING_SecDirPermissions->getConfigModuleInfo($m, 'is_installed') === true) {
- echo '<li class="nav-link active" data-module="' . $m . '"><a href="' . $CLICSHOPPING_SecDirPermissions->link('Configure&module=' . $m) . '">' . $CLICSHOPPING_SecDirPermissions->getConfigModuleInfo($m, 'short_title') . '</a></li>';
- }
- }
- <li class="nav-item dropdown">
- <a class="nav-link dropdown-toggle" data-bs-toggle="dropdown" href="#" role="button" aria-haspopup="true"
- aria-expanded="false">Install</a>
- <div class="dropdown-menu">
- <?php
- foreach ($CLICSHOPPING_SecDirPermissions->getConfigModules() as $m) {
- if ($CLICSHOPPING_SecDirPermissions->getConfigModuleInfo($m, 'is_installed') === false) {
- echo '<a class="dropdown-item" href="' . $CLICSHOPPING_SecDirPermissions->link('Configure&module=' . $m) . '">' . $CLICSHOPPING_SecDirPermissions->getConfigModuleInfo($m, 'title') . '</a>';
- }
- }
- ?>
- <div class="adminformTitle">
- <div class="card-block">
- <p class="card-text">
- <?php
- foreach ($CLICSHOPPING_SecDirPermissions_Config->getInputParameters() as $cfg) {
- echo '<div>' . $cfg . '</div>';
- echo '<div class="mt-1"></div>';
- }
- ?>
- </p>
- class="text-center"><?php echo $CLICSHOPPING_SecDirPermissions->getDef('table_heading_recommended'); ?></th>
- </tr>
- <thead>
- <tbody>
- <?php
- foreach (getOpenDir(CLICSHOPPING::getConfig('dir_root', 'Shop')) as $file) {
- if ($file['is_dir']) {
- ?>
- <tr>
- <th
- scope="row"><?php echo substr($file['name'], \strlen(CLICSHOPPING::getConfig('dir_root', 'Shop'))); ?></th>
- ');
- $Qrestriction->execute();
- $restriction = $Qrestriction->fetchAll();
- foreach ($restriction as $value) {
- if (trim($value['0']) === static::getRemoteAddress()) {
- $allowed_ip = true;
- break;
- }
- }
- ');
- $Qrestriction->execute();
- $restriction = $Qrestriction->fetchAll();
- foreach ($restriction as $value) {
- if (trim($value['0']) === static::getRemoteAddress()) {
- $allowed_ip = true;
- break;
- }
- }
- */
- public function install()
- {
- $cut_length = \strlen('CLICSHOPPING_APP_SECURITY_CHECK_' . $this->code . '_');
- foreach ($this->getParameters() as $key) {
- $p = mb_strtolower(substr($key, $cut_length));
- $class = 'ClicShopping\Apps\Tools\SecurityCheck\Module\ClicShoppingAdmin\Config\\' . $this->code . '\Params\\' . $p;
- $cfg = new $class($this->code);
- $cut = 'CLICSHOPPING_APP_SECURITY_CHECK_' . $this->code . '_';
- $cut_length = \strlen($cut);
- foreach ($this->getParameters() as $key) {
- $p = mb_strtolower(substr($key, $cut_length));
- $class = 'ClicShopping\Apps\Tools\SecurityCheck\Module\ClicShoppingAdmin\Config\\' . $this->code . '\Params\\' . $p;
- $cfg = new $class($this->code);
- $modules = $CLICSHOPPING_SecurityCheck->getConfigModules();
- $default_module = 'SC';
- foreach ($modules as $m) {
- if ($CLICSHOPPING_SecurityCheck->getConfigModuleInfo($m, 'is_installed') === true) {
- $default_module = $m;
- break;
- }
- }
- $this->init();
- $current_module = $this->getCurrentModule();
- $m = $this->getConfigModule($current_module);
- foreach ($m->getParameters() as $key) {
- $p = mb_strtolower($key);
- if (isset($_POST[$p])) {
- $this->app->saveCfgParam($key, $_POST[$p]);
- }
- public function execute()
- {
- $page = (isset($_GET['page']) && is_numeric($_GET['page'])) ? (int)$_GET['page'] : 1;
- if (isset($_POST['selected'])) {
- foreach ($_POST['selected'] as $id) {
- $Qselect = $this->app->db->prepare('select ip_restriction
- from :table_ip_restriction
- where id = :id
- ');
- $Qselect->bindInt(':id', $id);
- </div>
- <div class="mt-1"></div>
- <ul class="nav nav-tabs flex-column flex-sm-row" role="tablist" id="appSecurityCheckToolbar">
- <li class="nav-item">
- <?php
- foreach ($CLICSHOPPING_SecurityCheck->getConfigModules() as $m) {
- if ($CLICSHOPPING_SecurityCheck->getConfigModuleInfo($m, 'is_installed') === true) {
- echo '<li class="nav-link active" data-module="' . $m . '"><a href="' . $CLICSHOPPING_SecurityCheck->link('Configure&module=' . $m) . '">' . $CLICSHOPPING_SecurityCheck->getConfigModuleInfo($m, 'short_title') . '</a></li>';
- }
- }
- <li class="nav-item dropdown">
- <a class="nav-link dropdown-toggle" data-bs-toggle="dropdown" href="#" role="button" aria-haspopup="true"
- aria-expanded="false">Install</a>
- <div class="dropdown-menu">
- <?php
- foreach ($CLICSHOPPING_SecurityCheck->getConfigModules() as $m) {
- if ($CLICSHOPPING_SecurityCheck->getConfigModuleInfo($m, 'is_installed') === false) {
- echo '<a class="dropdown-item" href="' . $CLICSHOPPING_SecurityCheck->link('Configure&module=' . $m) . '">' . $CLICSHOPPING_SecurityCheck->getConfigModuleInfo($m, 'title') . '</a>';
- }
- }
- ?>
- <div class="adminformTitle">
- <div class="card-block">
- <p class="card-text">
- <?php
- foreach ($CLICSHOPPING_SecurityCheck_Config->getInputParameters() as $cfg) {
- echo '<div>' . $cfg . '</div>';
- echo '<div class="mt-1"></div>';
- }
- ?>
- </p>
- $modules = $CLICSHOPPING_ServiceAPP->getConfigModules();
- $default_module = 'SV';
- foreach ($modules as $m) {
- if ($CLICSHOPPING_ServiceAPP->getConfigModuleInfo($m, 'is_installed') === true) {
- $default_module = $m;
- break;
- }
- }
- $this->init();
- $current_module = $this->getCurrentModule();
- $m = $this->getConfigModule($current_module);
- foreach ($m->getParameters() as $key) {
- $p = mb_strtolower($key);
- if (isset($_POST[$p])) {
- $this->app->saveCfgParam($key, $_POST[$p]);
- }
- </div>
- <div class="mt-1"></div>
- <ul class="nav nav-tabs flex-column flex-sm-row" role="tablist" id="appServiceAPPToolbar">
- <li class="nav-item">
- <?php
- foreach ($CLICSHOPPING_ServiceAPP->getConfigModules() as $m) {
- if ($CLICSHOPPING_ServiceAPP->getConfigModuleInfo($m, 'is_installed') === true) {
- echo '<li class="nav-link active" data-module="' . $m . '"><a href="' . $CLICSHOPPING_ServiceAPP->link('Configure&module=' . $m) . '">' . $CLICSHOPPING_ServiceAPP->getConfigModuleInfo($m, 'short_title') . '</a></li>';
- }
- }
- <li class="nav-item dropdown">
- <a class="nav-link dropdown-toggle" data-bs-toggle="dropdown" href="#" role="button" aria-haspopup="true"
- aria-expanded="false">Install</a>
- <div class="dropdown-menu">
- <?php
- foreach ($CLICSHOPPING_ServiceAPP->getConfigModules() as $m) {
- if ($CLICSHOPPING_ServiceAPP->getConfigModuleInfo($m, 'is_installed') === false) {
- echo '<a class="dropdown-item" href="' . $CLICSHOPPING_ServiceAPP->link('Configure&module=' . $m) . '">' . $CLICSHOPPING_ServiceAPP->getConfigModuleInfo($m, 'title') . '</a>';
- }
- }
- ?>
- <div class="adminformTitle">
- <div class="card-block">
- <p class="card-text">
- <?php
- foreach ($CLICSHOPPING_ServiceAPP_Config->getInputParameters() as $cfg) {
- echo '<div>' . $cfg . '</div>';
- echo '<div class="mt-1"></div>';
- }
- ?>
- </p>
- }
- sort($result['file']);
- $i = 0;
- foreach ($result['file'] as &$module) {
- $class = substr($module['files_name'], 0, strrpos($module['files_name'], '.'));
- $class1[] = $class;
- if (class_exists($class)) {
- }
- sort($result['file']);
- $i = 0;
- foreach ($result['file'] as &$module) {
- $class = substr($module['files_name'], 0, strrpos($module['files_name'], '.'));
- $class1[] = $class;
- if (class_exists($class)) {
- $modules = $CLICSHOPPING_Upgrade->getConfigModules();
- $default_module = 'UP';
- foreach ($modules as $m) {
- if ($CLICSHOPPING_Upgrade->getConfigModuleInfo($m, 'is_installed') === true) {
- $default_module = $m;
- break;
- }
- }
- $this->init();
- $current_module = $this->getCurrentModule();
- $m = $this->getConfigModule($current_module);
- foreach ($m->getParameters() as $key) {
- $p = mb_strtolower($key);
- if (isset($_POST[$p])) {
- $this->app->saveCfgParam($key, $_POST[$p]);
- }
- </div>
- <div class="mt-1"></div>
- <ul class="nav nav-tabs flex-column flex-sm-row" role="tablist" id="appUpgradeToolbar">
- <li class="nav-item">
- <?php
- foreach ($CLICSHOPPING_Upgrade->getConfigModules() as $m) {
- if ($CLICSHOPPING_Upgrade->getConfigModuleInfo($m, 'is_installed') === true) {
- echo '<li class="nav-link active" data-module="' . $m . '"><a href="' . $CLICSHOPPING_Upgrade->link('Configure&module=' . $m) . '">' . $CLICSHOPPING_Upgrade->getConfigModuleInfo($m, 'short_title') . '</a></li>';
- }
- }
- <li class="nav-item dropdown">
- <a class="nav-link dropdown-toggle" data-bs-toggle="dropdown" href="#" role="button" aria-haspopup="true"
- aria-expanded="false">Install</a>
- <div class="dropdown-menu">
- <?php
- foreach ($CLICSHOPPING_Upgrade->getConfigModules() as $m) {
- if ($CLICSHOPPING_Upgrade->getConfigModuleInfo($m, 'is_installed') === false) {
- echo '<a class="dropdown-item" href="' . $CLICSHOPPING_Upgrade->link('Configure&module=' . $m) . '">' . $CLICSHOPPING_Upgrade->getConfigModuleInfo($m, 'title') . '</a>';
- }
- }
- ?>
- </div>
- <div class="adminformTitle">
- <div class="card-block">
- <p class="card-text">
- <?php
- foreach ($CLICSHOPPING_Upgrade_Config->getInputParameters() as $cfg) {
- echo '<div>' . $cfg . '</div>';
- echo '<div class="mt-1"></div>';
- }
- ?>
- </p>
- <div class="col-md-12">
- <div class="row">
- <?php
- $i = 0;
- foreach ($result_files as $value) {
- $CLICSHOPPING_Marketplace->getFilesInformations($value['file_id']);
- $Qfilesinformation = $CLICSHOPPING_Upgrade->db->prepare('select file_id,
- file_name,
- file_version,
- if (is_file($json_file)) {
- $get_json_file = file_get_contents($json_file, true);
- $result = json_decode($get_json_file);
- foreach ($result as $key => $value) {
- $text = '';
- if (!\is_array($value)) {
- $text = $value;
- }
- $this->total += Tax::addTax($products_price, $products_tax) * $qty;
- $this->weight += ($qty * $products_weight);
- // attributes price
- if (isset($this->contents[$products_id]['attributes'])) {
- foreach ($this->contents[$products_id]['attributes'] as $option => $value) {
- $Qattribute = $this->db->get('products_attributes', [
- 'options_values_price',
- 'price_prefix'
- ], [
- 'products_id' => $prid,
- */
- public function execute()
- {
- if (isset($_GET['DeleteAll'])) {
- if (isset($_POST['selected'])) {
- foreach ($_POST['selected'] as $id) {
- $this->deleteCustomer($id);
- }
- } else {
- $id = HTML::sanitize($_POST['id']);
- $this->deleteCustomer($id);
- $modules = $CLICSHOPPING_WhosOnline->getConfigModules();
- $default_module = 'WO';
- foreach ($modules as $m) {
- if ($CLICSHOPPING_WhosOnline->getConfigModuleInfo($m, 'is_installed') === true) {
- $default_module = $m;
- break;
- }
- }
- $this->init();
- $current_module = $this->getCurrentModule();
- $m = $this->getConfigModule($current_module);
- foreach ($m->getParameters() as $key) {
- $p = mb_strtolower($key);
- if (isset($_POST[$p])) {
- $this->app->saveCfgParam($key, $_POST[$p]);
- }
- </div>
- <div class="mt-1"></div>
- <ul class="nav nav-tabs flex-column flex-sm-row" role="tablist" id="appWhosOnlineToolbar">
- <li class="nav-item">
- <?php
- foreach ($CLICSHOPPING_WhosOnline->getConfigModules() as $m) {
- if ($CLICSHOPPING_WhosOnline->getConfigModuleInfo($m, 'is_installed') === true) {
- echo '<li class="nav-link active" data-module="' . $m . '"><a href="' . $CLICSHOPPING_WhosOnline->link('Configure&module=' . $m) . '">' . $CLICSHOPPING_WhosOnline->getConfigModuleInfo($m, 'short_title') . '</a></li>';
- }
- }
- <li class="nav-item dropdown">
- <a class="nav-link dropdown-toggle" data-bs-toggle="dropdown" href="#" role="button" aria-haspopup="true"
- aria-expanded="false">Install</a>
- <div class="dropdown-menu">
- <?php
- foreach ($CLICSHOPPING_WhosOnline->getConfigModules() as $m) {
- if ($CLICSHOPPING_WhosOnline->getConfigModuleInfo($m, 'is_installed') === false) {
- echo '<a class="dropdown-item" href="' . $CLICSHOPPING_WhosOnline->link('Configure&module=' . $m) . '">' . $CLICSHOPPING_WhosOnline->getConfigModuleInfo($m, 'title') . '</a>';
- }
- }
- ?>
- <div class="adminformTitle">
- <div class="card-block">
- <p class="card-text">
- <?php
- foreach ($CLICSHOPPING_WhosOnline_Config->getInputParameters() as $cfg) {
- echo '<div>' . $cfg . '</div>';
- echo '<div class="mt-1"></div>';
- }
- ?>
- </p>
- if (isset($filter)) {
- $modules = $CLICSHOPPING_Type->filter($modules, $filter);
- }
- foreach ($modules as $key => $data) {
- $tempResults[] = $CLICSHOPPING_Type->getInfo($vendor->getFilename() . '\\' . $app->getFilename(), $key, $data);
- }
- $result = array_merge(...$tempResults);
- }
- if (is_file(self::BASE_DIR . 'Custom/Conf/global.php')) {
- self::loadConfigFile(self::BASE_DIR . 'Custom/Conf/global.php', 'global');
- }
- foreach (glob(self::BASE_DIR . 'Sites/*', GLOB_ONLYDIR) as $s) {
- $s = basename($s);
- if (self::siteExists($s, false) && is_file(self::BASE_DIR . 'Sites/' . $s . '/site_conf.php')) {
- self::loadConfigFile(self::BASE_DIR . 'Sites/' . $s . '/site_conf.php', $s);
- if (is_file(self::BASE_DIR . 'Custom/Sites/' . $s . '/site_conf.php')) {
- public static function clearAll(): void
- {
- static::clearMemoryCache();
- if (FileSystem::isWritable(static::getPath())) {
- foreach (glob(static::getPath() . '*.cache', GLOB_NOSORT) as $c) {
- unlink($c);
- }
- }
- }
- $path = static::getPath();
- $files = glob($path . '*.cache', GLOB_NOSORT);
- $totalSize = 0;
- $totalFiles = count($files);
- foreach ($files as $file) {
- $totalSize += filesize($file);
- }
- return [
- 'total_files' => $totalFiles,
- public static function purgeExpired(int $maxAgeMinutes): int
- {
- $purged = 0;
- $cutoffTime = time() - ($maxAgeMinutes * 60);
- foreach (glob(static::getPath() . '*.cache', GLOB_NOSORT) as $file) {
- if (filemtime($file) < $cutoffTime) {
- unlink($file);
- $purged++;
- }
- }
- 'name' => $table
- ];
- $is_index = $is_foreign = $is_property = false;
- foreach (file($file) as $row) {
- $row = trim($row);
- if (!empty($row)) {
- if ($row == '--') {
- $is_index = true;
- {
- $sql = 'CREATE TABLE ' . (isset($prefix) ? $prefix : '') . $schema['name'] . ' (' . "\n";
- $rows = [];
- foreach ($schema['col'] as $name => $fields) {
- $row = ' ' . $name . ' ' . $fields['type'];
- if (isset($fields['length'])) {
- $row .= '(' . $fields['length'] . ')';
- }
- $rows[] = $row;
- }
- if (isset($schema['index'])) {
- foreach ($schema['index'] as $name => $fields) {
- if ($name == 'primary') {
- $name = 'PRIMARY KEY';
- } else {
- $name = 'KEY ' . $name;
- }
- $rows[] = $row;
- }
- }
- if (isset($schema['foreign'])) {
- foreach ($schema['foreign'] as $name => $fields) {
- $row = ' FOREIGN KEY ' . $name . ' (' . implode(', ', $fields['col']) . ') REFERENCES ' . (isset($prefix) && (!isset($fields['prefix']) || ($fields['prefix'] != 'false')) ? $prefix : '') . $fields['ref_table'] . '(' . implode(', ', $fields['ref_col']) . ')';
- if (isset($fields['on_update'])) {
- $row .= ' ON UPDATE ' . mb_strtoupper($fields['on_update']);
- }
- }
- $result = array();
- foreach (DateTime::getTimeZones() as $zone => $zones_array) {
- foreach ($zones_array as $key => $value) {
- $result[] = [
- 'id' => $key,
- 'text' => $value,
- 'group' => $zone
- ];
- $calls = $this->hooks[$this->site][$group][$hook][$action];
- }
- if (isset($this->watches[$this->site][$group][$hook][$action])) {
- // Filtrer les watches selon le contexte si spécifié
- foreach ($this->watches[$this->site][$group][$hook][$action] as $watchEntry) {
- //Cjekcif it's a structure with context or simple code
- if (is_array($watchEntry) && isset($watchEntry['code'])) {
- // Structure avec contexte
- if ($context !== null) {
- // Si le watch a un contexte défini, il doit correspondre
- }
- }
- $result = [];
- foreach ($calls as $code) {
- $bait = null;
- if (is_string($code)) {
- $class = Apps::getModuleClass($code, 'Hooks');
- $obj = new $class();
- 'User-Agent' => 'ClicShopping-HttpClient/1.0',
- 'Connection' => 'close'
- ];
- if (!empty($parameters['header'])) {
- foreach ($parameters['header'] as $header) {
- if (strpos($header, ':') !== false) {
- [$name, $value] = explode(':', $header, 2);
- $headers[trim($name)] = trim($value);
- }
- }
- public function getDefinitionsFromFile($filename)
- {
- $defs = [];
- if (is_file($filename)) {
- foreach (file($filename) as $line) {
- $line = trim($line);
- if (!empty($line) && (substr($line, 0, 1) != '#')) {
- $delimiter = strpos($line, '=');
- }
- });
- if (isset($_SESSION['MessageStack_Data']) && is_array($_SESSION['MessageStack_Data'])) {
- foreach ($_SESSION['MessageStack_Data'] as $group => $messages) {
- foreach ($messages as $message) {
- $this->add($message['text'], $message['type'], $group);
- }
- }
- unset($_SESSION['MessageStack_Data']);
- }
- Registry::get('Hooks')->watch('Session', 'StartAfter', 'execute', function () {
- if (isset($_SESSION['MessageStack_Data']) && !empty($_SESSION['MessageStack_Data'])) {
- foreach ($_SESSION['MessageStack_Data'] as $group => $messages) {
- foreach ($messages as $message) {
- $this->add($message['text'], $message['type'], $group);
- }
- }
- Registry::get('Hooks')->watch('Session', 'StartAfter', 'execute', function () {
- if (isset($_SESSION['MessageStack_Data']) && !empty($_SESSION['MessageStack_Data'])) {
- foreach ($_SESSION['MessageStack_Data'] as $group => $messages) {
- foreach ($messages as $message) {
- $this->add($message['text'], $message['type'], $group);
- }
- }
- unset($_SESSION['MessageStack_Data']);
- {
- public function getInfo($app, $key, $data)
- {
- $result = [];
- foreach ($data as $code => $class) {
- $class = $this->ns . $app . '\\' . $class;
- if (is_subclass_of($class, 'ClicShopping\OM\Modules\\' . $this->code . 'Interface')) {
- $result[$key . DIRECTORY_SEPARATOR . $app . '\\' . $code] = $class;
- }
- * @param int $maxlifetime The maximum lifetime (in seconds) for session files before they are considered expired.
- * @return bool Returns true upon completion of cleanup.
- */
- public function gc(int $maxlifetime): bool
- {
- foreach (glob($this->path . '/sess_*', GLOB_NOSORT) as $file) {
- if (filemtime($file) + $maxlifetime < time()) {
- unlink($file);
- }
- }
- *
- * @return void
- */
- protected static function _write(\XMLWriter $xml, $data, $parent = null, bool $add_to_parent_element = false)
- {
- foreach ($data as $key => $value) {
- if (is_array($value)) {
- if (is_int($key)) {
- if ($add_to_parent_element === false) {
- $add_to_parent_element = true;
- $name = (!empty($key) ? 'configuration[' . $key . ']' : 'configuration_value');
- $countries_array = [];
- foreach ($CLICSHOPPING_Address->getCountries() as $country) {
- $countries_array[] = ['id' => $country['countries_id'],
- 'text' => $country['countries_name']
- ];
- }
- $name = (!empty($key) ? 'configuration[' . $key . ']' : 'configuration_value');
- $zones_array = [];
- foreach ($CLICSHOPPING_Address->getZones() as $zone) {
- $zones_array[] = ['id' => $zone['id'],
- 'text' => $zone['name'],
- 'group' => $zone['country_name']
- ];
- }
- $select_array = $CLICSHOPPING_Template->getListCatalogFilesNotIncluded();
- sort($select_array);
- $values_array = explode(';', $values);
- $output = '';
- foreach ($select_array as $file) {
- $output .= HTML::checkboxField('ht_datepicker_jquery_file[]', $file, \in_array($file, $values_array)) . ' ' . HTML::outputProtected($file) . '<br />';
- }
- if (!empty($output)) {
- $output = '<br />' . substr($output, 0, -6);
- } elseif (defined('USE_MEMCACHED') && USE_MEMCACHED == 'True' && isset($memcached)) {
- $memcached->set($cache_key, $config_data, $cache_ttl);
- }
- } else {
- // Utiliser les données du cache Memcached
- foreach ($cached_config as $key => $value) {
- define($key, $value);
- }
- }
- }
- $this->_out(sprintf('/MediaBox [0 0 %.2F %.2F]', $this->PageSizes[$n][0], $this->PageSizes[$n][1]));
- $this->_out('/Resources 2 0 R');
- if (isset($this->PageLinks[$n])) {
- //Links
- $annots = '/Annots [';
- foreach ($this->PageLinks[$n] as $pl) {
- $rect = sprintf('%.2F %.2F %.2F %.2F', $pl[0], $pl[1], $pl[0] + $pl[2], $pl[1] - $pl[3]);
- $annots .= '<</Type /Annot /Subtype /Link /Rect [' . $rect . '] /Border [0 0 0] ';
- if (is_string($pl[4]))
- $annots .= '/A <</S /URI /URI ' . $this->_textstring($pl[4]) . '>>>>';
- else {
- * @return void
- */
- public function _putfonts()
- {
- $nf = $this->n;
- foreach ($this->diffs as $diff) {
- //Encodings
- $this->_newobj();
- $this->_out('<</Type /Encoding /BaseEncoding /WinAnsiEncoding /Differences [' . $diff . ']>>');
- $this->_out('endobj');
- }
- //Encodings
- $this->_newobj();
- $this->_out('<</Type /Encoding /BaseEncoding /WinAnsiEncoding /Differences [' . $diff . ']>>');
- $this->_out('endobj');
- }
- foreach ($this->FontFiles as $file => $info) {
- //Font file embedding
- $this->_newobj();
- $this->FontFiles[$file]['n'] = $this->n;
- $font = '';
- $f = fopen($this->_getfontpath() . $file, 'rb', 1);
- $this->_out('/Length2 ' . $info['length2'] . ' /Length3 0');
- $this->_out('>>');
- $this->_putstream($font);
- $this->_out('endobj');
- }
- foreach ($this->fonts as $k => $font) {
- //Font objects
- $this->fonts[$k]['n'] = $this->n + 1;
- $type = $font['type'];
- $name = $font['name'];
- if ($type == 'core') {
- $this->_out('endobj');
- //Descriptor
- $this->_newobj();
- $s = '<</Type /FontDescriptor /FontName /' . $name;
- foreach ($font['desc'] as $k => $v)
- $s .= ' /' . $k . ' ' . $v;
- $file = $font['file'];
- if ($file)
- $s .= ' /FontFile' . ($type == 'Type1' ? '' : '2') . ' ' . $this->FontFiles[$file]['n'] . ' 0 R';
- $this->_out($s . '>>');
- */
- public function _putimages()
- {
- $filter = ($this->compress) ? '/Filter /FlateDecode ' : '';
- //while(list($file,$info)=each($this->images))
- foreach ($this->images as $file => $info) {
- $this->_newobj();
- $this->images[$file]['n'] = $this->n;
- $this->_out('<</Type /XObject');
- $this->_out('/Subtype /Image');
- $this->_out('/Width ' . $info['w']);
- *
- * @return void
- */
- public function _putxobjectdict()
- {
- foreach ($this->images as $image)
- $this->_out('/I' . $image['i'] . ' ' . $image['n'] . ' 0 R');
- }
- /**
- * Adds the resource dictionary to the PDF output.
- */
- public function _putresourcedict()
- {
- $this->_out('/ProcSet [/PDF /Text /ImageB /ImageC /ImageI]');
- $this->_out('/Font <<');
- foreach ($this->fonts as $font)
- $this->_out('/F' . $font['i'] . ' ' . $font['n'] . ' 0 R');
- $this->_out('>>');
- $this->_out('/XObject <<');
- $this->_putxobjectdict();
- $this->_out('>>');
- foreach ($this->modules as $value) {
- if (str_contains($value, '\\')) {
- $obj = Registry::get('Shipping_' . str_replace('\\', '_', $value));
- if ($obj->enabled) {
- foreach ($obj->quotes['methods'] as $method) {
- if (isset($method['cost']) && !is_null($method['cost'])) {
- return [
- 'id' => $obj->quotes['id'] . '_' . $method['id'],
- 'title' => $obj->quotes['module'] . (isset($method['title']) && !empty($method['title']) ? ' (' . $method['title'] . ')' : ''),
- 'info' => $obj->quotes['info'] . (isset($method['info']) && !empty($method['info']) ? ' (' . $method['info'] . ')' : ''),
- } elseif (defined('USE_MEMCACHED') && USE_MEMCACHED == 'True' && isset($memcached)) {
- $memcached->set($cache_key, $config_data, $cache_ttl);
- }
- } else {
- // Utiliser les données du cache
- foreach ($cached_config as $key => $value) {
- define($key, $value);
- }
- }
- // set the session name and save path
- public static function resolveRoute(array $route, array $routes)
- {
- $result = [];
- foreach ($routes as $vendor_app => $paths) {
- foreach ($paths as $path => $page) {
- $path_array = explode('&', $path);
- if (count($path_array) <= count($route)) {
- if ($path_array == array_slice($route, 0, count($path_array))) {
- $result[] = [
- 'customers_basket_date_added' => date('Ymd')
- ]
- );
- if (isset($data['attributes'])) {
- foreach ($data['attributes'] as $option => $value) {
- $this->db->save('customers_basket_attributes', [
- 'customers_id' => (int)$this->customer->getID(),
- 'products_id' => $item_id,
- 'products_options_id' => (int)$option,
- 'products_options_value_id' => (int)$value
- $this->total += $this->tax->addTax($products_price, $products_tax) * $qty;
- }
- // attributes price
- if (isset($data['attributes'])) {
- foreach ($data['attributes'] as $option => $value) {
- $Qattributes = $this->db->prepare('select options_values_price,
- price_prefix
- from :table_products_attributes
- where products_id = :products_id
- and options_id = :options_id
- $this->content_type = false;
- if ((\defined('DOWNLOAD_ENABLED') && DOWNLOAD_ENABLED == 'true') && ($this->getCountContents() > 0)) {
- foreach ($this->contents as $item_id => $data) {
- if (isset($data['attributes'])) {
- foreach ($data['attributes'] as $value) {
- $check = $this->productsAttributes->getCheckProductsDownload($item_id, $value);
- if ($check > 0) {
- switch ($this->content_type) {
- case 'physical':
- if (is_dir($source_folder)) {
- $files_get_output = $this->getSpecificFiles($source_folder, $file_get_output);
- $files_get_call = $this->getSpecificFiles($source_folder, $files_get_call);
- foreach ($files_get_output as $value) {
- if (!empty($value['name'])) {
- echo $CLICSHOPPING_Hooks->output($hook_call, $value['name'], null, 'display');
- }
- }
- if (!empty($value['name'])) {
- echo $CLICSHOPPING_Hooks->output($hook_call, $value['name'], null, 'display');
- }
- }
- foreach ($files_get_call as $value) {
- if (!empty($value['name'])) {
- $CLICSHOPPING_Hooks->call($hook_call, $value['name']);
- }
- }
- }
- //--------------------------------------------------------------
- // level 2
- if (isset($menus['sub_menu'])) {
- $output .= '<ul>';
- foreach ($menus['sub_menu'] as $second_level) {
- $image = '';
- if ($menu_sub[$second_level]['link'] != '') {
- $output .= '<li>' . HTML::link(CLICSHOPPING::link($menu_sub[$second_level]['link']), $image . ' ' . $menu_sub[$second_level]['label']) . '</li>';
- } else {
- //--------------------------------------------------------------
- // level 3
- if (isset($menu_sub[$second_level]['sub_menu'])) {
- $output .= '<ul>';
- foreach ($menu_sub[$second_level]['sub_menu'] as $third_level) {
- $image = '';
- if (!is_null($menu_sub[$third_level]['link'])) {
- $output .= '<li>' . HTML::link(CLICSHOPPING::link($menu_sub[$third_level]['link']), $image . ' ' . $menu_sub[$third_level]['label']) . '</li>';
- } else {
- //--------------------------------------------------------------
- // level 4
- if (isset($menu_sub[$third_level]['sub_menu'])) {
- // $output .= '<ul>';
- foreach ($menu_sub[$third_level]['sub_menu'] as $fourth_level) {
- $image = '';
- if (!is_null($menu_sub[$fourth_level]['link'])) {
- $output .= '<li>' . HTML::link(CLICSHOPPING::link($menu_sub[$fourth_level]['link']), $image . ' ' . $menu_sub[$fourth_level]['label']) . '</li>';
- } else {
- // level 2
- if (isset($menus['sub_menu'])) {
- $output .= '<ul class="flex-column pl-1 nav" id="submenu2sub1" aria-expanded="false">';
- $n = 1;
- foreach ($menus['sub_menu'] as $second_level) {
- ++$n;
- $image = '';
- if ($menu_sub[$second_level]['link'] != '') {
- $output .= '<li class="nav-item p-1 small m-1">' . HTML::link(CLICSHOPPING::link($menu_sub[$second_level]['link']), $image . ' ' . $menu_sub[$second_level]['label'], 'class="nav-link"') . '</li>';
- // level 3
- if (isset($menu_sub[$second_level]['sub_menu'])) {
- $output .= '<ul class="flex-column p-2 nav" id="submenu3sub1" aria-expanded="false"">';
- $z = 1;
- foreach ($menu_sub[$second_level]['sub_menu'] as $third_level) {
- $z = $z + 1;
- $image = '';
- if (!is_null($menu_sub[$third_level]['link'])) {
- $output .= '<li class="nav-item p-1 small m-1">' . HTML::link(CLICSHOPPING::link($menu_sub[$third_level]['link']), $image . ' ' . $menu_sub[$third_level]['label'], ' class="nav-link"') . '</li>';
- // level 4
- if (isset($menu_sub[$third_level]['sub_menu'])) {
- $output .= '<ul class="flex-column pl-2 nav" id="submenu4sub1" aria-expanded="false">';
- $x = 1;
- foreach ($menu_sub[$third_level]['sub_menu'] as $fourth_level) {
- $x = $x + 1;
- $image = '';
- if (!is_null($menu_sub[$fourth_level]['link'])) {
- $output .= '<li class="nav-item p-1 small m-1">' . HTML::link(CLICSHOPPING::link($menu_sub[$fourth_level]['link']), $image . ' ' . $menu_sub[$fourth_level]['label'], 'nav-link') . '</li>';
- $Qapi->execute();
- $categories_data = [];
- foreach ($Qapi->fetchAll() as $row) {
- $categories_data[] = [
- 'categories_id' => $row['categories_id'],
- 'parent_id' => $row['parent_id'],
- 'language_id' => $row['language_id'],
- 'categories_name' => $row['categories_name'],
- $customer_data = [];
- $result = $Qapi->fetchAll();
- foreach ($result as $value) {
- $customer_data[] = [
- 'customers_id' => $value['customers_id'],
- 'customers_company' => $value['customers_company'],
- 'customers_gender' => $value['customers_gender'],
- 'customers_firstname' => Hash::displayDecryptedDataText($value['customers_firstname']),
- $Qapi->execute();
- $manufacturers_data = [];
- foreach ($Qapi->fetchAll() as $row) {
- $manufacturers_data[] = [
- 'manufacturers_id' => $row['manufacturers_id'],
- 'languages_id' => $row['languages_id'],
- 'manufacturers_name' => $row['manufacturers_name'],
- 'date_added' => $row['date_added'],
- $customer_data = [];
- $result = $Qapi->fetchAll();
- foreach ($result as $value) {
- $customer_data[] = [
- 'orders_id' => $value['orders_id'],
- 'customers_id' => $value['customers_id'],
- 'customers_company' => $value['customers_company'],
- 'customers_siret' => $value['customers_siret'],
- $Qapi->execute();
- $product_data = [];
- foreach ($Qapi->fetchAll() as $row) {
- $product_data[] = [
- 'products_id' => $row['products_id'],
- 'language_id' => $row['language_id'],
- 'products_name' => $row['products_name'],
- 'products_description' => $row['products_description'],
- $Qapi->execute();
- $products = [];
- foreach ($Qapi->fetchAll() as $row) {
- $product_id = $row['products_id'];
- $language_code = $CLICSHOPPING_Language->getLanguageCodeById($row['language_id']);
- if (!isset($products[$product_id])) {
- $Qapi->execute();
- $suppliers_data = [];
- foreach ($Qapi->fetchAll() as $row) {
- $suppliers_data[] = [
- 'suppliers_id' => $row['suppliers_id'],
- 'languages_id' => $row['languages_id'],
- 'suppliers_name' => $row['suppliers_name'],
- 'date_added' => $row['date_added'],
- );
- $CLICSHOPPING_Db->setTablePrefix('');
- $CLICSHOPPING_Db->exec('SET FOREIGN_KEY_CHECKS = 0');
- foreach (glob(CLICSHOPPING::BASE_DIR . 'Schema/MariaDb/*.txt') as $f) {
- $schema = $CLICSHOPPING_Db->getSchemaFromFile($f);
- $sql = $CLICSHOPPING_Db->getSqlFromSchema($schema, $_POST['prefix']);
- $CLICSHOPPING_Db->exec('DROP TABLE IF EXISTS ' . $_POST['prefix'] . basename($f, '.txt'));
- throw new \RuntimeException(sprintf('Directory "%s" was not created', $concurrentDirectory));
- }
- }
- }
- foreach (glob(Cache::getPath() . '*.cache') as $c) {
- unlink($c);
- }
- $dir_fs_document_root = $_POST['DIR_FS_DOCUMENT_ROOT'];
- if ((substr($dir_fs_document_root, -1) != '\\') && (substr($dir_fs_document_root, -1) != '/')) {
- if (!isset($_POST['DB_SKIP_IMPORT'])) {
- if (\is_array($modules)) {
- foreach ($modules as $m) {
- $m_installed = [];
- foreach ($m['modules'] as $module) {
- $file = $module['file'];
- $class = $module['class'] ?? basename($file, '.php');
- $code = $module['code'] ?? $file;
- include_once($m['dir'] . $file);
- $mo->install();
- $m_installed[] = $code;
- if (isset($module['params'])) {
- foreach ($module['params'] as $key => $value) {
- $CLICSHOPPING_Db->save('configuration', ['configuration_value' => $value], ['configuration_key' => $key]);
- }
- }
- }
- // Obtenir tous les fichiers CSS de façon sécurisée
- $files_array = get_files_secure($root_dir);
- // Créer les chemins relatifs
- $files_css_replace = [];
- foreach ($files_array as $file) {
- $relative = str_replace($root_dir . DIRECTORY_SEPARATOR, '', $file);
- $relative = str_replace(DIRECTORY_SEPARATOR, '/', $relative);
- $files_css_replace[] = $relative;
- }
- <strong><?php echo CLICSHOPPING::getDef('module_account_customers_history_heading_description'); ?></strong></div>
- <div class="mt-1"></div>
- <div>
- <?php
- if ($ordersTotalRow > 0) {
- foreach ($Qorders->fetchAll() as $order) {
- if (!empty($order['delivery_name'])) {
- $order_type = CLICSHOPPING::getDef('module_account_customers_history_order_shipped_to');
- $order_name = $order['delivery_name'];
- } else {
- $order_type = CLICSHOPPING::getDef('module_account_customers_history_order_billed_to');
- <div class="mt-1"></div>
- <div class="card-text">
- <div class="row">
- <?php
- foreach ($Qstatuse as $value) {
- $customer_support = HistoryInfo::getHistoryInfoSupportCustomer($value['orders_status_support_id']);
- echo '<div class="mt-1"></div>';
- echo '<div class="col-md-12">';
- echo '<span class="col-md-4 text-muted"><i class="bi bi-arrow-right-square-fill" aria-hidden="true"> </i>' . DateTime::toShort($value['date_added']) . '</span> ';
- </div>
- <div class="mt-1"></div>
- <div class="hr"></div>
- <div class="mt-1"></div>
- <?php
- foreach ($historyCheck as $value) {
- ?>
- <div class="col-md-12">
- <div class="card">
- <div class="card-header">
- <div class="row">
- <?php
- /*
- * Status
- */
- foreach ($HistoryCheckInfo as $value) {
- ?>
- <div class="col-md-12">
- <div class="card">
- <div class="card-header">
- <div class="row">
- if (\count($best_sellers) >= (defined('MODULE_BOXES_BEST_SELLERS_MIN_DISPLAY') ? (int)MODULE_BOXES_BEST_SELLERS_MIN_DISPLAY : 0) && \count($best_sellers) <= (defined('MODULE_BOXES_BEST_SELLERS_MAX_DISPLAY') ? (int)MODULE_BOXES_BEST_SELLERS_MAX_DISPLAY : 0)) {
- $position = 1;
- $bestsellers_list = '<ol class="olBestSellers">';
- foreach ($best_sellers as $b) {
- $products_name_url = $CLICSHOPPING_ProductsFunctionTemplate->getProductsUrlRewrited()->getProductNameUrl($b['products_id']);
- $bestsellers_list .= '<li class="BestSellerLi">' . HTML::link($products_name_url, null . ' <span itemprop="itemListElement">' . $b['products_name'] . '</span>') . '</li>';
- $position++;
- }
- // Display a list
- if (defined('MODULE_BOXES_MANUFACTURERS_MANUFACTURERS_LIST') && MODULE_BOXES_MANUFACTURERS_MANUFACTURERS_LIST == 'list') {
- if (\count($manufacturers) <= (defined('MODULE_BOXES_MANUFACTURERS_MAX_MANUFACTURERS_LIST') ? (int)MODULE_BOXES_MANUFACTURERS_MAX_MANUFACTURERS_LIST : 0)) {
- $manufacturers_list = '<ul style="list-style: none; margin: 0; padding: 0;">';
- foreach ($manufacturers as $m) {
- $manufacturer_url = $CLICSHOPPING_Manufacturers->getManufacturerUrlRewrited()->getManufacturerUrl((int)$m['id']);
- $manufacturers_name = ((\strlen($m['name']) > (defined('MODULE_BOXES_MANUFACTURERS_MAX_DISPLAY_MANUFACTURER_NAME_LEN') ? (int)MODULE_BOXES_MANUFACTURERS_MAX_DISPLAY_MANUFACTURER_NAME_LEN : 0)) ? substr($m['name'], 0, defined('MAX_DISPLAY_MANUFACTURER_NAME_LEN') ? MAX_DISPLAY_MANUFACTURER_NAME_LEN : 0) . '..' : $m['name']);
- if (isset($_GET['manufacturersId']) && ($_GET['manufacturersId'] == $m['id'])) {
- $manufacturers_name = '<strong>' . $manufacturers_name . '</strong>';
- $manufacturers_array[] = ['id' => '',
- 'text' => CLICSHOPPING::getDef('pull_down_default')
- ];
- }
- foreach ($manufacturers as $m) {
- $manufacturers_name = ((\strlen($m['name']) > (defined('MODULE_BOXES_MANUFACTURERS_MAX_DISPLAY_MANUFACTURER_NAME_LEN') ? (int)MODULE_BOXES_MANUFACTURERS_MAX_DISPLAY_MANUFACTURER_NAME_LEN : 0)) ? substr($m['name'], 0, defined('MAX_DISPLAY_MANFACTURER_NAME_LEN') ? MAX_DISPLAY_MANFACTURER_NAME_LEN : 0) . '..' : $m['name']);
- $manufacturers_array[] = ['id' => $m['id'],
- 'text' => $manufacturers_name
- ];
- $data .= '</div>';
- } else {
- // load the selected shipping module
- $radio_buttons = 0;
- foreach ($quotes as $n => $quote) {
- if (isset($quote['methods'])) {
- for ($j = 0, $n2 = \count($quote['methods']); $j < $n2; $j++) {
- $data .= '<tr>' . "\n";
- $data .= '<tr>';
- $data .= '<td>';
- $CLICSHOPPING_Template = Registry::get('Template');
- if (isset($this->_data[$parent_id])) {
- $result = '';
- foreach ($this->_data[$parent_id] as $category_id => $category) {
- if ($this->breadcrumb_usage === true) {
- $category_link = $this->buildBreadcrumb($category_id);
- } else {
- $category_link = $category_id;
- }
- echo '</tr>';
- echo '</thead>';
- echo '<tbody>';
- $products = $CLICSHOPPING_ShoppingCart->get_products();
- foreach ($products as $v) {
- echo '<tr>';
- echo '<td class="multiTemplateDefault-cart-qty cart-qty">' . HTML::outputProtected($v['quantity']) . '</td>';
- echo '<td class="multiTemplateDefault-cart-product cart-product">' . HTML::outputProtected($v['name']) . '</td>';
- echo '<td class="multiTemplateDefault-cart-total cart-total text-end">' . $CLICSHOPPING_Currencies->displayPrice($v['final_price'], $CLICSHOPPING_Tax->getTaxRate($v['tax_class_id']), $v['quantity']) . '</td>';
- echo '</tr>';
- echo '</tr>';
- echo '</thead>';
- echo '<tbody>';
- $products = $CLICSHOPPING_ShoppingCart->get_products();
- foreach ($products as $v) {
- echo '<tr>';
- echo '<td class="multiTemplateDefault-cart-qty cart-qty">' . HTML::outputProtected($v['quantity']) . '</td>';
- echo '<td class="multiTemplateDefault-cart-product cart-product">' . HTML::outputProtected($v['name']) . '</td>';
- echo '<td class="multiTemplateDefault-cart-total cart-total text-end">' . $CLICSHOPPING_Currencies->displayPrice($v['final_price'], $CLICSHOPPING_Tax->getTaxRate($v['tax_class_id']), $v['quantity']) . '</td>';
- echo '</tr>';
- <div>
- <?php
- $pi_counter = 0;
- $pi_html = [];
- foreach ($pi as $image) {
- $pi_counter++;
- if (!empty($image['htmlcontent'])) {
- if ($this->getVideo($image['htmlcontent']) === true) {
- $pi_html[] = '<li class="image-additional"><a class="thumbnail popup-youtube" href="' . $image['htmlcontent'] . '"><img src="' . CLICSHOPPING::link($CLICSHOPPING_Template->getDirectoryTemplateImages() . $image['image']) . '" width="' . $thumbail_width . '" height="' . $thumbail_height . '" title="' . $products_name . '" alt="' . $products_name . '" id="piGalImg_' . $pi_counter . '"></a></li>';
- <h4><?php echo CLICSHOPPING::getDef('text_product_options'); ?></h4>
- </div>
- <div>
- <div class="col-md-6">
- <?php
- foreach ($products_options_name_array as $key => $value) {
- ?>
- <div>
- <label class="col-md-3"><?php echo $key . ':'; ?></label>
- <div class="col-md-9">
- <?php echo HTML::selectMenu('id[' . $value . ']', $products_options_array[$value], $selected_attribute[$value]); ?>
- <div class="row">
- <span class="col-md-11 productsReviewInfoContentCustomerTag">
- <?php
- echo CLICSHOPPING::getDef('modules_products_reviews_info_content_text_customers_tag');
- foreach ($customer_tag as $value) {
- echo ' <span class="badge text-bg-primary">' . $value . '</span> ';
- }
- ?>
- </span>
- </div>
- ?>
- <div class="row">
- <span class="col-md-10 productsReviewsListingContentTag">
- <?php
- echo CLICSHOPPING::getDef('modules_products_reviews_listing_content_text_sentiment') . ' ';
- foreach ($customer_tag as $value) {
- echo ' <span class="badge text-bg-primary">' . $value . '</span> ';
- }
- ?>
- </span>
- </div>
Your project should not contain unused code 82
- Read doc
- Productivity
- Minor
More information: https://insight.symfony.com/what-we-analyse/php.unused_local_variable_or_private_member
- {
- private mixed $chat;
- private mixed $db;
- private int $languageId;
- private array $tableSchemaCache = [];
- private array $tableRelationships = [];
- private array $columnSynonyms = [];
- private array $correctionLog = [];
- private array $databaseSchema = [];
- private array $columnIndex = [];
- private mixed $cache;
- * - Unresolved placeholders
- *
- * @param string $sqlQuery SQL query to validate
- * @return array Validation results with 'is_valid' boolean and array of 'issues'
- */
- private function validateSqlSyntax(string $sqlQuery): array {
- $issues = [];
- // Check the balance of parentheses
- $openParenCount = substr_count($sqlQuery, '(');
- $closeParenCount = substr_count($sqlQuery, ')');
- *
- * @param string $sqlQuery Original SQL query containing unknown column
- * @param string $unknownColumn Name of the unknown column to correct
- * @return string Corrected SQL query or original if no correction possible
- */
- private function correctUnknownColumn(string $sqlQuery, string $unknownColumn): string {
- // Check if the column contains a dot (alias.column)
- if (strpos($unknownColumn, '.') !== false) {
- list($alias, $column) = explode('.', $unknownColumn);
- // Look for a similar column in the schema's tables
- */
- private function createEmbeddingGenerator(): EmbeddingGeneratorInterface
- {
- return new class(Gpt::class) implements EmbeddingGeneratorInterface
- {
- private $gptClass;
- /**
- * Constructor for the embedding generator
- *
- * @param string $gptClass Class name of the Gpt instance
- private $db;
- /**
- * @var string The name of the database table for performance history.
- */
- private string $tableName = 'mcp_performance_history';
- /**
- * @var int The number of days to retain historical data.
- */
- private int $retentionDays = 90; // Keep data for 90 days by default
- * Creates the performance history table if it does not exist.
- *
- * This private method is responsible for setting up the necessary database table
- * with appropriate columns and indexes for storing performance metrics.
- */
- private function createTableIfNotExists(): void
- {
- $sql = "CREATE TABLE IF NOT EXISTS clic_mcp_performance_history (
- `id` int(11) NOT NULL AUTO_INCREMENT,
- `timestamp` int(11) NOT NULL,
- `request_rate` decimal(10,2) NOT NULL DEFAULT 0.00,
- * Checks if the user is an administrator based on the context array.
- *
- * @param array $context The context containing user information.
- * @return bool True if the user is an admin, otherwise false.
- */
- private function isAdmin(array $context): bool
- {
- return isset($context['user_type']) && $context['user_type'] === 'admin';
- }
- /**
- *
- * @param string $message The chat message.
- * @param mixed $context The chat context.
- * @return void
- */
- private function redirectToRagBI(string $message, mixed $context): void
- {
- // Build the RAG BI URL
- $ragBiUrl = $this->app->getRagBIEndpoint();
- // Prepare data for RAG BI
- $CLICSHOPPING_Db->delete('administrator_menu', ['app_code' => 'app_catalog_categories']);
- }
- }
- private static function removeDb()
- {
- $CLICSHOPPING_Db = Registry::get('Db');
- $Qcheck = $CLICSHOPPING_Db->query('show tables like ":table_categories"');
- Cache::clear('menu-administrator');
- }
- private static function removeDb()
- {
- $CLICSHOPPING_Db = Registry::get('Db');
- $Qcheck = $CLICSHOPPING_Db->query('show tables like ":table_products"');
- $CLICSHOPPING_Db->delete('administrator_menu', ['app_code' => 'app_communication_newsletter']);
- }
- }
- private static function removeDb()
- {
- $CLICSHOPPING_Db = Registry::get('Db');
- $Qcheck = $CLICSHOPPING_Db->query('show tables like ":table_newsletters"');
- $CLICSHOPPING_Db->delete('administrator_menu', ['app_code' => 'app_configuration_administrators']);
- }
- }
- private static function removeProductsAdministratorsDb()
- {
- $CLICSHOPPING_Db = Registry::get('Db');
- $Qcheck = $CLICSHOPPING_Db->query('show tables like ":table_administrators"');
- use ClicShopping\OM\Registry;
- use ClicShopping\Apps\Configuration\Api\Classes\Shop\ApiSecurity;
- class Login
- {
- private mixed $lang;
- private string $username;
- private string $key;
- private ?string $ip;
- private mixed $authentification;
- /**
- $CLICSHOPPING_Db->delete('administrator_menu', ['app_code' => 'app_configuration_api']);
- }
- }
- private static function removeProductsApiDb()
- {
- $CLICSHOPPING_Db = Registry::get('Db');
- $Qcheck = $CLICSHOPPING_Db->query('show tables like ":table_api"');
- $CLICSHOPPING_Db->delete('administrator_menu', ['app_code' => 'app_configuration_cache']);
- }
- }
- private static function removeProductsCacheDb()
- {
- $CLICSHOPPING_Db = Registry::get('Db');
- $Qcheck = $CLICSHOPPING_Db->query('show tables like ":table_cache"');
- /**
- * Initializes and returns an OpenAIChat instance configured with specified parameters.
- *
- * @return mixed An instance of the OpenAIChat class configured for GPT functionality.
- */
- private static function chat(): mixed // Not use currently
- {
- $api_key = self::getApiKey();
- $parameters = ['model' => CLICSHOPPING_APP_CHATGPT_RA_EMBEDDING_MODEL];
- $config = new OpenAIConfig();
- * Logs an error message if debugging is enabled.
- * This function is used to log errors related to database operations.
- *
- * @param string $message The error message to log
- */
- private static function logError($message)
- {
- if (\defined('CLICSHOPPING_APP_CHATGPT_RA_DEBUG_RAG_MANAGER') && CLICSHOPPING_APP_CHATGPT_RA_OPENAI_EMBEDDING == 'True') {
- error_log($message);
- }
- }
- */
- #[AllowDynamicProperties]
- class LlmGuardrails
- {
- private const CONFIDENCE_THRESHOLD = 0.75;
- private const HALLUCINATION_THRESHOLD = 0.8; // a implementer
- private const MAX_RESPONSE_LENGTH = 8192;
- private const MIN_CONFIDENCE_SCORE = 0.6; // a implementer
- protected static ?SecurityLogger $securityLogger = null;
- // Patterns de détection d'hallucinations e-commerce
- class LlmGuardrails
- {
- private const CONFIDENCE_THRESHOLD = 0.75;
- private const HALLUCINATION_THRESHOLD = 0.8; // a implementer
- private const MAX_RESPONSE_LENGTH = 8192;
- private const MIN_CONFIDENCE_SCORE = 0.6; // a implementer
- protected static ?SecurityLogger $securityLogger = null;
- // Patterns de détection d'hallucinations e-commerce
- //possible to create a specific suspicious pattern
- private const SUSPICIOUS_PATTERNS = [];
- * Returns a float score between 0.0 and 1.0 based on the number of citations.
- *
- * @param string $result The AI-generated response to validate.
- * @return float Attribution score (0.0 to 1.0).
- */
- private static function validateAttribution(string $result): float
- {
- $citations = substr_count($result, 'source:') + substr_count($result, '(voir') + preg_match_all('/\[.*?\]/', $result);
- if ($citations === 0) return 0.0;
- * @param Order $order The order object to populate.
- * @param array $sessionData The session data.
- * @param array $customerData Customer data.
- * @param array $paymentData Payment data.
- */
- private function setupOrderInfo(Order $order, array $sessionData, array $customerData, array $paymentData): void
- {
- $order->info = [
- 'order_status' => 1, // Pending
- 'order_status_invoice' => 1,
- 'currency' => $sessionData['currency'] ?? 'EUR',
- * Sets up order products (deprecated/unused in favor of insertOrderProducts).
- *
- * @param Order $order The order object to populate.
- * @param array $items The array of product items.
- */
- private function setupOrderProducts(Order $order, array $items): void
- {
- $order->products = [];
- foreach ($items as $item) {
- $order->products[] = [
- * Sets up customer information (deprecated/unused).
- *
- * @param Order $order The order object to populate.
- * @param array $customerData Customer data.
- */
- private function setupCustomerInfo(Order $order, array $customerData): void
- {
- $order->customer = [
- 'id' => $customerData['id'] ?? 0,
- 'firstname' => $customerData['firstname'] ?? 'GPT',
- 'lastname' => $customerData['lastname'] ?? 'Customer',
- *
- * @param Order $order The order object to populate.
- * @param array $sessionData The session data.
- * @param array $customerData Customer data.
- */
- private function setupAddresses(Order $order, array $sessionData, array $customerData): void
- {
- $shippingAddress = $sessionData['shipping_address'] ?? [];
- $billingAddress = $sessionData['billing_address'] ?? [];
- $order->billing = [
- * Sets up payment information (deprecated/unused).
- *
- * @param Order $order The order object to populate.
- * @param array $paymentData Payment data.
- */
- private function setupPaymentInfo(Order $order, array $paymentData): void
- {
- $order->info['payment_method'] = $paymentData['method'] ?? 'gpt_payment';
- $order->info['cc_type'] = $paymentData['cc_type'] ?? '';
- $order->info['cc_owner'] = $paymentData['cc_owner'] ?? '';
- $order->info['cc_number'] = $paymentData['cc_number'] ?? '';
- * Sets up order totals (deprecated/unused in favor of insertOrderTotals).
- *
- * @param Order $order The order object to populate.
- * @param array $sessionData The session data.
- */
- private function setupOrderTotals(Order $order, array $sessionData): void
- {
- $order->totals = [
- [
- 'title' => 'Sub-Total:',
- 'text' => number_format($sessionData['subtotal'] ?? 0, 2) . ' EUR',
- $CLICSHOPPING_Db->delete('administrator_menu', ['app_code' => 'app_configuration_chatgpt']);
- }
- }
- private static function removeProductsChatGptDb()
- {
- $CLICSHOPPING_Db = Registry::get('Db');
- $Qcheck = $CLICSHOPPING_Db->query('show tables like ":table_gpt"');
- $CLICSHOPPING_Db->delete('administrator_menu', ['app_code' => 'app_configuration_countries']);
- }
- }
- private static function removeProductsCountriesDb()
- {
- $CLICSHOPPING_Db = Registry::get('Db');
- $Qcheck = $CLICSHOPPING_Db->query('show tables like ":table_countries"');
- $CLICSHOPPING_Db->delete('administrator_menu', ['app_code' => 'app_configuration_currency']);
- }
- }
- private static function removeProductsCurrencyDb()
- {
- $CLICSHOPPING_Db = Registry::get('Db');
- $Qcheck = $CLICSHOPPING_Db->query('show tables like ":table_currencies"');
- $CLICSHOPPING_Db->delete('administrator_menu', ['app_code' => 'app_configuration_modules']);
- }
- }
- private static function removeProductsModulesDb()
- {
- $CLICSHOPPING_Db = Registry::get('Db');
- $Qcheck = $CLICSHOPPING_Db->query('show tables like ":table_currencies"');
- $CLICSHOPPING_Db->delete('administrator_menu', ['app_code' => 'app_configuration_orders_status']);
- }
- }
- private static function removeProductsOrdersStatusDb()
- {
- $CLICSHOPPING_Db = Registry::get('Db');
- $Qcheck = $CLICSHOPPING_Db->query('show tables like ":table_orders_status"');
- $CLICSHOPPING_Db->delete('administrator_menu', ['app_code' => 'app_configuration_orders_status_invoice']);
- }
- }
- private static function removeProductsOrdersStatusInvoiceDb()
- {
- /*
- $CLICSHOPPING_Db = Registry::get('Db');
- $Qcheck = $CLICSHOPPING_Db->query('show tables like ":table_orders_status_invoice"');
- $CLICSHOPPING_Db->delete('administrator_menu', ['app_code' => 'app_configuration_products_length']);
- }
- }
- private static function removeProductsProductsLengthDb()
- {
- $CLICSHOPPING_Db = Registry::get('Db');
- $Qcheck = $CLICSHOPPING_Db->query('show tables like ":table_products_length"');
- $CLICSHOPPING_Db->delete('administrator_menu', ['app_code' => 'app_configuration_products_quantity_unit']);
- }
- }
- private static function removeProductsProductsQuantityUnitDb()
- {
- $CLICSHOPPING_Db = Registry::get('Db');
- $Qcheck = $CLICSHOPPING_Db->query('show tables like ":table_products_quantity_unit"');
- $CLICSHOPPING_Db->delete('administrator_menu', ['app_code' => 'app_configuration_settings']);
- }
- }
- private static function removeProductsSettingsDb()
- {
- $CLICSHOPPING_Db = Registry::get('Db');
- $Qcheck = $CLICSHOPPING_Db->query('show tables like ":table_settings"');
- $CLICSHOPPING_Db->delete('administrator_menu', ['app_code' => 'app_configuration_tax_class']);
- }
- }
- private static function removeProductsTaxClassDb()
- {
- $CLICSHOPPING_Db = Registry::get('Db');
- $Qcheck = $CLICSHOPPING_Db->query('show tables like ":table_tax_class"');
- $CLICSHOPPING_Db->delete('administrator_menu', ['app_code' => 'app_configuration_tax_geo_zones']);
- }
- }
- private static function removeProductsTaxGeoZonesDb()
- {
- $CLICSHOPPING_Db = Registry::get('Db');
- $Qcheck = $CLICSHOPPING_Db->query('show tables like ":table_geo_zones"');
- $CLICSHOPPING_Db->delete('administrator_menu', ['app_code' => 'app_configuration_tax_rates']);
- }
- }
- private static function removeProductsTaxRatesDb()
- {
- $CLICSHOPPING_Db = Registry::get('Db');
- $Qcheck = $CLICSHOPPING_Db->query('show tables like ":table_tax_rates"');
- $CLICSHOPPING_Db->delete('administrator_menu', ['app_code' => 'app_configuration_template_email']);
- }
- }
- private static function removeProductsTemplateEmailDb()
- {
- $CLICSHOPPING_Db = Registry::get('Db');
- $Qcheck = $CLICSHOPPING_Db->query('show tables like ":table_template_email"');
- $CLICSHOPPING_Db->delete('administrator_menu', ['app_code' => 'app_configuration_weight']);
- }
- }
- private static function removeProductsWeightDb()
- {
- $CLICSHOPPING_Db = Registry::get('Db');
- $Qcheck = $CLICSHOPPING_Db->query('show tables like ":table_weight"');
- $CLICSHOPPING_Db->delete('administrator_menu', ['app_code' => 'app_configuration_zones']);
- }
- }
- private static function removeProductsZonesDb()
- {
- $CLICSHOPPING_Db = Registry::get('Db');
- $Qcheck = $CLICSHOPPING_Db->query('show tables like ":table_zones"');
- $CLICSHOPPING_Db->delete('administrator_menu', ['app_code' => 'app_report_stats_customers']);
- }
- }
- private static function removeDataDb()
- {
- $CLICSHOPPING_Db = Registry::get('Db');
- $Qcheck = $CLICSHOPPING_Db->query('show tables like ":table_customers"');
- $CLICSHOPPING_Db->delete('administrator_menu', ['app_code' => 'app_customers_groups']);
- }
- }
- private static function removeDataDb()
- {
- /*
- $CLICSHOPPING_Db = Registry::get('Db');
- $Qcheck = $CLICSHOPPING_Db->query('show tables like ":table_customers_groups"');
- $CLICSHOPPING_Db->delete('administrator_menu', ['app_code' => 'app_customers_reviews']);
- }
- }
- private static function removeDataDb()
- {
- $CLICSHOPPING_Db = Registry::get('Db');
- $Qcheck = $CLICSHOPPING_Db->query('show tables like ":table_reviews"');
- $CLICSHOPPING_Db->delete('administrator_menu', ['app_code' => 'app_marketing_banner_manager']);
- }
- }
- private static function removeProductsBannerManagerDb()
- {
- $CLICSHOPPING_Db = Registry::get('Db');
- $Qcheck = $CLICSHOPPING_Db->query('show tables like ":table_banner_manager"');
- $CLICSHOPPING_Db->delete('administrator_menu', ['app_code' => 'app_marketing_favorites']);
- }
- }
- private static function removeProductsFavoritesDb()
- {
- $CLICSHOPPING_Db = Registry::get('Db');
- $Qcheck = $CLICSHOPPING_Db->query('show tables like ":table_products_favorites"');
- $CLICSHOPPING_Db->delete('administrator_menu', ['app_code' => 'app_marketing_featured']);
- }
- }
- private static function removeProductsFeaturedDb()
- {
- $CLICSHOPPING_Db = Registry::get('Db');
- $Qcheck = $CLICSHOPPING_Db->query('show tables like ":table_products_featured"');
- }
- /**
- *
- */
- private static function removeProductsRecommendationsDb(): void
- {
- $CLICSHOPPING_Db = Registry::get('Db');
- $Qcheck = $CLICSHOPPING_Db->query('show tables like ":table_products_recommendations"');
- $CLICSHOPPING_Db->delete('administrator_menu', ['app_code' => 'app_marketing_seo']);
- }
- }
- private static function removeDb()
- {
- $CLICSHOPPING_Db = Registry::get('Db');
- $Qcheck = $CLICSHOPPING_Db->query('show tables like ":table_seo"');
- $CLICSHOPPING_Db->delete('administrator_menu', ['app_code' => 'app_marketing_specials']);
- }
- }
- private static function removeProductsSpecialsDb()
- {
- $CLICSHOPPING_Db = Registry::get('Db');
- $Qcheck = $CLICSHOPPING_Db->query('show tables like ":table_specials"');
- use ClicShopping\Apps\Configuration\TemplateEmail\Classes\ClicShoppingAdmin\TemplateEmailAdmin;
- class Update extends \ClicShopping\OM\PagesActionsAbstract
- {
- public mixed $app;
- private mixed $lang;
- private mixed $db;
- protected int $oID;
- protected int $status;
- protected int $statusInvoice;
- protected string $comments;
- use ClicShopping\OM\Registry;
- class UpdateCustomerAddress extends \ClicShopping\OM\PagesActionsAbstract
- {
- public mixed $app;
- private mixed $lang;
- private mixed $db;
- public function __construct()
- {
- $this->app = Registry::get('Orders');
- */
- public mixed $app;
- /**
- * @var bool|\lang|null
- */
- private mixed $lang;
- /**
- * @var bool|\db|null
- */
- private mixed $db;
- /**
- */
- private $products_id;
- /**
- * @var int
- */
- private $old_quantity;
- public function __construct()
- {
- $this->app = Registry::get('Orders');
- use ClicShopping\OM\Registry;
- class UpdatePaymentAddress extends \ClicShopping\OM\PagesActionsAbstract
- {
- public mixed $app;
- private mixed $lang;
- private mixed $db;
- public function __construct()
- {
- $this->app = Registry::get('Orders');
- use ClicShopping\OM\Registry;
- class UpdateShippingAddress extends \ClicShopping\OM\PagesActionsAbstract
- {
- public mixed $app;
- private mixed $lang;
- private mixed $db;
- public function __construct()
- {
- $this->app = Registry::get('Orders');
- $CLICSHOPPING_Db->delete('actions_recorder', ['app_code' => 'app_tools_actions_recorder']);
- }
- }
- private static function removeProductsActionsRecorderDb()
- {
- $CLICSHOPPING_Db = Registry::get('Db');
- $Qcheck = $CLICSHOPPING_Db->query('show tables like ":table_actions_recorder"');
- $CLICSHOPPING_Db->delete('administrator_menu', ['app_code' => 'app_configuration_administrator_menu']);
- }
- }
- private static function removeProductsAdministratorMenuDb()
- {
- $CLICSHOPPING_Db = Registry::get('Db');
- $Qcheck = $CLICSHOPPING_Db->query('show tables like ":table_administrator_menu"');
- class Cron
- {
- /**
- * @var mixed|null
- */
- private $Cronjob;
- public function __construct()
- {
- // $this->Cronjob = Registry::get('Cronjob');
- }
- $CLICSHOPPING_Db->delete('cronjob', ['app_code' => 'app_tools_cronjob']);
- }
- }
- private static function removeProductsCronjobDb()
- {
- $CLICSHOPPING_Db = Registry::get('Db');
- $Qcheck = $CLICSHOPPING_Db->query('show tables like ":table_cronjob"');
- $CLICSHOPPING_Db->delete('administrator_menu', ['app_code' => 'app_tools_define_language']);
- }
- }
- private static function removeProductsDefineLanguageDb()
- {
- $CLICSHOPPING_Db = Registry::get('Db');
- $Qcheck = $CLICSHOPPING_Db->query('show tables like ":table_currencies"');
- * This is a helper method to aggregate the statuses. An error in any check results in an overall 'error'.
- *
- * @param array $checks An array of check results, each with a 'status' key.
- * @return string The overall status: 'error', 'warning', or 'healthy'.
- */
- private function determineOverallStatus(array $checks): string
- {
- if (in_array('error', array_column($checks, 'status'))) {
- return 'error';
- }
- if (in_array('warning', array_column($checks, 'status'))) {
- private array $alertThresholds;
- /**
- * @var array The configuration settings for the monitor.
- */
- private array $config;
- /**
- * @var MpcPerformanceHistoryStorage The storage component for historical performance data.
- */
- private MpcPerformanceHistoryStorage $historyStorage;
- private McpHealth $health;
- /**
- * @var LoggerInterface The logger instance for logging analysis results and errors.
- */
- private LoggerInterface $logger;
- /**
- * @var array An array to store the performance history.
- */
- private array $performanceHistory = [];
- private array $config;
- /**
- * @var LoggerInterface The logger instance for logging protocol-related events.
- */
- private LoggerInterface $logger;
- /**
- * @var TransportInterface The transport layer implementation (e.g., SSE, WebSocket).
- */
- private TransportInterface $transport;
- private TransportInterface $transport;
- /**
- * @var int A counter for generating unique request IDs.
- */
- private int $requestId = 0;
- /**
- * @var array A map of pending requests to their resolvers.
- */
- private array $pendingRequests = [];
- private int $requestId = 0;
- /**
- * @var array A map of pending requests to their resolvers.
- */
- private array $pendingRequests = [];
- /**
- * @var array An associative array to store protocol-level statistics.
- */
- private array $stats = [
- ];
- /**
- * @var callable|null A callback function to handle incoming messages asynchronously.
- */
- private $messageCallback = null;
- /**
- * StdioTransport constructor.
- *
- * Initializes the transport with configuration and an optional logger, and validates
- * Contrôle strict des accès aux données sensibles pour les analyses
- */
- #[AllowDynamicProperties]
- class RagBIPermissions
- {
- private mixed $db;
- private mixed $mcpPermissions;
- // Tables autorisées pour RAG-BI (lecture seule)
- private const ALLOWED_TABLES = [
- 'clic_products',
- /**
- * Handle GET request
- */
- private function handleGetRequest(array $statusCheck)
- {
- if ($statusCheck['get'] == 0) {
- return $this->sendErrorResponse('Category fetch not allowed');
- }
- }
- /**
- * Handle PUT request
- */
- private function handlePutRequest(array $statusCheck)
- {
- if (!$statusCheck['update'] == 0) {
- return $this->sendErrorResponse('Update not allowed');
- }
- /**
- * Handle DELETE request
- */
- private function handleDeleteRequest(array $statusCheck)
- {
- if ($statusCheck['delete'] == 0) {
- return $this->sendErrorResponse('Category deletion not allowed');
- }
- }
- /**
- * Handle POST request
- */
- private function handlePostRequest(array $statusCheck)
- {
- if (isset($_GET['update']) && $statusCheck['update'] == 0) {
- return $this->sendErrorResponse('Category update not allowed');
- }
- *
- * @param string $string The column name to be selected from the database.
- * @param string $token The session token used for identifying the API session.
- * @return int The integer value associated with the specified column.
- */
- private function statusCheck(string $string, string $token): int
- {
- $QstatusCheck = $this->db->prepare( // Correction: use $this->db instead of $this->Db
- 'select a.' . $string . '
- from :table_mcp a,
- :table_mcp_session ase
- class WhosOnlineShop
- {
- protected $contents;
- protected $total;
- protected $weight;
- private mixed $db;
- public function __construct()
- {
- }
- */
- class Hash
- {
- private static $key; // 32 caractères pour AES-256
- private static $cipher = 'aes-256-cbc'; // Algorithme de chiffremen
- private const EMAIL_PREFIX = 'ENC::'; // Préfixe pour identifier un email chiffré
- /**
- * Hash constructor.
- * @access public
- *
- *
- * @param int $id The category ID to update
- * @param array $data The category data to update
- * @return array An array containing the result of the update operation
- */
- private static function updateCategory(int $id, array $data): array
- {
- $CLICSHOPPING_Db = Registry::get('Db');
- try {
- $CLICSHOPPING_Db->beginTransaction();
- * Validates the category data before updating.
- *
- * @param array $data The category data to validate
- * @return array An array containing validation result and errors if any
- */
- private static function validateCategoryData(array $data): array
- {
- $errors = [];
- // Validate required fields if provided
- if (isset($data['categories_name']) && empty(trim($data['categories_name']))) {
- *
- * @param int $id The manufacturer ID to update
- * @param array $data The manufacturer data to update
- * @return array An array containing the result of the update operation
- */
- private static function updateManufacturer(int $id, array $data): array
- {
- $CLICSHOPPING_Db = Registry::get('Db');
- try {
- $CLICSHOPPING_Db->beginTransaction();
- * Validates the manufacturer data before updating.
- *
- * @param array $data The manufacturer data to validate
- * @return array An array containing validation result and errors if any
- */
- private static function validateManufacturerData(array $data): array
- {
- $errors = [];
- // Validate required fields if provided
- if (isset($data['manufacturers_name']) && empty(trim($data['manufacturers_name']))) {
- *
- * @param int $id The supplier ID to update
- * @param array $data The supplier data to update
- * @return array An array containing the result of the update operation
- */
- private static function updateSupplier(int $id, array $data): array
- {
- $CLICSHOPPING_Db = Registry::get('Db');
- try {
- $CLICSHOPPING_Db->beginTransaction();
- * Validates the supplier data before updating.
- *
- * @param array $data The supplier data to validate
- * @return array An array containing validation result and errors if any
- */
- private static function validateSupplierData(array $data): array
- {
- $errors = [];
- // Validate email format if provided
- if (isset($data['suppliers_email_address']) && !empty($data['suppliers_email_address'])) {
Your project should not use function in loops conditions
- Read doc
- Reputation
- Minor
More information: https://insight.symfony.com/what-we-analyse/php.for_loop_uses_test_function
- // Évaluer la première clause
- $result = $this->evaluateClause($tokens[0], $variables);
- // Traiter les opérateurs et clauses suivants
- for ($i = 1; $i < count($tokens); $i += 2) {
- if ($i + 1 >= count($tokens)) {
- throw new InvalidArgumentException('Invalid condition structure');
- }
- $operator = strtoupper(trim($tokens[$i]));
Your project should not contain PHP files defining multiple classes 2
- Read doc
- Productivity
- Info
More information: https://insight.symfony.com/what-we-analyse/php.file_contains_more_than_one_class
Your project should always define methods and properties visibility explicitly
- Read doc
- Productivity
- Info
More information: https://insight.symfony.com/what-we-analyse/php.method_or_property_missing_visibility
- public function keys()
- {
- return array('CLICSHOPPING_APP_TABLE_TA_SORT_ORDER');
- }
- function getShippableTotal()
- {
- $CLICSHOPPING_Db = Registry::get('Db');
- $CLICSHOPPING_Currencies = Registry::get('Currencies');
- $CLICSHOPPING_ShoppingCart = Registry::get('ShoppingCart');
- $CLICSHOPPING_Order = Registry::get('Order');
gyakutsuki
gyakutsuki
gyakutsuki