I'm using prestashop 1.6 and one module is not editable in SEO&URL, to change is meta.
Actually, i have the default pretashop meta title.
How can i add a custom header.tpl for this module ?
Thank you for your help
Tony
Assuming you are talking about a module with a controller,
you can add in the base file /modules/mymodule/mymodule.php,
inside the method __construct(),
a object like this $this->controllers = array('controller_file_name');, where the controller_file_name is the file which generate the page in the front office.
Once made this, you will need to re-install the module and this added object will generate a new page in the SEO&URL where you could change all the metas (title, description and keywords).
You can see some examples of this modules in the bankwire, cheque and blocknewsletter.
Related
I have added one module custom html box in PrestaShop 1.7 . Module is installed but you can use it only once .can i create multiple list of htmlbox?
This depend on the module, but if you are using htmlbox module, yes, the free version is programmed to only be used 1 time in 1 place.
But there are two options to do this without any developed module.
1st option:
You have the option to include these html code directly in the tpl of the activated theme.
In prestashop 1.7 version we have a new feature that, if you are in mode developer ("Advanced parameter" -> "Performance"), in the html you can see in what template is located any element.
For example, to add a code above the slider of the home page, if you inspect the element you can see this:
In the "begin" tag you have the template that you need to modify.
2nd option:
You can create a new module and use the display hooks correctly.
Here you have all that you need to know about the creation of modules.
http://developers.prestashop.com/module/05-CreatingAPrestaShop17Module/
I have bought leo_chopin theme (because client asked for it). My question is how to customize a theme from html/php/css editor and not from admin panel (it's too constricting). I wouldn't hardcode, but use hooks. This is the first time I'm using Prestashop and that style of programing... For example, where to call my own header.tpl, footer.tpl, content.tpl?
Thank you in advance for your help.
Go to your_site_folder/themes/leo_chopin/ and you will find header.tpl, footer.tpl.
You can modify these templates there or make a copy of a theme into another folder and modify it.
All content between header and footer depends on a page controller. All controllers for the front are in a folder your_site_folder/controllers/front/. ProductController.php is for product pages, CategoryController.php is for category pages, IndexController.php is for the home page etc.
You can find more in Prestashop documentation: http://doc.prestashop.com/display/PS16/Laying+the+Theme's+Foundations.
I would like to show a form in prestashop module and would like to store that value in database. How is it possible?? Is there any prestashop expert ??
You may use custom HTML block and add your form code inside that. And off course have to use a hook to show up that HTML block in the site.
There are lots of free Custom HTML block modules available.
You should take a look at all the modules available in the modules/ directory.
If you want to display a form in the back and/or the front office, you'll have to override different methods of the Module class, and you'll have to use the different hooks available..
Best regards,
Try this free module :
https://www.prestashop.com/forums/topic/391966-megablock-16-module-gratuit/
With this one you can add HTML in some hooks from back-office.
Everything is stored in database.
You should use Helpers and Tools class (Helpers show forms and Tools::getValues() does what it says...)
In MegaBlock there is also TinyMCE available. Have a look, this module is really useful ;-)
you can develop a module by using hooks based on the hooks used the form will be displayed in that position in prestashop while using hooks you need to assign a tpl file in that tpl file you can write the codings to display a form
And also you can develop a module with a separate controller and you can assign a tpl for that controller.
I try to modify a module template in prestashop so I've copied the module to my theme folder "modules".
I've noticed that the theme is changing the only problem is that the translation is not. I got the original text on the final shop template. Is there some simple way of making this work?
I don't know how to make modules so this way was great except the translation part - the rest of the store is translated except those modules. I use prestashop 1.4.
In your Back Office, you need to edit the Module Translations under Tools > Translations > Modify Translations. They are translated separately from the Front Office and Back Office translations, just select "Modules" from the drop-down menu.
Make sure your module can be translated also :
{l s='Login' mod='blockuserinfo'}
The name of the module has to be here,
also make sure to check the prestashop user guide :
http://doc.prestashop.com/display/PS15/Translations+in+PrestaShop+1.5
I have a component with several categories of games and I want to display a different banner depending on the category. I need the banner (and link) to be customizable so it's not simply a case of showing categoryX.jpg or whatever.
I saw this Joomla help page on another question, but it only seems to display a module type, not one specific module. I'd like to use various mod_custom modules and display the one appropriate to the category (I can store each module's ID if necessary).
Any ideas?
This can be done in a 2 step process:
Use the "Load module into article" plugin to allow yourself to access the module using a plugin call like:
{module [*mod_id*]} // where *mod_id* is the module id
Now that you can call a plugin to put your module anywhere, you now need to go to the view code of your/a component you wish to add the module to and add this code:
echo JHTML::_('content.prepare', '{module [*mod_id*]}');
Please see this link - http://www.alltogetherasawhole.org/group/developers/forum/topics/running-joomla-content-plugins - regarding point number 2. I was trying to do the same thing and I found it didn't work, and the reason for this was a comment you can find on the page link above:
"I noticed that some plugin actually expect option=com_content for them to process onPrepareContent properly, so you might actually want to "fool" them by callin JRequet::setVar and restoring the correct values after the trigger."
If you would like to show module within PHP code then use this code, it's worked for me :
<?php echo JHTML::_('content.prepare', '{loadposition position-2}'); ?>
If you want to show module inside html content then just put this code where you want to show module.
{loadposition position-2}
It loads all modules which are assigned to position-2.
You can also use the Joomla Module Renderer
$doc = JFactory::getDocument();
$renderer = $doc->loadRenderer('modules');
$position = 'custom_position_name';
$options = array('style' => 'raw');
echo $renderer->render($position, $options, null);
Just a heads up, Along with being assigned the module position, that module also has to be set to "Display on All pages".
Joomla has this functionality built in. You can use the {loadposition XX} command within your content items. You can specify custom module positions that do not appear in your template to insure that you have the correct module in the correct article.
http://docs.joomla.org/How_do_you_put_a_module_inside_an_article%3F
You could create a new module?
If each category appears in the querystring (catid=X) then you could take a similar approach to https://support.pillwax.com/open-source/doku.php?id=joomla:header_image.
Alternatively, that link might actually do it for you.