Dovre
Dovre

Reputation: 71

Suitecrm custom template for custom module

I built a custom module using the module builder.

I want to modify templates of my module (edit, detail, subpanel).

How can I tell Suitecrm to use an other template?

Thanks

(Suitecrm 7.7)

Upvotes: 2

Views: 2023

Answers (2)

cakpep
cakpep

Reputation: 85

it's work for me.

<?php

require_once('include/MVC/View/SugarView.php');

class AccountsViewEdit extends SugarView {

private $smarty;

  public function __construct() {

  }

  public function display() {
    $this->smarty = new Sugar_Smarty();
    $data = ['a'=> 'a', 'b'=>'b'];
    $this->smarty->assign($data);
    $this->smarty->display('path/custom/template.tpl');        
  }
}

Upvotes: 1

Daniel Samson
Daniel Samson

Reputation: 718

You need to create a SugarView in the module and then override the display() method to return the path to your custom template. The convention is keep your templates in a 'tpl' folder in the module.

For example if you look at the 'modules/Accounts/views/view.edit.php' you would just need to add

class AccountsViewEdit extends ViewEdit
{
    public function __construct()
    {
        parent::__construct();
        $this->useForSubpanel = true;
        $this->useModuleQuickCreateTemplate = true;
    }

    public function display() {

        parent::display(); // TODO: Change the autogenerated stub
        return $this->ss->fetch('path/to/your/smarty/template.tpl');
    }
}

it's almost the same for the subpanels except the location is in the Dashlets folder. Take a look at modules/Accounts/Dashlets/MyAccountsDashlet/MyAccountsDashlet.php for example.

Upvotes: 0

Related Questions