Jump to content

Edit History

briast

briast

I have searched and found several posts about this topic, but none helped me. When I navigate to the controller url, I get "No template found" error. But the template is created and assigned. The url is something like this:

<mydomain>/index.php?catId=1234&fc=module&module=mymodule&controller=myfunction

This is my very simple module and folder structure:

modules/mymodule/mymodule.php

<?php

if (!defined('_PS_VERSION_')) {
    exit;
}

class mymodule extends Module
{
    public function __construct()
  {
    $this->name = 'mymodule';
    $this->tab = 'front_office_features';
    $this->version = '1.0.0';
    $this->author = 'Tester';
    $this->need_instance = 0;
    $this->ps_versions_compliancy = array(
        'min' => '1.7.0.0',
        'max' => _PS_VERSION_
    );
    $this->bootstrap = true;
    $this->controllers = array('myfunction');


    parent::__construct();

    $this->displayName = $this->trans('MyModule', array(), 'Modules.Mainmenu.Admin');
    $this->description = $this->trans('My first simple module', array(), 'Modules.Mainmenu.Admin');
    $this->confirmUninstall = $this->l('Do you want to uninstall?');

  }
  
  public function install()
    {
        if (version_compare(_PS_VERSION_,'1.5','>=')) {
            if (Shop::isFeatureActive())
                Shop::setContext(Shop::CONTEXT_ALL);
        }
        return parent::install();
    }
    
    public function uninstall()
    {
        return parent::uninstall();
    }
  
  public function getContents() 
  {
    echo "Step 1";
  }
  
  public function hookDisplayHome($params)
  {   
  
    $this->context->smarty->assign(
        'moduleLink',
        $this->context->link->getModuleLink(
            $this->name,
            'myfunction',
            array('catId' => 1337 )
        )
    );

    return $this->display(__FILE__, 'views/templates/hook/testfrontctrl.tpl');
  }
}

modules/mymodule/controllers/front/myfunction.php

<?php

class mymodulemyfunctionModuleFrontController extends ModuleFrontController
{
  public function __construct() {
    parent::__construct();
  }
  
  public function init()
  {
    $this->page_name = 'myfunction'; 
    $this->display_column_left = false;
    $this->display_column_right = false;
    parent::init(); 
  }
  
  public function initContent()
  {
    parent::initContent();
    
    // Do some process
       
    echo 'RESULT OK : ' . Tools::getValue('catId');
    
    $this->setTemplate(_PS_MODULE_DIR_.'mymodule/views/templates/front/myfunction.tpl');
  }   
  
}

modules/mymodule/views/templates/front/myfunction.tpl

modules/mymodule/views/templates/hook/testfrontctrl.tpl

(both same content)

 

<h2>Hello world</h2>

 

briast

briast

I have searched and found several posts about this topic, but none helped me. When I navigate to the controller url, I get "No template found" error. But the template is created and assigned. The url is something like this:

<mydomain>/index.php?catId=1234&fc=module&module=mymodule&controller=myfunction

This is my very simple module and folder structure:

modules/mymodule/mymodule.php

<?php

if (!defined('_PS_VERSION_')) {
    exit;
}

class mymodule extends Module
{
    public function __construct()
  {
    $this->name = 'mymodule';
    $this->tab = 'front_office_features';
    $this->version = '1.0.0';
    $this->author = 'Tester';
    $this->need_instance = 0;
    $this->ps_versions_compliancy = array(
        'min' => '1.7.0.0',
        'max' => _PS_VERSION_
    );
    $this->bootstrap = true;
    $this->controllers = array('myfunction');


    parent::__construct();

    $this->displayName = $this->trans('MyModule', array(), 'Modules.Mainmenu.Admin');
    $this->description = $this->trans('My first simple module', array(), 'Modules.Mainmenu.Admin');
    $this->confirmUninstall = $this->l('Do you want to uninstall?');

  }
  
  public function install()
    {
        if (version_compare(_PS_VERSION_,'1.5','>=')) {
            if (Shop::isFeatureActive())
                Shop::setContext(Shop::CONTEXT_ALL);
        }
        return parent::install();
    }
    
