Merge pull request #858 from shreesh-webkul/gli-1542
Update: Recommendation section update process
This commit is contained in:
@@ -3437,14 +3437,9 @@ exit;
|
||||
$post_data .= '&method=listing&action=install-modules';
|
||||
$post_data .= defined('_PS_HOST_MODE_') ? '-od' : '';
|
||||
break;
|
||||
case 'catalog-recommendation':
|
||||
$protocols[] = 'http';
|
||||
$post_data .= '&method=content&action=catalogRecommendation';
|
||||
$post_data .= defined('_PS_HOST_MODE_') ? '-od' : '';
|
||||
break;
|
||||
case 'dashboard-recommendation':
|
||||
$protocols[] = 'http';
|
||||
$post_data .= '&method=content&action=dashboardRecommendation';
|
||||
case 'recommendation':
|
||||
$post_data .= '&method=recommendation&controller=';
|
||||
$post_data .= (isset($params['controller']) ? $params['controller'] : Context::getContext()->controller->controller_name);
|
||||
$post_data .= defined('_PS_HOST_MODE_') ? '-od' : '';
|
||||
break;
|
||||
case 'check-version':
|
||||
|
||||
@@ -409,6 +409,9 @@ class AdminControllerCore extends Controller
|
||||
const QLO_SEARCH_TYPE_MODULE = 7;
|
||||
const QLO_SEARCH_TYPE_HOTEL = 8;
|
||||
|
||||
/** @var string path for recomendation content */
|
||||
const RECOMMENDATION_CONTENT_FILE_PATH = '';
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
global $timer_start;
|
||||
@@ -3989,17 +3992,65 @@ class AdminControllerCore extends Controller
|
||||
public function ajaxProcessGetRecommendationContent()
|
||||
{
|
||||
$response = array('success' => false);
|
||||
if (isset($this->context->cookie->{$this->controller_name.'_closed'}) && $this->context->cookie->{$this->controller_name.'_closed'}) {
|
||||
$response['success'] = true;
|
||||
} else {
|
||||
if (method_exists($this, 'getRecommendationContent')) {
|
||||
if ($content = $this->getRecommendationContent()) {
|
||||
$response['success'] = true;
|
||||
$response['content'] = $content;
|
||||
if ($this->context->controller->getRecommendationFilePath()) {
|
||||
$response = $this->getRecommendationContent();
|
||||
}
|
||||
$this->context->cookie->write();
|
||||
$this->ajaxDie(json_encode($response));
|
||||
}
|
||||
|
||||
public function getRecommendationContent()
|
||||
{
|
||||
$content = array(
|
||||
'success' => false,
|
||||
'cache' => true,
|
||||
'html' => ''
|
||||
);
|
||||
|
||||
if ($recommendationContent = $this->updateRecommendationContent()) {
|
||||
$content['cache'] = false;
|
||||
}
|
||||
if (file_exists(_PS_ROOT_DIR_.$this->context->controller->getRecommendationFilePath())) {
|
||||
$content['success'] = true;
|
||||
if (!isset($this->context->cookie->{$this->controller_name.'_closed'}) || !$this->context->cookie->{$this->controller_name.'_closed'}) {
|
||||
$content['html'] = file_get_contents(_PS_ROOT_DIR_.$this->context->controller->getRecommendationFilePath());
|
||||
}
|
||||
}
|
||||
|
||||
return $content;
|
||||
}
|
||||
|
||||
public function updateRecommendationContent()
|
||||
{
|
||||
if (!Tools::isFresh($this->context->controller->getRecommendationFilePath(), _TIME_1_DAY_, false)) {
|
||||
if ($recommendationContent = Tools::addonsRequest(
|
||||
'recommendation',
|
||||
array('controller' => $this->context->controller->controller_name)
|
||||
)) {
|
||||
$recommendationContent = json_decode($recommendationContent, true);
|
||||
if (!isset($this->context->cookie->{$this->context->controller->controller_name.'_key'})) {
|
||||
$this->context->cookie->{$this->context->controller->controller_name.'_key'} = '';
|
||||
}
|
||||
if ($this->context->cookie->{$this->context->controller->controller_name.'_key'} != $recommendationContent['key']) {
|
||||
unset($this->context->cookie->{$this->context->controller->controller_name.'_closed'});
|
||||
}
|
||||
$this->context->cookie->{$this->context->controller->controller_name.'_key'} = $recommendationContent['key'];
|
||||
if (isset($recommendationContent['success']) && $recommendationContent['success']) {
|
||||
@file_put_contents(
|
||||
_PS_ROOT_DIR_.$this->context->controller->getRecommendationFilePath(),
|
||||
$recommendationContent['html']
|
||||
);
|
||||
} elseif (file_exists(_PS_ROOT_DIR_.$this->context->controller->getRecommendationFilePath())) {
|
||||
unlink(_PS_ROOT_DIR_.$this->context->controller->getRecommendationFilePath());
|
||||
}
|
||||
return $recommendationContent;
|
||||
} else {
|
||||
if (file_exists(_PS_ROOT_DIR_.$this->context->controller->getRecommendationFilePath())) {
|
||||
unlink(_PS_ROOT_DIR_.$this->context->controller->getRecommendationFilePath());
|
||||
}
|
||||
}
|
||||
}
|
||||
$this->ajaxDie(json_encode($response));
|
||||
return false;
|
||||
}
|
||||
|
||||
public function ajaxProcessRecommendationClosed()
|
||||
@@ -4009,6 +4060,11 @@ class AdminControllerCore extends Controller
|
||||
$this->ajaxDie(json_encode($response));
|
||||
}
|
||||
|
||||
public function getRecommendationFilePath()
|
||||
{
|
||||
return static::RECOMMENDATION_CONTENT_FILE_PATH;
|
||||
}
|
||||
|
||||
/**
|
||||
* Save list visible columns
|
||||
*
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
class AdminDashboardControllerCore extends AdminController
|
||||
{
|
||||
|
||||
const DASHBOARD_RECOMMENDATION_CONTENT = '/cache/dashboard_recommendation.html';
|
||||
const RECOMMENDATION_CONTENT_FILE_PATH = '/cache/dashboard_recommendation.html';
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
@@ -502,15 +502,4 @@ class AdminDashboardControllerCore extends AdminController
|
||||
|
||||
die(json_encode($return));
|
||||
}
|
||||
|
||||
public function getRecommendationContent()
|
||||
{
|
||||
if (!Tools::isFresh(self::DASHBOARD_RECOMMENDATION_CONTENT, _TIME_1_DAY_, false)) {
|
||||
@file_put_contents(_PS_ROOT_DIR_.self::DASHBOARD_RECOMMENDATION_CONTENT, Tools::addonsRequest('dashboard-recommendation'));
|
||||
}
|
||||
if (file_exists(_PS_ROOT_DIR_.self::DASHBOARD_RECOMMENDATION_CONTENT)) {
|
||||
return Tools::file_get_contents(_PS_ROOT_DIR_.self::DASHBOARD_RECOMMENDATION_CONTENT);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -23,7 +23,7 @@ class AdminModulesCatalogControllerCore extends AdminController
|
||||
|
||||
public $modules;
|
||||
|
||||
const CATALOG_RECOMMENDATION_CONTENT = '/cache/catalog_recommendation.html';
|
||||
const RECOMMENDATION_CONTENT_FILE_PATH = '/cache/catalog_recommendation.html';
|
||||
|
||||
const ELEMENT_TYPE_MODULE = 1;
|
||||
const ELEMENT_TYPE_THEME = 2;
|
||||
@@ -240,17 +240,6 @@ class AdminModulesCatalogControllerCore extends AdminController
|
||||
);
|
||||
}
|
||||
|
||||
public function getRecommendationContent()
|
||||
{
|
||||
if (!Tools::isFresh(self::CATALOG_RECOMMENDATION_CONTENT, _TIME_1_DAY_, false)) {
|
||||
@file_put_contents(_PS_ROOT_DIR_.self::CATALOG_RECOMMENDATION_CONTENT, Tools::addonsRequest('catalog-recommendation'));
|
||||
}
|
||||
if (file_exists(_PS_ROOT_DIR_.self::CATALOG_RECOMMENDATION_CONTENT)) {
|
||||
return Tools::file_get_contents(_PS_ROOT_DIR_.self::CATALOG_RECOMMENDATION_CONTENT);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public function sortList(&$list, $type)
|
||||
{
|
||||
|
||||
|
||||
@@ -1700,9 +1700,9 @@ function loadRecommendation()
|
||||
token: token
|
||||
},
|
||||
success: function(res) {
|
||||
if (res.success && res.content && res.content.trim()) {
|
||||
if (res.success && res.html && res.html.trim()) {
|
||||
$('#recommendation-wrapper-skeleton').fadeIn('slow');
|
||||
$('#recommendation-wrapper').html(res.content);
|
||||
$('#recommendation-wrapper').html(res.html);
|
||||
let images = $('#recommendation-wrapper img');
|
||||
let loaded = 0;
|
||||
let total = $(images).length;
|
||||
|
||||
Reference in New Issue
Block a user