Prestashop missing hooks listed in the doc - prestashop

I use "Prestashop 1.7.2.3".
If I look in the doc of Prestashop 1.7 in the hook section.
It lists those hooks:
'displayCheckoutSubtotalDetails' and 'displayCheckoutSummaryTop'.
Now if I do a search for "Hook::exec('displayCheckout" in [Prestashop project]/classes or [Prestashop project]/controllers, it does not find '"Hook::exec('displayCheckoutSubtotalDetails')" and "Hook::exec('displayCheckoutSummaryTop')".
I am confused, why are those hooks listed if they don't exist?

Actually it's executed by the theme itself and not in PHP as indicated in the table.
For example native modules/ps_legalcompliance/ps_legalcompliance.php executes hookDisplayCheckoutSummaryTop($param).

Related

PS 1.7 ps_linklist and custom hook

I created a custom hook on PS 1.7. I also created a link list in the ps_linklist addon but I can't find the hook I created in the list. Can anyone help me?
I don't understand the logic with which hooks are displayed in the drop down menu

How to change meta title in prestashop module?

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.

What causes the cart module to not show up on the front-office?

Recently I was doing some integrations on a non-standard/non-official prestashop 1.6 theme.
I found out after some manipulation on the Back-Office that the cart module doesn't appear on the Front-Office.
The cart module is enabled and is hooked to the displayNav and displayTop hooks.
It seems that cart module doesn't render any of its view code even when the "Disable module ovverides" is disabled.
The last and the only thing I've manipulated on the BO config is activating and then deactivating the "Force update friendly url".
Note that the current theme in based on an old theme and was made by an intern that didn't respect the official doc at all. What I mean by that is that you can find inline CSS and Javascript isnide a tpl file with no repsect of the smarty template engine syntax.
The current theme doesn't support many of the hooks that the default and basic prestashop theme offers.
I envisionned the following solution :
Read the 1.6 PS doc and make corrections on the theme. If the number of bugs, problems and mis-uses is not huge.
Rewrite the theme from groung zero in the worst case
After one day of lookin up answers on the web I found out that the catalog mode was off which makes the cart block disapears on the front-office.

i am adding custom html free version in my prestashop 1.7

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/

How can I display Joomla modules within a component?

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.