Jump to content

neoweiter

Members
  • Posts

    64
  • Joined

  • Last visited

Profile Information

  • Activity
    Agency

Recent Profile Visitors

750 profile views

neoweiter's Achievements

  1. I had the same problem but the htaccess did not changed anything for me. The solution for me was to set display_error to 'off' in config/defines.inc.php
  2. Bonjour, Je mets à jour les données de la table ps_specific_price via le webservice, ce qui fonctionne très bien, sauf que j'ai ajouté un champ custom dans cette table : "id_promo" (INT) Lorsque je fais un update des données, tout passe bien, sauf le champ "id_promo", alors qu'il est bien présent dans mon XML : <?xml version="1.0" encoding="UTF-8"?> <prestashop xmlns:xlink="http://www.w3.org/1999/xlink"> <specific_price> <id_promo><![CDATA[2]]></id_promo> <id>3362240</id> <id_customer>0</id_customer> <id_product>5658</id_product> <id_group>0</id_group> <from_quantity>1</from_quantity> <price>-1</price> <id_shop>1</id_shop> <id_cart>0</id_cart> <id_currency>0</id_currency> <id_country>0</id_country> <reduction>713</reduction> <reduction_tax>0</reduction_tax> <reduction_type>amount</reduction_type> <from>2022-06-23 00:00:00</from> <to>0</to> </specific_price> </prestashop> J'ai surclassé la class SpecificPrice.php, en ajoutant mon champ id_promo dans les définitions : class SpecificPrice extends SpecificPriceCore { public $id_promo; /** * @see ObjectModel::$definition */ public static $definition = [ 'table' => 'specific_price', 'primary' => 'id_specific_price', 'fields' => [ 'id_shop_group' => ['type' => self::TYPE_INT, 'validate' => 'isUnsignedId'], 'id_shop' => ['type' => self::TYPE_INT, 'validate' => 'isUnsignedId', 'required' => true], 'id_promo' => ['type' => self::TYPE_INT, 'validate' => 'isUnsignedId', 'required' => true], 'id_cart' => ['type' => self::TYPE_INT, 'validate' => 'isUnsignedId', 'required' => true], 'id_product' => ['type' => self::TYPE_INT, 'validate' => 'isUnsignedId', 'required' => true], 'id_product_attribute' => ['type' => self::TYPE_INT, 'validate' => 'isUnsignedId'], 'id_currency' => ['type' => self::TYPE_INT, 'validate' => 'isUnsignedId', 'required' => true], 'id_specific_price_rule' => ['type' => self::TYPE_INT, 'validate' => 'isUnsignedId'], 'id_country' => ['type' => self::TYPE_INT, 'validate' => 'isUnsignedId', 'required' => true], 'id_group' => ['type' => self::TYPE_INT, 'validate' => 'isUnsignedId', 'required' => true], 'id_customer' => ['type' => self::TYPE_INT, 'validate' => 'isUnsignedId', 'required' => true], 'price' => ['type' => self::TYPE_FLOAT, 'validate' => 'isNegativePrice', 'required' => true], 'from_quantity' => ['type' => self::TYPE_INT, 'validate' => 'isUnsignedInt', 'required' => true], 'reduction' => ['type' => self::TYPE_FLOAT, 'validate' => 'isPrice', 'required' => true], 'reduction_tax' => ['type' => self::TYPE_INT, 'validate' => 'isBool', 'required' => true], 'reduction_type' => ['type' => self::TYPE_STRING, 'validate' => 'isReductionType', 'required' => true], 'from' => ['type' => self::TYPE_DATE, 'validate' => 'isDateFormat', 'required' => true], 'to' => ['type' => self::TYPE_DATE, 'validate' => 'isDateFormat', 'required' => true], ], ]; Mais il semble toujours ignorer ce champ. Pouvez-vous m'aider ? merci
  3. Update : je remarque qu'en commentant plus bas dans mon code, la fonction postProcess(), tout refonctionne. Je sais où chercher maintenant
  4. Bonjour à tous, J'ai un soucis avec la liste admin de mon module : les filtres, le tris, et le bouton statut ne marchent pas. La page se recharge mais rien ne change. Voici le code qui crée mon tableau : require_once _PS_MODULE_DIR_ . '/filesmanager/classes/FilesManager.php'; class FilesManagerController extends ModuleAdminController { public function __construct() { $this->bootstrap = true; $this->table = FilesManager::$definition['table']; $this->identifier = FilesManager::$definition['primary']; $this->className = FilesManager::class; $this->lang = false; parent::__construct(); $this->fields_list = [ 'id' => [ //nom du champ sql 'title' => $this->module->l('ID'), 'align' => 'center', 'class' => 'fixed-width-xs' ], 'filename' => [ 'title' => $this->module->l('Fichier'), 'align' => 'left', ], 'date_add' => [ 'title' => $this->l('Date'), 'width' => 100, 'type' => 'date', 'orderby' => true, 'filter' => true, 'search' => true, ], 'active' => [ 'title' => $this->l('Statut'), 'width' => '70', 'align' => 'center', 'active' => 'status', ], ]; $this->addRowAction('edit'); $this->addRowAction('delete'); } } J'ai vérifier les liens, sur les différents éléments, et ils ont pourtant l'air de contenir les bons paramètres : par exemple pour le statut Actif / Inactif : .../index.php?controller=FilesManager&id=1&statusfilesmanager&token=1f2b... Lorsque je clique dessus, la page se recharge, mais l'élément reste actif. Pareil pour les filtres, rien ne change C'est d'autant plus étrange que j'ai un autre module, fait de la même manière, et là tout fonctionne normalement. Mon debug est actif, mais je ne vois aucune erreur Une idée les pros ? 😊 Merci
  5. Pour info j'ai trouvé la réponse : il s'agit bien de deux appels, la première fois pour la query du listing des produits, et la deuxième fois pour la query du compte des produits (pager)
  6. Wow that was exactly it ! Indeed it first calls the function for the listing query, and a second time for the count query. Thanks a lot
  7. Hello everytone, After noticing some slowness in the price drop page, I noticed that the getPricesDrop() function fires twice ! I added a echo 'test', that is beeing printed twice on my page. I tried this on multiple functions from classes/Product.php, and It always seems to fire twice. Is this normal ? Is this a bug in Prestashop's core ? Thanks
  8. Bonjour, En faisant des rechercher sur des lenteurs, notamment sur la page des promotions, je me rends compte que classes/Product.php est exécutée deux fois ?? Est-ce normal ? Est-ce un bug dans le core de presta ? Avez-vous une idée de comment empêcher cela ? Voir le echo 'test' qui s'imprime deux fois sur ma page! J'ai essayé cela dans plusieurs autres fonctions de cette Class Product.php, et le résultat est le même
  9. J'ai finalement trouvé la solution. Ma procédure incluait des création de tables temporaires. J'ai sorti ces commandes de ma procédures, pour les créer avant d'appeler ma procédure $results = $db->executeS($sql);
  10. Le soucis c'est que avec une simple query, le résultat est beaucoup trop long (+- 10 secondes), du faite qu'on travaille dans des tables avec énormément de données (pas loin du million de records)... D'où l'utilisation d'une Stored Procedure
  11. Merci pour votre réponse : 1 - Ca ne marche pas avec un SELECT. Ca donne une erreur : "FUNCTION Select_Promos does not exist" 2 - Je vais les rajouter merci
  12. Bonjour, J'ai créé une STORED PROCEDURE dans mon PhpMyAdmin, qui fonctionne lorsque je l'exécute, mais je n'arrive pas à récupérer les données depuis ma fonction PHP : function GetPromotionProducts(){ $custid = Context::getContext()->customer->id; $id_promo = ($_GET['id_promo']) ? $_GET['id_promo'] : 1; $db = Db::getInstance(_PS_USE_SQL_SLAVE_); $sql = 'CALL `Select_Promos`('.$custid.', '.$id_promo.')'; $results = $db->executeS($sql); var_dump($results); return $results; } Le dump me retourne bool(true) 🤔 au lieu d'un array avec toutes mes données. Si je fais volontairement une faute de frappe dans le nom de la PROC, il me retourne false. Donc j'ai vraiment l'impression qu'il appelle convenablement la procédure, mais sans me retourner les données. Quelqu'un peut m'aider ?
  13. Merci pour votre réponse. Je n'ai peut-être pas été spécifique dans mon post, mais je cherche où modifier la requete sql, pas comment J'ai déjà épluché tous les fichiers dans les Classes et les Controllers, mais je n'ai rien trouvé Merci
  14. Bonjour, Je cherche à modifier la query sql qui affiche la liste des produits dans les catégories, afin de limiter les produits retournés, mais je n'arrive pas à identifier la fonction où je peux modifier cela. Pour le moment je met une condition IF dans la loop productlist.tpl, mais le résultat n'est évidement pas bon du tout, car d'une page à l'autre, le nombre de produits affichés n'est pas le même, et le pager ne tient pas compte des produits masqués. Il faut donc que j'arriver à attaquer la query de base qui retourne directement les bons produits. J'ai vu que la fonction getProductSearchQuery() dans le fichier /controllers/front/listing/CategoryController.php est responsable d'afficher les produits, mais il me semble qu'il n'est pas possible d'y ajouter une condition WHERE. protected function getProductSearchQuery() { $query = new ProductSearchQuery(); $query ->setIdCategory($this->category->id) ->setSortOrder(new SortOrder('product', Tools::getProductsOrder('by'), Tools::getProductsOrder('way'))); return $query; } Où puis-je modifier le requète SQL qui affiche les produits dans les pages catégories ? Merci d'avance pour votre aide
  15. Does anywone knows how to add a custom WHERE clause to getProductSearchQuery();
×
×
  • Create New...