Jump to content

adapter le back office pour employé specifique


Recommended Posts

Bonjour tout le monde !!  :)

 

Je crée actuellement un site "d'annonces" à ma facon ! lol

Je désire laisser la possibilité a certaines personnes la possibilité d'inserer eux memes des produits sur le site, mais je bloque sur l'affichage de certaines infos dans le back office que je ne veut pas qu'ils voient...

Il me reste a finaliser la page nouveaux produits. J'ai masquer les elements a ne pas montrer a ces personnes. Mais voila, pour les autres onglets de cette page tels que association, prix, seo, caracvteristiques... je n'arrive pas trouver ou se trouve l'emplacement ou je pourrais les masquer.... J'ai bien chaque fichier TPL pour ces onglets mais je recherche le fichier TPL où se regroupe ces genre de fichiers... Pour l'instant j'arrive a masquer le contenu de ces onglets mais je souhaiterais masquer directement les onglets ...

 

Si quelqu'un a une solution je suis preneur !  :)  je suis PS v1.6

 

Merci et très bonne journée a tous !!

 

manu

Link to comment
Share on other sites

Bonjour,

 

Vous ne trouverez pas un fichier de type "build" avec un ensemble de fichiers TPL associés.

 

En fait, l'AdminController (AdminProductsController) se charge d’exécuter les méthodes initFormxxx() et à chaque méthode est associée un fichier tpl.

 

Le plus simple et le plus cohérent serait donc de réaliser une surcharge de ce fichier pour masquer tel ou tel onglet à tel employé. Mais attention aux effets de bords, bien entendu ;-)

Link to comment
Share on other sites

Bonjour J.danse !

j'avais commencer a creuser cette solution...

J'essaie d'entamer une piste mais sans succes... meme si je suis sur de n'etre pas tres loin de la solution...

 

j'arrive a masquer certains onglets mais ca ne filtre pas que les employés, ca prend sur tout le monde ...  :(

 

voici mon code actuel après rajout du petit code :

		// @since 1.5 : translations for tabs
		$this->available_tabs_lang = array(
			'Informations' => $this->l('Information'),
			'Pack' => $this->l('Pack'),
			'VirtualProduct' => $this->l('Virtual Product'),
			'Prices' => $this->l('Prices'),
			'Seo' => $this->l('SEO'),
			'Images' => $this->l('Images'),
			'Associations' => $this->l('Associations'),
			'Shipping' => $this->l('Shipping'),
			'Combinations' => $this->l('Combinations'),
			'Features' => $this->l('Features'),
			'Customization' => $this->l('Customization'),
			'Attachments' => $this->l('Attachments'),
			'Quantities' => $this->l('Quantities'),
			'Suppliers' => $this->l('Suppliers'),
			'Warehouses' => $this->l('Warehouses'),
		);

if (!$context->profile || !$context->profile->id_profile==2)
		$this->available_tabs = array('Quantities' => 6, 'Warehouses' => 14);
		if ($this->context->shop->getContext() != Shop::CONTEXT_GROUP)
			$this->available_tabs = array_merge($this->available_tabs, array(
				'Informations' => 0,
				'Pack' => 7,
				'VirtualProduct' => 8,
				'Prices' => 1,
				'Seo' => 2,
				'Associations' => 3,
				'Images' => 9,
				'Shipping' => 4,
				'Combinations' => 5,
				'Features' => 10,
				'Customization' => 11,
				'Attachments' => 12,
				'Suppliers' => 13,
			));
			
if (!$context->employee || !$context->employee->id_profile==3)			
	
		
		$this->available_tabs = array('Quantities' => 6, 'Warehouses' => 14);
		if ($this->context->shop->getContext() != Shop::CONTEXT_GROUP)
			$this->available_tabs = array_merge($this->available_tabs, array(
				'Informations' => 0,
				'Pack' => 7,
				'VirtualProduct' => 8,
				'Prices' => 1,
			
			));	
			
			
Link to comment
Share on other sites

Bonjour,

 

J'ai déjà réussi à mettre en place ce genre de restrictions de manière assez simple (sans override)

L'idée est de masquer ces éléments directement en css.
Pour cela il est nécessaire de créer un module qui va se greffer au hook "backOfficeHeader".

 

Voici un contenu d'exemple de la fonction du hook.

public function hookBackOfficeHeader($params) {
	
		if ( $this->context->employee->id_profile == 1 ) {
		return '<style>
					#link-Quantities {display:none;}
					#link-Combinations {display:none;}
				</style>';		
		}
	
	}

( Ce n'est pas forcément la solution la plus propre, mais elle à l'avantage d'être assez rapide à mettre en oeuvre :) )

 Edit : Testé sur une version 1.5 de prestashop, pas sur que cela fonctionne sur la 1.6

Edited by herve25 (see edit history)
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...