Outils pour utilisateurs

Outils du site


Panneau latéral

webdev:prestashop:changer_bo

Modifier le back-office

Changer des listes affichées en back-office

Goto AdminMachinController → Chercher $this->fields_list

http://doc.prestashop.com/display/PS16/Adding+a+configuration+page

Exemple avec callback

	'is_pro' => array(
		'title' => $this->l('Pro - valid'),
		'align' => 'text-center',
		'type' => 'bool',
		'orderby' => false,
		'callback' => 'isProValid',
	),

Fonction dans le même fichier :

	// Fonction pour afficher si le client est pro, et s'il est ou non dans le groupe des pros non validés
	public function isProValid($value, $customer)
	{
		if ($value)
		{
			$return = '<i class="icon-check list-action-enable action-enabled"></i> - ';
		} else {
			return '<i class="icon-remove list-action-enable action-disabled"></i> - <i class="icon-remove list-action-enable action-disabled"></i>';
		}

		$groups = Customer::getGroupsStatic($customer['id_customer']);
		$valid = true;
		for( $i = 0, $max = count($groups) ; $i < $max ; $i++ )
		{
			if ( $groups[$i] == 4 )
			{
				$return .= '<i class="icon-remove list-action-enable action-disabled"></i>';
				$valid = false;
			}
		}
		if($valid)
		{
			$return .= '<i class="icon-check list-action-enable action-enabled"></i>';
		}
		return $return;
	}

Changer les vues affichées en back-office

Pour ça il faut modifier les templates du thème admin. Ils se trouvent dans /admin/themes/nom_du_theme/template/controllers/nom_du_controlleur/helpers/view/view.tpl

Ajouter un menu

Pour un module (need a controller).

À l'installation :

	public function install()
	{
		// ...

		// On met le menu dans Administration
		$presta_pop_tab = new Tab();
		$presta_pop_tab->class_name = 'AdminPrestaPop';
		$presta_pop_tab->module = 'presta_pop';

		$presta_pop_tab_admin_id = Tab::getIdFromClassName('AdminAdmin');
		if ($presta_pop_tab_admin_id)
		{
			$presta_pop_tab->id_parent = $presta_pop_tab_admin_id;
		} else {
			$presta_pop_tab->id_parent = 0;
		}

		foreach (Language::getLanguages(true) as $lang)
		{
			$presta_pop_tab->name[$lang['id_lang']] = 'Presta pop';
		}
		$presta_pop_tab->save();

		// ...
	}

Désinstallation :

	public function uninstall()
	{
		// ...

		// Virer le lien dans le menu
		$presta_pop_tab_id = Tab::getIdFromClassName('AdminPrestaPop');
		if ($presta_pop_tab_id)
		{
			$presta_pop_tab = new Tab($presta_pop_tab_id);
			$presta_pop_tab->delete();
		}

		// ...
	}

Lui donner une icône

	function install()
	{
		if (parent::install() == false || $this->registerHook('displayBackOfficeHeader') == false)
		{
			return false;
		}

		// ...
	}


	public function hookDisplayBackOfficeHeader($params)
	{
		return '<style type="text/css">.icon-AdminKoregrafOptions:before{ content: "";  }</style>"';
	}
webdev/prestashop/changer_bo.txt · Dernière modification: 14/08/2017 15:31 de dolo