80 lines
3.3 KiB
PHP
80 lines
3.3 KiB
PHP
<?php
|
|
/**
|
|
* Page Cache Ultimate, Page Cache standard and Speed pack are powered by Jpresta (jpresta . com)
|
|
*
|
|
* @author Jpresta
|
|
* @copyright Jpresta
|
|
* @license See the license of this module in file LICENSE.txt, thank you.
|
|
*/
|
|
|
|
if (!defined('_PS_VERSION_')) {
|
|
exit;
|
|
}
|
|
|
|
/**
|
|
* Implements getJprestaModelObjectClassName() and getJprestaModelObjectId() to enable the HTML cache provided by the
|
|
* module Page Cache Ultimate created by jpresta.com
|
|
*/
|
|
class HiFaqFaqDetailsModuleFrontControllerOverride extends HiFaqFaqDetailsModuleFrontController
|
|
{
|
|
/**
|
|
* @return string The ObjectModel class name to be used by Page Cache Ultimate module to refresh the cache of pages generated by this controller
|
|
*/
|
|
public static function getJprestaModelObjectClassName()
|
|
{
|
|
return 'HiFAQItem';
|
|
}
|
|
|
|
/**
|
|
* @return int|null The ID of the current ObjectModel (if any) to be used by Page Cache Ultimate module to refresh the cache of pages generated by this controller
|
|
*/
|
|
public function getJprestaModelObjectId()
|
|
{
|
|
$faq = HiFAQItem::getDetails(Tools::getValue('faq_link_rewrite'));
|
|
if (isset($faq)) {
|
|
return (int) $faq['id_faq'];
|
|
}
|
|
return null;
|
|
}
|
|
|
|
/**
|
|
* List all URLs generated by this controller for the current shop context and the specified language.
|
|
* This is used by the Jresta-Cache-Warmer service to generate the cache of these pages.
|
|
* @param $id_lang int ID of the language
|
|
* @return string[] All URLs to warmup
|
|
*/
|
|
public static function getJprestaAllURLs($id_lang) {
|
|
$urls = [];
|
|
$context = Context::getContext();
|
|
$sql = 'SELECT friendly_url
|
|
FROM `' . _DB_PREFIX_ . 'hifaq` f
|
|
LEFT JOIN `' . _DB_PREFIX_ . 'hifaq_lang` fl ON f.id_faq=fl.id_faq
|
|
LEFT JOIN `' . _DB_PREFIX_ . 'hifaq_shop` fs ON f.id_faq=fs.id_faq
|
|
WHERE f.active=1 AND fl.id_lang=' . (int)$id_lang . ' AND fs.id_shop=' . (int)Shop::getContextShopID();
|
|
$faqs = JPresta\SpeedPack\JprestaUtils::dbSelectRows($sql);
|
|
foreach ($faqs as $faq) {
|
|
if (Configuration::get('PS_REWRITING_SETTINGS')) {
|
|
$urls[] = $context->link->getPageLink('module-hifaq-faqdetails', null, $id_lang, ['faq_link_rewrite' => $faq['friendly_url']]);
|
|
} else {
|
|
$urls[] = $context->link->getModuleLink('hifaq', 'faqdetails', [], null, $id_lang) . '&faq_link_rewrite=' . $faq['friendly_url'];
|
|
}
|
|
}
|
|
return $urls;
|
|
}
|
|
|
|
/**
|
|
* An estimated number of URLs that will be returned by self::getJprestaAllURLs() for the current shop context.
|
|
* Since we don't have the id_lang parameter we recommend to return the number of URLs for the language that have
|
|
* the most URLs.
|
|
* @return int The estimated number of URLs to warmup for the current shop context
|
|
*/
|
|
public static function getJprestaAllURLsCount() {
|
|
$sql = 'SELECT COUNT(*)
|
|
FROM `' . _DB_PREFIX_ . 'hifaq` f
|
|
LEFT JOIN `' . _DB_PREFIX_ . 'hifaq_lang` fl ON f.id_faq=fl.id_faq
|
|
LEFT JOIN `' . _DB_PREFIX_ . 'hifaq_shop` fs ON f.id_faq=fs.id_faq
|
|
WHERE f.active=1 AND fl.id_lang=' . (int)Configuration::get('PS_LANG_DEFAULT') . ' AND fs.id_shop=' . (int)Shop::getContextShopID();
|
|
return (int) JPresta\SpeedPack\JprestaUtils::dbGetValue($sql);
|
|
}
|
|
}
|