Jump to content

squni

New Members
  • Posts

    12
  • Joined

  • Last visited

squni's Achievements

  1. Karta produktu -> opcje : Widok na karcie produktu:
  2. Żeby mieć do wyboru atrybut (nowy, używany, regenerowany) trzeba wykonać kilka kroków: 1. W panelu administatora -> katalog -> Atrybuty&cechy: a) stworzyć atrybut 'stan' b) w atrybucie 'stan' dodać wartości nowy, używany, regenerowany 2. Katalog -> produkty -> wybieramy produkt a) zaznaczamy opcję 'Produkt z kombinacjami' b) W zakładce 'Kombinacje' wybieramy odpowiedni atrybut i klikamy 'Generate' c) Po utworzeniu wszystkich kombinacji można ustawić resztę wartości dla danej kombinacji Widok na karcie produktu:
  3. Have anyone ever used module SEO Expert by Prestashop and could recommend it? I would like to know if it's worth the price. Maybe there's some better alternative?
  4. Więc tak na szybko: Jeśli dobrze zrozumiałem to chodzi o wbudowany moduł PS do wyświetlania produktów z tej samej kategorii. Moduł pobiera produkty do wyświetlenia na podstawie kategorii, w której aktualnie jesteś czyli jeśli będziesz w "Szafy" to pobierze id kategorii szafy, a jeśli w "Kolekcje' to w id kategorii kolekcje. Tutaj jest kod za to odpowiedzialny: public function getWidgetVariables($hookName = null, array $configuration = array()) { $params = $this->getInformationFromConfiguration($configuration); if ($params) { // Tutaj moduł wywołuje metodę pobierająca produkty. $params to zmienna, która jest ustawiana przez PS do każdego widoku. $products = $this->getCategoryProducts($params['id_product'], $params['id_category']); if (!empty($products)) { return array( 'products' => $products, ); } } return false; } // Metoda pobierająca produkty private function getCategoryProducts($idProduct, $idCategory) { // Utworzenie obiektu Category na podstawie id pobranego z $params $category = new Category($idCategory); $showPrice = (bool) Configuration::get('CATEGORYPRODUCTS_DISPLAY_PRICE'); $searchProvider = new CategoryProductSearchProvider( $this->getTranslator(), $category ); $context = new ProductSearchContext($this->context); $query = new ProductSearchQuery(); $nProducts = (int) Configuration::get('CATEGORYPRODUCTS_DISPLAY_PRODUCTS') + 1; // +1 If current product is found $query ->setResultsPerPage($nProducts) ->setPage(1) ; $query->setSortOrder(SortOrder::random()); $result = $searchProvider->runQuery( $context, $query ); $assembler = new ProductAssembler($this->context); $presenterFactory = new ProductPresenterFactory($this->context); $presentationSettings = $presenterFactory->getPresentationSettings(); $presenter = new ProductListingPresenter( new ImageRetriever( $this->context->link ), $this->context->link, new PriceFormatter(), new ProductColorsRetriever(), $this->context->getTranslator() ); $productsForTemplate = array(); $presentationSettings->showPrices = $showPrice; $products = $result->getProducts(); foreach ($products as $rawProduct) { // Not duplicate current product if ($rawProduct['id_product'] !== $idProduct && count($productsForTemplate) < (int) Configuration::get('CATEGORYPRODUCTS_DISPLAY_PRODUCTS')) { $productsForTemplate[] = $presenter->present( $presentationSettings, $assembler->assembleProduct($rawProduct), $this->context->language ); } } return $productsForTemplate; } Tak, więc wydaje mi się, że jeśli chciałbyś pobierać zawsze tylko z kategorii głównej to trzeba lekko zmienić kod. Zamiast tworzyć : $category = new Category($idCategory); To trzeba by spróbować sprawdzić czy w obiekcie Product atrybut id_category_default nie jest przypadkiem kategorią główną. Czyli zmienić kod na coś takiego: $product = new Product($id_product); $category = new Category($product->id_category_default); Nie dam sobie ręki uciąć ale może zadziała.
  5. Cześć, czy ktoś korzystał z modułu SEO Expert by Prestahsop i może polecić? Cena jest niemała i chciałbym się upewnić, że moduł jest jej wart. Może jest jakiś inny, który będzie lepszy?
  6. As endriu107 wrote. In order to have access to your DB data that you fetched with getCaedData($id_customer), you need to pass it to the template using: $this->context->smarty->assign('caed', --return from function--); Or if you'd like to assign multiple variables: $this->context->smarty->assign(array('variable_name' => $variable, 'variable_name_2' => $variable_2));
  7. This is almost correct BUT instead of {$modules_dir} you want to use "{$base_url}/modules/aniinstagram/views/img/ig_icon.png"
  8. try using $var = $_POST['input_name']; instead of $var = $_REQUEST['input_name'];
  9. To get this value you need to use: $_POST['zone_remarque']
  10. Hi, I have quite a problem here. So I'm developing a module and one of it's features is to create a project which contains a file (image). While creating it and saving this image is working fine, when you try to edit it then the problem appears. If you edit some fields and leave the file input untouched Prestashop overrides file with empty field. I already checked that inside fields_value the files name is correct and I can't find the moment where it's getting overridden. Also tried using HelperForm() and setting $this->tpl_vars or $this->object->file. Nothing worked, everytime form gets submitted with file input empty unless you submit anothe file. Here is form rendering function: public function renderForm() { $this->fields_form = array( 'legend' => array( 'title' => $this->trans('New project', array(), 'Admin.Catalog.Feature'), ), 'input' => array( array( 'type' => 'text', 'label' => $this->trans('Name', array(), 'Admin.Global'), 'name' => 'name', 'required' => true, 'col' => 3, ), array( 'type' => 'select', 'options' => array( 'query' => Project::getGroups(), 'id' => 'id_group', 'name' => 'name', ), 'label' => $this->trans('Group', array(), 'Admin.Global'), 'name' => 'id_group', 'required' => true, 'col' => 2, ), array( 'type' => 'select', 'options' => array( 'query' => Project::getProducts((int)Context::getContext()->language->id), 'id' => 'id_product', 'name' => 'name', ), 'label' => $this->trans('Product', array(), 'Admin.Global'), 'name' => 'id_product', 'class' => 'js-example-basic-single', 'required' => true, 'col' => 3, ), array( 'type' => 'text', 'label' => $this->trans('Height', array(), 'Admin.Global'), 'name' => 'height', 'required' => true, 'col' => 1, ), array( 'type' => 'text', 'label' => $this->trans('Width', array(), 'Admin.Global'), 'name' => 'width', 'required' => true, 'col' => 1, ), array( 'type' => 'file', 'label' => $this->trans('File', array(), 'Admin.Global'), 'name' => 'file', 'required' => false, 'col' => 6, ), array( 'type' => 'text', 'label' => $this->trans('CSS Class', array(), 'Admin.Global'), 'name' => 'class_name', 'required' => false, 'col' => 3, ), ), 'submit' => array( 'title' => $this->trans('Save', array(), 'Admin.Actions'), 'name' => 'save_form', ), ); return parent::renderForm(); } Here is file uploading function: public function postProcess() { parent::postProcess(); if (Tools::getIsset('save_form')) { // Uploads project image file if ($_FILES['file']['name'] != '') { $project = new Project(Project::getNewestProjectId()); $project->file = $project->uploadFile($_FILES['file'], $project->id_project); $project->save(); } $this->redirect_after = Context::getContext()->link-> getAdminLink('AdminPersonalizationDesign') . '&id_project=' .Project::getCurrentProjectId(); } } } public function uploadFile($file, $id_project) { $fileName = explode(".", $file["name"]); $ext = end($fileName); $name = uniqid(reset($fileName)).".".$ext; $id_folder = (int)ceil($id_project/1000); if (!file_exists(_PS_IMG_DIR_ ."pp/projects/".$id_folder)) { mkdir(_PS_IMG_DIR_ ."pp/projects/".$id_folder); } $location = _PS_IMG_DIR_ ."pp/projects/".$id_folder."/". $name; move_uploaded_file($file["tmp_name"], $location); return $name; }
  11. Hi, after installation the bar is not showing and there is an error in google chrome console: PS v. 1.7.7.5 edit: resolved problem. Sorry for inconvenience.
×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More