Substituições de modelos Smarty

A partir do SuiteCRM 7.7, você pode usar um tema para alterar a saída de um arquivo de modelo smarty (.tpl), que pode ser útil quando você precisa personalizar a aparência do SuiteCRM sem afetar a funcionalidade existente.

 

Como funciona
Os métodos do modelo smarty foram modificados para que você possa tratar uma pasta de tema como um local raiz. Isso significa que você pode criar a estrutura de pastas dentro de a themes /

e então colocar o arquivo tpl para substituir um arquivo de modelo smarty.

Exemplo
Digamos que você queira alterar a forma como os alertas são exibidos para um grupo de usuários. O arquivo de modelo que você deseja editar existe em modules / Alerts / templates / default.tpl. Você pode criar um tema para o grupo de usuários duplicando um dos temas existentes e, a seguir, alterar o arquivo themedef.php.
O que garante que o tema nunca será substituído quando a instância for atualizada. Para substituí-lo na pasta do tema, você precisa criar os módulos de estrutura de pasta / Alertas / modelos / padrão e colocar um novo default.tpl. Você pode então editar o novo arquivo com a personalização que desejar. O teste é simplesmente uma questão de alternar os temas em seu perfil de usuário.

 

Como importar outros modelos do Smarty
A fim de aproveitar as vantagens deste recurso de anulação de template smarty e importar outros arquivos de template, você deve usar o seguinte código em seu template smarty.
{{sugar_include type=”smarty” file=$headerTpl}}
Observe o novo tipo = “smarty”. Isso ajuda a função sugar_include (include / Smarty / plugins / function.sugar_include.php) a usar corretamente a pasta do tema como uma pasta raiz.

 

Como importar outros arquivos JavaScript
{{getjspath file=”path/to/file.js”}}

 

Como lidar com imagens em modelos Smarty
Há uma nova mudança no modo como o mecanismo de modelo smarty lida com imagens. Já que o tema SuiteP usa predominantemente gráficos vetoriais escaláveis ​​(arquivos SVG). O método SugarThemeRegistry :: current () → getImage (…) que é usado pelo mecanismo de template smarty procura por arquivos SVG primeiro, depois .png e então .gif. Você também pode definir o local de pesquisa das imagens, o que é útil se você precisar organizar suas imagens em subpastas.

Portanto, isso pode representar um problema se acontecer de você ter várias imagens com o mesmo nome, mas com extensões de arquivo diferentes. A maneira ideal de lidar com isso é no arquivo de modelo do smarty, adicionando parâmetros para especificar o que você precisa.
<img src=”{sugar_getimagepath directory=’sidebar/modules’ file_name=$item.module_name file_extension=”svg” file=’sidebar/modules/’.$item.module_name.”.svg”}”/>

  • sugar_getimagepath – é a função responsável por fornecer o url correto para a imagem. Veja include / Smarty / plugins / function.sugar_getimagepath.php.
  • ` diretório – especifica o subdiretório de temas / <nome do tema> / imagens / para pesquisar o arquivo.
  • file_name – especifica o nome do arquivo, excluindo a extensão do arquivo.
  • file_extension – especifica a extensão do arquivo, por exemplo, svg, png, gif.
  • arquivo – é o caminho relativo como um substituto.

 

Alternativas ao uso de substituições Smarty Ttemplate

  • Incluir locais de JavaScript no arquivo de metadados
  • Personalize um arquivo de metadados
  • Use um campo de função ao invés
  • Substitua o método de exibição em um SugarView.