    public function uninstall()
    {
        return parent::uninstall();
    }
  
  public function getContents() 
  {
    echo "Step 1";
  }
  
  public function hookDisplayHome($params)
  {   
  
    $this->context->smarty->assign(
        'moduleLink',
        $this->context->link->getModuleLink(
            $this->name,
            'myfunction',
            array('catId' => 1337 )
        )
    );

    return $this->display(__FILE__, 'views/templates/hook/testfrontctrl.tpl');
  }
}

modules/mymodule/controllers/front/myfunction.php

<?php

class mymodulemyfunctionModuleFrontController extends ModuleFrontController
{
  public function __construct() {
    parent::__construct();
  }
  
  public function init()
  {
    $this->page_name = 'myfunction'; 
    $this->display_column_left = false;
    $this->display_column_right = false;
    parent::init(); 
  }
  
  public function initContent()
  {
    parent::initContent();
    
    // Do some process
       
    echo 'RESULT OK : ' . Tools::getValue('catId');
    
    $this->setTemplate(_PS_MODULE_DIR_.'mymodule/views/templates/front/myfunction.tpl');
  }   
  
}

modules/mymodule/views/templates/front/myfunction.tpl

modules/mymodule/views/templates/hook/myfunction.tpl

(both same content)

 

<h2>Hello world</h2>

 

briast

briast

I have searched and found several posts about this topic, but none helped me. When I navigate to the controller url, I get "No template found" error. But the template is created and assigned. The url is something like this:

<mydomain>/index.php?catId=1234&fc=module&module=mymodule&controller=myfunction

This is my very simple module and folder structure:

modules/mymodule/mymodule.php

<?php

if (!defined('_PS_VERSION_')) {
    exit;
}

class mymodule extends Module
{
    public function __construct()
  {
    $this->name = 'mymodule';
    $this->tab = 'front_office_features';
    $this->version = '1.0.0';
    $this->author = 'Tester';
    $this->need_instance = 0;
    $this->ps_versions_compliancy = array(
        'min' => '1.7.0.0',
        'max' => _PS_VERSION_
    );
    $this->bootstrap = true;
    $this->controllers = array('myfunction');


    parent::__construct();

    $this->displayName = $this->trans('MyModule', array(), 'Modules.Mainmenu.Admin');
    $this->description = $this->trans('My first simple module', array(), 'Modules.Mainmenu.Admin');
    $this->confirmUninstall = $this->l('Do you want to uninstall?');

  }
  
  public function install()
    {
        if (version_compare(_PS_VERSION_,'1.5','>=')) {
            if (Shop::isFeatureActive())
                Shop::setContext(Shop::CONTEXT_ALL);
        }
        return parent::install();
    }
    
    public function uninstall()
    {
        return parent::uninstall();
    }
  
  public function getContents() 
  {
    echo "Step 1";
  }
  
  public function hookDisplayHome($params)
  {   
  
    $this->context->smarty->assign(
        'moduleLink',
        $this->context->link->getModuleLink(
            $this->name,
            'myfunction',
            array('catId' => 1337 )
        )
    );

    return $this->display(__FILE__, 'views/templates/hook/testfrontctrl.tpl');
  }
}

modules/mymodule/controllers/front/myfunction.php

<?php

class mymodulemyfunctionModuleFrontController extends ModuleFrontController
{
  public function __construct() {
    parent::__construct();
  }
  
  public function init()
  {
    $this->page_name = 'myfunction'; 
    $this->display_column_left = false;
    $this->display_column_right = false;
    parent::init(); 
  }
  
  public function initContent()
  {
    parent::initContent();
    
    // Do some process
       
    echo 'RESULT OK : ' . Tools::getValue('catId');
    
    $this->setTemplate(_PS_MODULE_DIR_.'mymodule/views/templates/front/myfunction.tpl');
  }   
  
}

modules/mymodule/views/templates/front/myfunction.tpl

<h2>Hello world</h2>

 

×
×
  • Create New...