Jump to content

webxtor

Members
  • Posts

    12
  • Joined

  • Last visited

Posts posted by webxtor

  1. Спасибо большое!! 

    Пришел сюда именно с этой проблемой. Было странно, нужели никто этого не заметил. Вот человек недавно описал подобную проблему, но там сошлись на том, что виной его тема.

    Я же обнаружил это на свеже установленной.

    Еще раз благодарю, что разобрались и поделились со всеми! 

  2. I have the very similar problem on 1.7.4.1 and 1.7.4.2 installations.

    Steps to reproduce:

    1. Install the latest 1.7.4.2 (1) version with classic theme.

    2. Go to Accessories category: http://yoursite.com/6-accessories

    3. Select White and Black colors: http://yoursite.com/6-accessories?q=Color-White-Black

    4. Now select brand  Graphic Corner and you will get no results!

    I have exactly the same issue with my custom products and having more than 2 colors. Whenever I choose at least 2 colors other filters are not updated in accordance with colors selection this way allowing me to get into no results situation.

    There are also other problems. Say I choose a brand. Then brand filter disappears this way I cannot select more than one brand at a time! Same situation for the price filter, but not paper type or color!

    Another. On the same accessories page I choose White color and all other filters disappear. I click on Black and other filters appear. Same 1-3 steps as described above but another question: why other filters appear after selecting the second color? All the products in these categories have both black and white color.

    Please advise on this or are there any other alternatives for the filter.

    Thanks

  3. Hello. Using PS 1.5.4.1 this code made able to override the members list trigger function in AdminCustomersController.php:

    	public function init()
    	{
    		$this->fields_list['active'] = array(
    				'title' => $this->l('Enabled'),
    				'width' => 70,
    				'align' => 'center',
    				'callback' => 'printStatusIcon',//'active' => 'status',
    				'type' => 'bool',
    				'orderby' => false,
    				'filter_key' => 'a!active',
    			);
    		parent::init();
    	}
    

    A few other notes.

     

    In contains a parse error in this piece:

                 Mail::Send(
                    $this->context->language->id,
                    'account_activated',
                    Mail::l('Welcome!'),
                    array(
                        '{firstname}' => $customer->firstname,
                        '{lastname}' => $customer->lastname,
                        '{email}' => $customer->email,
                        '{shopname}' => $this->context->shop->name,),
                    $customer->email,
                    $customer->firstname.' '.$customer->lastname,
                );
    

    Need to remove the last comma.

    Also the subject here (Welcome!) differs from the one in customerupdatenotification.php

     

    Other than that, thanks for your contribution!

  4. Strange, but the import format for the images links in this script is already the new, multi-level one.

    I had to create my own bash shell script for the images to show up.

    Note, this script creates the additional directories (and images into them) in 1.5 after you have copied the images from 1.4 and cd'ed to the images dir.

     

    Thanks to: http://stackoverflow...533086#11533086 and http://stackoverflow...1533099/2090822

     

    for f in *jpg; do
     if [[ $f =~ [0-9]+-([0-9]+)\..* ]]; then
    id=${BASH_REMATCH[1]};
    dir=`echo $id | sed 's/\([0-9]\)/\/\1/g'`;
    mkdir -p ".$dir";
    cp -p $f ".$dir/$id.jpg";
     fi
    done
    

     

    Note, you may also wish to remove the source images or/and do some further actions.

    Also thanks to this post for recursive directories creation: http://stackoverflow...1252096/2090822

  5. Hello.

    At first, thanks for your contribution!

    This was exactly what I needed for my client.

    But it did not work "out of the box" for me..

    At first, why did you not create override classes and controllers? You could put there only the actual functions being changed and do not touch the actual "core" files!

    I am attaching the archive, which contains only override files.
    It works for me under 1.4.7.0 version.

    Second, CategoryController did not work at all for me. There were 3 issues with it.

    Here is your code:
     

    public function productListAssign()
    
    {
    
    $hookExecuted = false;
    
    Module::hookExec('productListAssign', array('nbProducts' => &$this->nbProducts, 'catProducts' => &$this->cat_products, 'hookExecuted' => &$hookExecuted));
    
    if(!$hookExecuted) // The hook was not executed, standard working
    
    {
    
    self::$smarty->assign('categoryNameComplement', '');
    
    $this->nbProducts = $this->category->getProducts(NULL, NULL, NULL, $this->orderBy, $this->orderWay, true);
    
    $this->manufacturers = $this->category->getProducts(NULL, NULL, NULL, $this->orderBy, $this->orderWay, false, false, false, 1, true, true);
    
    $this->pagination((int)$this->nbProducts); // Pagination must be call after "getProducts"
    
    $this->cat_products = $this->category->getProducts((int)(self::$cookie->id_lang), (int)($this->p), (int)($this->n), $this->orderBy, $this->orderWay);
    
    
    
    }
    
    else // Hook executed, use the override
    
    $this->pagination((int)$this->nbProducts); // Pagination must be call after "getProducts"
    
    self::$smarty->assign(array('nb_products' => (int)$this->nbProducts, 'manufacturers' => $this->manufacturers));
    
    }
    
    

    And here is the working one:
     

    public function productListAssign()
    
    {
    
    $hookExecuted = false;
    
    $this->nbProducts = $this->category->getProducts(NULL, NULL, NULL, $this->orderBy, Tools::getValue('orderway')/*$this->orderWay*/, true);
    
    $this->manufacturers = $this->category->getProducts(NULL, NULL, NULL, $this->orderBy, Tools::getValue('orderway')/*$this->orderWay*/, false, false, false, 1, true, true);
    
    $this->pagination((int)$this->nbProducts); // Pagination must be call after "getProducts"
    
    $this->cat_products = $this->category->getProducts((int)(self::$cookie->id_lang), (int)($this->p), (int)($this->n), $this->orderBy, Tools::getValue('orderway')/*$this->orderWay*/);
    
    Module::hookExec('productListAssign', array('nbProducts' => /*&*/$this->nbProducts, 'catProducts' => /*&*/$this->cat_products, 'manufacturers'=>$this->manufacturers, 'hookExecuted' => &$hookExecuted));
    
    /* if(!$hookExecuted) // The hook was not executed, standard working
    
    {
    
    self::$smarty->assign('categoryNameComplement', '');
    
    $this->nbProducts = $this->category->getProducts(NULL, NULL, NULL, $this->orderBy, $this->orderWay, true);
    
    $this->manufacturers = $this->category->getProducts(NULL, NULL, NULL, $this->orderBy, $this->orderWay, false, false, false, 1, true, true);
    
    $this->pagination((int)$this->nbProducts); // Pagination must be call after "getProducts"
    
    $this->cat_products = $this->category->getProducts((int)(self::$cookie->id_lang), (int)($this->p), (int)($this->n), $this->orderBy, $this->orderWay);
    
    
    
    }
    
    else // Hook executed, use the override
    
    $this->pagination((int)$this->nbProducts); // Pagination must be call after "getProducts"*/
    
    self::$smarty->assign(array('nb_products' => (int)$this->nbProducts, 'manufacturers' => $this->manufacturers));
    
    }
    
    

    I don't know why, but

    if(!$hookExecuted)
    
    

    was never triggered for me, so I had to put the code out of it. Second, somehow

    $this->orderWay
    
    

    was always having 'asc' value despite the "&orderway=34" in the location string. So I had to change it to

    Tools::getValue('orderway')/*$this->orderWay*/
    
    

    And lastly, to make the actual filtering, I had to change

    Module::hookExec('productListAssign', array('nbProducts' => &$this->nbProducts, 'catProducts' => &$this->cat_products
    
    

    to

    Module::hookExec('productListAssign', array('nbProducts' => /*&*/$this->nbProducts, 'catProducts' => /*&*/$this->cat_products
    
    

    Note, in the preferences I have smarty cache disabled for debugging purposes. Maybe this affects the above described behaviour.

    If anyone has some more correct ways of getting it work, your contribution would be appreciated!

    EDIT: Here is the latest working version with more good looking code:

    public function productListAssign()
    
    {
    
    $hookExecuted = false;
    
    Module::hookExec('productListAssign', array('nbProducts' => /**/&$this->nbProducts, 'catProducts' => /**/&$this->cat_products, 'manufacturers'=>$this->manufacturers, 'hookExecuted' => /*&*/$hookExecuted));
    
    if(!$hookExecuted) // The hook was not executed, standard working
    
    {
    
    self::$smarty->assign('categoryNameComplement', '');
    
    $this->nbProducts = $this->category->getProducts(NULL, NULL, NULL, $this->orderBy, Tools::getValue('orderway')/*$this->orderWay*/, true);
    
    $this->manufacturers = $this->category->getProducts(NULL, NULL, NULL, $this->orderBy, Tools::getValue('orderway')/*$this->orderWay*/, false, false, false, 1, true, true);
    
    $this->pagination((int)$this->nbProducts); // Pagination must be call after "getProducts"
    
    $this->cat_products = $this->category->getProducts((int)(self::$cookie->id_lang), (int)($this->p), (int)($this->n), $this->orderBy, Tools::getValue('orderway')/*$this->orderWay*/);
    
    
    
    }
    
    else // Hook executed, use the override
    
    $this->pagination((int)$this->nbProducts); // Pagination must be call after "getProducts"
    
    self::$smarty->assign(array('nb_products' => (int)$this->nbProducts, 'manufacturers' => $this->manufacturers, 'orderway' => Tools::getValue('orderway') ));
    
    }
    
    

    I only changed:
    'hookExecuted' => &$hookExecuted to 'hookExecuted' => /*&*/$hookExecuted
    $this->orderWay to Tools::getValue('orderway')/*$this->orderWay*/
    And added 'orderway' => Tools::getValue('orderway') to the last line to have the selected manufacturer to be shown in the select box.

    And still, who has ideas/knowledge about why &$hookExecuted had to be changed as well as about why $this->orderWay is not taken from $_GET, feel free to contribute!

     

    Prestashop_Manuf_Filter.zip

     

    • Like 1
×
×
  • Create New...

Important Information

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