private function InstapageCmsPluginAjaxController::loadListPages in Instapage plugin 7.3
Same name and namespace in other branches
- 8.3 core/InstapageCmsPluginAjaxController.php \InstapageCmsPluginAjaxController::loadListPages()
Loads listing page.
1 call to InstapageCmsPluginAjaxController::loadListPages()
- InstapageCmsPluginAjaxController::doAction in core/
InstapageCmsPluginAjaxController.php - Executes an action set in the request.
File
- core/
InstapageCmsPluginAjaxController.php, line 286
Class
- InstapageCmsPluginAjaxController
- Main controller for AJAX actions. Results are returned as encoded JSON objects. Data for actions are stored in $_POST['data'] table.
Code
private function loadListPages() {
$requestLimit = 100;
$post = InstapageCmsPluginHelper::getPostData();
$page = InstapageCmsPluginPageModel::getInstance();
InstapageCmsPluginHelper::writeDiagnostics($post, 'List page POST');
$api = InstapageCmsPluginAPIModel::getInstance();
$subaccount = InstapageCmsPluginSubaccountModel::getInstance();
$localPagesArray = $page
->getAll(array(
'id',
'instapage_id',
'slug',
'type',
'stats_cache',
'enterprise_url',
));
// WP Legacy code - automatic migration.
$automaticMigration = InstapageCmsPluginHelper::getMetadata('automatic_migration', false);
if (empty($automaticMigration) && !count($localPagesArray) && InstapageCmsPluginConnector::isWP() && InstapageCmsPluginConnector::getSelectedConnector()
->legacyArePagesPresent()) {
$data = InstapageCmsPluginConnector::getSelectedConnector()
->getDeprecatedData();
$page = InstapageCmsPluginPageModel::getInstance();
$page
->migrateDeprecatedData($data);
$localPagesArray = $page
->getAll(array(
'id',
'instapage_id',
'slug',
'type',
'stats_cache',
'enterprise_url',
));
InstapageCmsPluginHelper::updateMetadata('automatic_migration', time());
}
$pages = array();
foreach ($localPagesArray as &$pageObject) {
$pageObject->stats_cache = json_decode($pageObject->stats_cache);
$pages[] = $pageObject->instapage_id;
}
$tokens = isset($post->apiTokens) ? $post->apiTokens : false;
if (!$tokens) {
$tokens = $subaccount
->getAllTokens();
}
if (!count($tokens)) {
echo json_encode((object) array(
'status' => 'OK',
'html' => InstapageCmsPluginHelper::loadTemplate('listing', false),
'initialData' => $localPagesArray,
));
return true;
}
$headers = array(
'accountkeys' => InstapageCmsPluginHelper::getAuthHeader($tokens),
);
$responses = array();
for ($i = 0; $i * $requestLimit < count($pages); ++$i) {
$dataSlice = array_slice($pages, $i * $requestLimit, $requestLimit);
$data = array(
'pages' => $dataSlice,
);
$responseJson = $api
->apiCall('page/list', $data, $headers, 'GET');
$response = json_decode($responseJson);
if (InstapageCmsPluginHelper::checkResponse($response) && isset($response->data) && is_array($response->data)) {
$responses[] = $response->data;
}
else {
return false;
}
}
$mergedResponse = array();
foreach ($responses as $r) {
$mergedResponse = array_merge($mergedResponse, $r);
}
$page
->mergeListPagesResults($localPagesArray, $mergedResponse);
InstapageCmsPluginHelper::writeDiagnostics($localPagesArray, 'List page array');
echo json_encode((object) array(
'status' => 'OK',
'html' => InstapageCmsPluginHelper::loadTemplate('listing', false),
'initialData' => $localPagesArray,
));
}