Jump to content

Tab Admin


Recommended Posts

Bonjour,

 

j'ai créé un module.

 

Via le panneau module, je peux entrer dans la configuration du module.

 

Je crée une tabulation qui se place bien mais lorsque je clique dessus, "controlleur manquant"... J'aimerais qu'elle ouvre directement la page de configuration car je n'ai pas de controller. Le peu que je dois faire, ce fait directement via le fichier monmodule.php

 

Est-ce possible?

 

Voici comme j'ai fait le tab...

private function installTab($tabClass, $tabName, $idTabParent)
	{
		$languages = Language::getLanguages(false);
		
		for ($index = 0; $index < count($languages); $index++) {
			$language = $languages[$index];
			$tabName[$language['id_lang']] = 'Catalog PDF Export';
		}

		@copy(_PS_MODULE_DIR_.$this->name.'/logo.gif', _PS_IMG_DIR_.'t/'.$tabClass.'.gif');
		
		$tab = new Tab();
		$tab->name = $tabName;
		$tab->class_name = $tabClass;
		$tab->module = $this->name;
		$tab->id_parent = $idTabParent;
		//Tab
		$tab->id_parent = (int)Tab::getIdFromClassName('AdminCatalog');
		$tab->position = Tab::getNewLastPosition($tab->id_parent);
		foreach (Language::getLanguages(false) as $lang) $tab->name[(int)$lang['id_lang']] = 'Test';
		if(!$tab->save())
		return false;
		return true;
	}

Merci pour vos pistes...

Edited by alexandrieb (see edit history)
Link to comment
Share on other sites

Votre question n'a pas de sens, c'est comme si vous disiez "je veux utiliser le train mais sans les rails"...

Donc soit vous faites les choses correctement et vous utilisez un contrôleur, soit effectivement vous utilisez l'accès rapide.

Link to comment
Share on other sites

Non..

<?php

class AdminMonModuleController extends AdminController
{
	private $moduleName = 'monmodule';
	public $bootstrap = false ;
	public $_html = '';

	public function __construct() {		
	
		if (Shop::isFeatureActive())
			Shop::setContext(Shop::CONTEXT_SHOP);
			  
		parent::__construct();	
		 	
	}

	
	public function initContent() {	
	
		$this->show_toolbar = false;
		$this->display = 'view';
		
		parent::initContent();	
	}
	
	public function renderView() {	
	
		return parent::renderView().$this->setForm();
	}

	public function setForm() {
	
		$module = Module::getInstanceByName($this->moduleName);
		
		return $module->getContent();
	}
}
  • Like 1
Link to comment
Share on other sites

Merci pour ton aide

 

Donc j'ai fait comme tu as dit et voici mon code pour créer le tab

 

Dans install()

if(!parent::install()
		|| !$this->installTab('AdminMonMonduleController', array(), 1))
		{ return false;}
		return true;

Et voici la fonction installtab()

private function installTab($tabClass, $tabName, $idTabParent)
	{
		$languages = Language::getLanguages(false);
		
		for ($index = 0; $index < count($languages); $index++) {
			$language = $languages[$index];
			$tabName[$language['id_lang']] = 'Test';
		}

		@copy(_PS_MODULE_DIR_.$this->name.'/logo.gif', _PS_IMG_DIR_.'t/'.$tabClass.'.gif');
		
		$tab = new Tab();
		$tab->name = $tabName;
		$tab->class_name = $tabClass;
		$tab->module = $this->name;
		$tab->id_parent = $idTabParent;
		//Tab
		$tab->id_parent = (int)Tab::getIdFromClassName('AdminCatalog');
		$tab->position = Tab::getNewLastPosition($tab->id_parent);
		foreach (Language::getLanguages(false) as $lang) $tab->name[(int)$lang['id_lang']] = 'Test';
		if(!$tab->save())
		return false;
		return true;
	}

Mon fichier est bien dans le dossier controllers/admin/AdminMonModuleController.php

 

Et quand je clique sur le lien dans le menu admin, il me dit que le controller est introuvable

 

Merci pour tout

Edited by alexandrieb (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...