Jump to content

[Besoin d'aide] Creer un module MVC dans le Back Office


Recommended Posts

Bonjour je chercher creer un module supplementaire dans le Back Office

 

J'ai donc ajouté une TAB dans le back office et crée un fichier pour le controlleur sous Mon_module/Controllers/moncontrolleur.php

 

Ma question est que je ne comprend pas comment fonctionne les fonction RenderList RenderForm & tout ca

 

Ce que je veut c'est afficher un formulaire un peut comme celui d'import de CSV present dans le back office bien a moi et pas une liste quelq'un aurai une piste?

Share this post


Link to post
Share on other sites

Bonjour,

 

Tout d'abord, le controller doit être sous modules/tonmodule/controllers/admin/AdmintoncontrollerController.php

 

Ensuite, tu peux t'inspirer des controllers existants dans le back office pour créer ton module. ^^

Share this post


Link to post
Share on other sites

class ImportPWBController extends ModuleAdminController
{
    
  public function __construct()
    {
         
         $this->className = 'ImportPWB';
 
         $this->lang = false;

         
        // Building the list of records stored within the "test" table
//        $this->fields_list = array(
//            'id_test' => array(
//                'title' => $this->l('ID'),
//                'align' => 'center',
//                'width' => 25
//            ),
//            'name' => array(
//                'title' => $this->l('Name'),
//                'width' => 'auto'
//            )
//        );
         
 
        // This adds a multiple deletion button
      
 
        parent::__construct();
    }
 
    // This method generates the list of results
 
    
    
    public function initContent()
    {
        parent::initContent();

        $this->context->smarty->assign('test', 'eee');
        $this->setTemplate('importpowerboutique.tpl');
    }

En fesant ca j'ai une page blanche

Quand j'utilise $this->fields_list j'obtien une liste mais je ne sait pas comment configurer un formulaire

  

 

La ce code me renvoi une belle page blanche

Edited by Lion-Soul (see edit history)

Share this post


Link to post
Share on other sites

J'ai finalement réussi a placer qq chose qui fonctionne :

           
dans mon _construct

$this->fields_options = array(
			'general' => array(
				'title' =>	$this->l('Employee options'),
				'fields' =>	array(
					'PS_PASSWD_TIME_BACK' => array(
						'title' => $this->l('Password regeneration'),
						'hint' => $this->l('Security: Minimum time to wait between two password changes.'),
						'cast' => 'intval',
						'type' => 'text',
						'suffix' => ' '.$this->l('minutes'),
						'visibility' => Shop::CONTEXT_ALL
					),
					'PS_BO_ALLOW_EMPLOYEE_FORM_LANG' => array(
						'title' => $this->l('Memorize the language used in Admin panel forms'),
						'hint' => $this->l('Allow employees to select a specific language for the Admin panel form.'),
						'cast' => 'intval',
						'type' => 'select',
						'identifier' => 'value',
						'list' => array(
							'0' => array('value' => 0, 'name' => $this->l('No')),
							'1' => array('value' => 1, 'name' => $this->l('Yes')
						)
					), 'visibility' => Shop::CONTEXT_ALL)
				),
				'submit' => array('title' => $this->l('Save'))
		);

cependant je n’arrive toujours pas a intégrer une $this->fields_form a la place pour avoir un formulaire

Share this post


Link to post
Share on other sites

  • 1 month later...

Si ca peut aider voilà un renderForm d'un de mes controller :

public function renderForm()
    {
		if (!($obj = $this->loadObject(true)))
			return;
		$this->fields_form = array(
			'legend' => array(
				'title' => $this->l('Materiaux'),
				//'image' => '../img/admin/cog.gif',				
			),
			'input' => array(
				array(
					'type' => 'text',
					'label' => $this->l('Title :'),
					'name' => 'name',
					'lang' => true,
					'size' => 50,
					//'desc' => $this->l('The title is used only in admin')
				),
				array(
					'type' => 'text',
					'label' => $this->l('Prix de base:'),
					'name' => 'price_base',
					'size' => 10
				)
			),
			'submit' => array(
				'title' => $this->l('Save'),
				'class' => 'button'
			)
		);	
		return parent::renderForm();
    } 

Share this post


Link to post
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
 Share

×
×
  • Create New...

Important Information

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