Numsu Posted May 8, 2015 Share Posted May 8, 2015 (edited) I'm a learning addon developer. I have been trying to solve this for a long time, how do you properly override a core template file from a module? At the moment I'm overriding the entire file by copying the template file in the override folder from my module on installation: From: /modules/<module>/views/templates/admin/products/informations.tpl To: /override/controllers/admin/templates/products/informations.tpl Overriding the whole file just to add an input field seems pretty rough though. This works just fine, but I'm worried because if the user installs some other module that wants to use the same file and it corrupts or Prestashop's new version changes the file and it doesn't support the new version anymore. In every way that feels like a dirty solution to the problem. Is there a way to override just a part of the file and maybe directly from the module folder? Is there any better way to do this? How do you do this? Edited May 8, 2015 by Numsu (see edit history) Link to comment Share on other sites More sharing options...
PascalVG Posted May 9, 2015 Share Posted May 9, 2015 Nemo1 wrote something about it. Not sure if it answers your question: http://nemops.com/override-prestashop-modules-core/#.VU3k3NOqqko Otherwise contact him and continue the discussion :-) My 2 cents, pascal. Link to comment Share on other sites More sharing options...
Numsu Posted May 11, 2015 Author Share Posted May 11, 2015 Nemo1 wrote something about it. Not sure if it answers your question: http://nemops.com/override-prestashop-modules-core/#.VU3k3NOqqko Otherwise contact him and continue the discussion :-) My 2 cents, pascal. Hi pascal! Than you for your response, but that describes how to override modules' core files, but the question I had was about overriding Prestashop's own core template (.tpl) files. Link to comment Share on other sites More sharing options...
PascalVG Posted May 11, 2015 Share Posted May 11, 2015 Hi Numsu, Sorry, didn't read well enough. PrestaShop makes use of Smarty. Since Smarty 3, there is a possibility to override parts of a template, using "Smarty Inheritance". In short, you can define blocks of code, name them and then replace these blocks of code in an 'extended' version of the original file. See te link for more detail. PrestaShop only sparingly makes use of this as yet, and sometimes in a way that hardly made much sense to me for now, as I saw them use it by surrounding the full tpl contents by the {block} .. {/block} tags. Maybe to get the option to extend the same file in different ways or so... Any way, most of the core files don't use these {block} tags as yet, so this will not be an option for now. I don't see much other ways than just override them in full for now, pascal. Link to comment Share on other sites More sharing options...
Hessam Posted September 26, 2018 Share Posted September 26, 2018 On 5/11/2015 at 8:06 PM, PascalVG said: Hi Numsu, Sorry, didn't read well enough. PrestaShop makes use of Smarty. Since Smarty 3, there is a possibility to override parts of a template, using "Smarty Inheritance". In short, you can define blocks of code, name them and then replace these blocks of code in an 'extended' version of the original file. See te link for more detail. PrestaShop only sparingly makes use of this as yet, and sometimes in a way that hardly made much sense to me for now, as I saw them use it by surrounding the full tpl contents by the {block} .. {/block} tags. Maybe to get the option to extend the same file in different ways or so... Any way, most of the core files don't use these {block} tags as yet, so this will not be an option for now. I don't see much other ways than just override them in full for now, pascal. Hi PascalVG, thanks for your explanation. This is Ok when our module wants to use a template file. But what if (think about that) a template file (core template file) is used by a core class/controller. What if we want to modify a core template file which is used by core functionality. E.g: CustomerForm.php uses customer-form.tpl, and we want to override the customer-form.tpl by a module I think it is not possible at all! 1 Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now