public function InstapageCmsPluginPageModel::publishPage in Instapage plugin 8.3
Same name and namespace in other branches
- 7.3 core/models/InstapageCmsPluginPageModel.php \InstapageCmsPluginPageModel::publishPage()
Sends a request to publish a page in Instapage app.
Parameters
object $data Page object.:
Return value
string JSON object with API response.
File
- core/
models/ InstapageCmsPluginPageModel.php, line 188
Class
- InstapageCmsPluginPageModel
- Class responsible for managing the landing pages.
Code
public function publishPage($data) {
$api = InstapageCmsPluginAPIModel::getInstance();
$subaccount = InstapageCmsPluginSubaccountModel::getInstance();
$url = $data->slug ? InstapageCmsPluginConnector::getHomeURL() . '/' . $data->slug : InstapageCmsPluginConnector::getHomeURL();
$url = InstapageCmsPluginHelper::prepareUrlForUpdate($url);
$tokens = isset($data->apiTokens) ? $data->apiTokens : false;
$success = true;
if (!$tokens) {
$tokens = $subaccount
->getAllTokens();
}
$oldPageId = isset($data->id) ? $data->id : null;
$newInstapageId = isset($data->landingPageId) ? $data->landingPageId : null;
if ($oldPageId) {
$oldPage = $this
->get($oldPageId, array(
'instapage_id',
));
if ($oldPage->instapage_id != $newInstapageId) {
$apiData = array(
'page' => $oldPage->instapage_id,
'url' => '',
'publish' => 0,
);
$headers = array(
'accountkeys' => InstapageCmsPluginHelper::getAuthHeader($tokens),
);
$responseJson = $api
->apiCall('page/edit', $apiData, $headers);
$response = json_decode($responseJson);
if (!InstapageCmsPluginHelper::checkResponse($response, null, false) || !$response->success) {
$success = false;
}
}
}
if ($success) {
$apiData = array(
'page' => $data->landingPageId,
'url' => $url,
'publish' => 1,
);
$headers = array(
'accountkeys' => InstapageCmsPluginHelper::getAuthHeader($tokens),
);
$responseJson = $api
->apiCall('page/edit', $apiData, $headers);
$response = json_decode($responseJson);
}
if (!$success || !InstapageCmsPluginHelper::checkResponse($response, null, false) || !$response->success) {
if (isset($response->message) && $response->message !== '') {
return InstapageCmsPluginHelper::formatJsonMessage(InstapageCmsPluginConnector::lang($response->message), 'ERROR');
}
else {
return InstapageCmsPluginHelper::formatJsonMessage(InstapageCmsPluginConnector::lang('There was an error during page update process.'), 'ERROR');
}
return false;
}
$updatedId = $this
->update($data);
if ($updatedId) {
return json_encode((object) array(
'status' => 'OK',
'message' => InstapageCmsPluginConnector::lang('Page updated successfully.'),
'updatedId' => $updatedId,
));
}
else {
return InstapageCmsPluginHelper::formatJsonMessage(InstapageCmsPluginConnector::lang('There was a database error during page update process.'), 'ERROR');
}
}