Jump to content

trier la page manufacturer


Recommended Posts

oui c'est celle qui est appelé Manufacturer:getManufacturer

Avec cette fonction du cherche la class manufacturer et dedans la fonction getmanufacturer

A la fin de la requete sql, tu metys un order by name ASC par exemple.

Link to comment
Share on other sites

Merci pour ta réponse !

 

Dans cette class le première requete est :

$sql = 'SELECT m.*, ml.`description`, ml.`short_description`
  FROM `'._DB_PREFIX_.'manufacturer` m
  LEFT JOIN `'._DB_PREFIX_.'manufacturer_lang` ml ON (
m.`id_manufacturer` = ml.`id_manufacturer`
AND ml.`id_lang` = '.(int)$id_lang.'
  )
  '.Shop::addSqlAssociation('manufacturer', 'm');
  if ($active)
$sql .= '
  WHERE m.`active` = 1';
  $sql .= '
  GROUP BY m.id_manufacturer
  ORDER BY m.`name` ASC'.
  ($p ? ' LIMIT '.(((int)$p - 1) * (int)$n).','.(int)$n : '');

 

Cela va pas chercher les produits mais les manufacturer ?

 

Je dois modifier celle-la ? :

$result = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS(
 'SELECT p.`id_product`
 FROM `'._DB_PREFIX_.'product` p
 '.Shop::addSqlAssociation('product', 'p').'
 LEFT JOIN `'._DB_PREFIX_.'manufacturer` as m ON (m.`id_manufacturer`= p.`id_manufacturer`)
 WHERE m.`id_manufacturer` = '.(int)$manufacturer['id_manufacturer'].
 ($active ? ' AND product_shop.`active` = 1 ' : '').
 ($all_group ? '' : ' AND p.`id_product` IN (
  SELECT cp.`id_product`
  FROM `'._DB_PREFIX_.'category_group` cg
  LEFT JOIN `'._DB_PREFIX_.'category_product` cp ON (cp.`id_category` = cg.`id_category`)
  WHERE cg.`id_group` '.$sql_groups.'
 )')
);

 

C'est bien ça ?

 

Car pour l'instant je ne cois pas mes modifs, est-ce que je suis sur la bonne requête ?

Link to comment
Share on other sites

  • 2 months later...

Je vais reformuler ma demande car pas de réponse et tout mes essais sont des échecs !!

 

Je veux faire un menu directement dans le header avec toutes les marque de ma boutique.

 

Que dois-je faire pour voir/utiliser les fonctions manufacturer dans le header ?

 

Merci pour vos réponses !

Link to comment
Share on other sites

Heu, merci pour ta réponse. Mais je ne pourrai pas utiliser la liste pour la mettre dans mon menu ?

 

Dans ManufacturerController.php, si je fais  :

	/**
	 * Assign template vars related to page content
	 * @see FrontController::initContent()
	 */
	public function initContent()
	{
		parent::initContent();

		if (Validate::isLoadedObject($this->manufacturer) && $this->manufacturer->active && $this->manufacturer->isAssociatedToShop())
		{
			$this->productSort();
			$this->assignOne();
			$this->setTemplate(_PS_THEME_DIR_.'manufacturer.tpl');
			$this->setTemplate(_PS_THEME_DIR_.'header.tpl');
		}
		else
		{
			$this->assignAll();
			$this->setTemplate(_PS_THEME_DIR_.'manufacturer-list.tpl');
			$this->setTemplate(_PS_THEME_DIR_.'header.tpl');
		}
	}

Est-ce une bonne direction pour afficher une fonction de manufacturer dans le header.tpl ?

Link to comment
Share on other sites

Disons que théoriquement, si tu place ton hook dans ton tpl de menu, il apparaitra.

Cependant, tu peux copier la même fonction que dans le bloc manufacturer par exemple, l'ajouter dans le php de ton menu et appeler ta variable comme dans le bloc manufacturer.

Link to comment
Share on other sites

Merci pour ta réponse.

 

Je suis en version 1.5.4.1, je croyais qu'on ne pouvait pas mettre de php dans les .tpl ?

Comment faire ?

 

Sinon :

Dans blocmanufacturer, il y a le public function getContent() que je pourrais récupérer.

Je la copie ou ?

Link to comment
Share on other sites

Il ne faut pas mettre de php dans les tpl.
Il faut mettre le listage des marques dans le php de ton module menu et l'assigner dans les variables avec le reste pour les afficher dans ton tpl comme il le sont dans le tpl du module marque.
Le getContent n'est pas pour l'ajout dans ton tpl.
Dans le hook de ton module (par ex top si ton menu se mets dans el top) tu ajoutes la liste et l'assigne pour la reprendre dans ton tpl
 
Dans le php

    function hookTop($params)
    {
           [...]
		$this->smarty->assign(array(
           [...]
			'manufacturers' => Manufacturer::getManufacturers(),
           [...]
		));
		return $this->display(__FILE__, 'menubidule.tpl');
    }

Dans ton tpl menubidule

<ul>
{foreach from=$manufacturers item=manufacturer name=manufacturer_list}
		{if $smarty.foreach.manufacturer_list.iteration <= $text_list_nb}
		<li class="{if $smarty.foreach.manufacturer_list.last}last_item{elseif $smarty.foreach.manufacturer_list.first}first_item{else}item{/if}"><a href="{$link->getmanufacturerLink($manufacturer.id_manufacturer, $manufacturer.link_rewrite)}" title="{l s='Learn more about' mod='blockmanufacturer'} {$manufacturer.name}">{$manufacturer.name|escape:'htmlall':'UTF-8'}</a></li>
		{/if}
	{/foreach}
</ul>
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...