Blame | Last modification | View Log | RSS feed
<?php/**************************************************************************** Copyright (C) 2009-2011 by Geo Varghese(www.seopanel.in) ** sendtogeo@gmail.com ** ** This program is free software; you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by ** the Free Software Foundation; either version 2 of the License, or ** (at your option) any later version. ** ** This program is distributed in the hope that it will be useful, ** but WITHOUT ANY WARRANTY; without even the implied warranty of ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ** GNU General Public License for more details. ** ** You should have received a copy of the GNU General Public License ** along with this program; if not, write to the ** Free Software Foundation, Inc., ** 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ****************************************************************************//*** Class defines all functions for managing website API** @author Seo panel**/class WebsiteAPI extends Seopanel{/*** the main controller to get details for api* @var Object*/var $ctrler;/*** The list contains search engine details* @var Array*/var $seList;/*** The constructor of API*/function __construct() {$this->ctrler = new WebsiteController();$seController = New SearchEngineController();$list = $seController->__getAllSearchEngines();$this->seList = array();// loop through the search engine and assign id as keyforeach ($list as $listInfo) {$this->seList[$listInfo['id']] = $listInfo;}include_once(SP_CTRLPATH."/saturationchecker.ctrl.php");include_once(SP_CTRLPATH."/rank.ctrl.php");include_once(SP_CTRLPATH."/backlink.ctrl.php");include_once(SP_CTRLPATH."/directory.ctrl.php");include_once(SP_CTRLPATH."/keyword.ctrl.php");include_once(SP_CTRLPATH."/pagespeed.ctrl.php");}/*** function to get website reports rank, backlinks, saturation and directory submission* @param array $websiteInfo The information about website* @param int $fromTime The time stamp of from time* @param int $toTime The time stamp of to time* @return $websiteInfo The formatted website info with position details*/function getFormattedReport($websiteInfo, $fromTime, $toTime) {// create required controllers$rankCtrler = New RankController();$backlinlCtrler = New BacklinkController();$saturationCtrler = New SaturationCheckerController();$dirCtrler = New DirectoryController();$pagespeedCtrler = New PageSpeedController();// rank reports$report = $rankCtrler->__getWebsiteRankReport($websiteInfo['id'], $fromTime, $toTime);$report = $report[0];$toTimeDate = date('Y-m-d', $toTime);$websiteInfo['alexa']['alexarank']['rank'] = empty($report['alexa_rank']) ? "-" : $report['alexa_rank'];$websiteInfo['alexa']['alexarank']['diff'] = removeBraces($report['rank_diff_alexa']);$websiteInfo['alexa']['alexarank']['date'] = $toTimeDate;$websiteInfo['moz']['pagerank']['rank'] = empty($report['moz_rank']) ? "-" : $report['moz_rank'];$websiteInfo['moz']['pagerank']['diff'] = removeBraces($report['rank_diff_moz']);$websiteInfo['noz']['pagerank']['date'] = $toTimeDate;// back links reports$report = $backlinlCtrler->__getWebsitebacklinkReport($websiteInfo['id'], $fromTime, $toTime);$report = $report[0];$websiteInfo['google']['backlinks']['rank'] = empty($report['google']) ? "-" : $report['google'];$websiteInfo['google']['backlinks']['diff'] = $report['rank_diff_google'];$websiteInfo['google']['backlinks']['date'] = $toTimeDate;$websiteInfo['alexa']['backlinks']['rank'] = empty($report['alexa']) ? "-" : $report['alexa'];$websiteInfo['alexa']['backlinks']['diff'] = $report['rank_diff_alexa'];$websiteInfo['alexa']['backlinks']['date'] = $toTimeDate;$websiteInfo['bing']['backlinks']['rank'] = empty($report['msn']) ? "-" : $report['msn'];$websiteInfo['bing']['backlinks']['diff'] = $report['rank_diff_msn'];$websiteInfo['bing']['backlinks']['date'] = $toTimeDate;// saturaton rank reports$report = $saturationCtrler->__getWebsiteSaturationReport($websiteInfo['id'], $fromTime, $toTime);$report = $report[0];$websiteInfo['google']['indexed']['rank'] = empty($report['google']) ? "-" : $report['google'];$websiteInfo['google']['indexed']['diff'] = $report['rank_diff_google'];$websiteInfo['google']['indexed']['date'] = $toTimeDate;$websiteInfo['bing']['indexed']['rank'] = empty($report['msn']) ? "-" : $report['msn'];$websiteInfo['bing']['indexed']['diff'] = $report['rank_diff_msn'];$websiteInfo['bing']['indexed']['date'] = $toTimeDate;// directory submission stats$websiteInfo['dirsub']['total'] = $dirCtrler->__getTotalSubmitInfo($websiteInfo['id']);$websiteInfo['dirsub']['active'] = $dirCtrler->__getTotalSubmitInfo($websiteInfo['id'], true);$websiteInfo['dirsub']['date'] = $toTimeDate;// pagespeed reports$report = $pagespeedCtrler->__getWebsitePageSpeedReport($websiteInfo['id'], $fromTime, $toTime);$report = $report[0];$websiteInfo['google']['pagespeed']['desktop_speed'] = empty($report['desktop_speed_score']) ? "-" : $report['desktop_speed_score'];$websiteInfo['google']['pagespeed']['ds_diff'] = empty($report['rank_diff_desktop_speed_score']) ? "-" : $report['rank_diff_desktop_speed_score'];$websiteInfo['google']['pagespeed']['mobile_speed'] = empty($report['mobile_speed_score']) ? "-" : $report['mobile_speed_score'];$websiteInfo['google']['pagespeed']['ms_diff'] = empty($report['rank_diff_mobile_speed_score']) ? "-" : $report['rank_diff_mobile_speed_score'];$websiteInfo['google']['pagespeed']['mobile_usability'] = empty($report['mobile_usability_score']) ? "-" : $report['mobile_usability_score'];$websiteInfo['google']['pagespeed']['mu_diff'] = empty($report['rank_diff_mobile_usability_score']) ? "-" : $report['rank_diff_mobile_usability_score'];$websiteInfo['google']['pagespeed']['date'] = $toTimeDate;return $websiteInfo;}/*** function to get website report using website id* @param Array $info The input details to process the api* $info['id'] The id of the website - Mandatory* $info['from_time'] The from time of report in (yyyy-mm-dd) Eg: 2014-12-24 - Optional - (default => Yesterday)* $info['to_time'] The to time of report in (yyyy-mm-dd) Eg: 2014-12-28 - Optional - (default => Today)* @return Array $returnInfo Contains informations about website reports*/function getReportById($info) {$fromTime = getFromTime($info);$toTime = getToTime($info);$websiteInfo = $this->ctrler->__getWebsiteInfo($info['id']);// if website not existsif (empty($websiteInfo['id'])) {$returnInfo['response'] = 'Error';$returnInfo['error_msg'] = "The invalid website id provided";} else {$returnInfo['response'] = 'success';$returnInfo['result'] = $this->getFormattedReport($websiteInfo, $fromTime, $toTime);}return $returnInfo;}/*** function to get website report using user id* @param Array $info The input details to process the api* $info['id'] The id of the user - Mandatory* $info['from_time'] The from time of report in (yyyy-mm-dd) Eg: 2014-12-24 - Optional - (default => Yesterday)* $info['to_time'] The to time of report in (yyyy-mm-dd) Eg: 2014-12-28 - Optional - (default => Today)* @return Array $returnInfo Contains informations about website reports*/function getReportByUserId($info) {// if not valid user$userId = intval($info['id']);if (empty($userId)) {return array('response' => 'Error','result' => 'Invalid user id');}// get all active websites$wbList = $this->ctrler->__getAllWebsites($userId);$fromTime = getFromTime($info);$toTime = getToTime($info);// loop through websites$websiteList = array();foreach ($wbList as $websiteInfo) {$websiteList[$websiteInfo['id']] = $this->getFormattedReport($websiteInfo, $fromTime, $toTime);}// if position information is not emptyif (empty($websiteList)) {$returnInfo['response'] = 'Error';$returnInfo['result'] = "No reports found!";} else {$returnInfo['response'] = 'success';$returnInfo['result'] = $websiteList;}return $returnInfo;}/*** function to get website information* @param Array $info The input details to process the api* $info['id'] The id of the website - Mandatory* @return Array $returnInfo Contains informations about website*/function getWebsiteInfo($info) {$websiteId = intval($info['id']);$returnInfo = array();// validate the website ifd and website infoif (!empty($websiteId)) {if ($websiteInfo = $this->ctrler->__getWebsiteInfo($websiteId)) {$returnInfo['response'] = 'success';$returnInfo['result'] = $websiteInfo;return $returnInfo;}}$returnInfo['response'] = 'Error';$returnInfo['error_msg'] = "The invalid website id provided";return $returnInfo;}/*** function to get user websites* @param Array $info The input details to process the api* $info['id'] The id of the user - Mandatory* $info['status'] The status of the websites[0/1]* $info['search'] The search keyword* @return Array $returnInfo Contains informations about website*/function getUserWebsites($info) {$userId = intval($info['id']);$returnInfo = array();// validate the website ifd and website infoif (!empty($userId)) {$websiteList = $this->ctrler->__getUserWebsites($userId, $info);$returnInfo['response'] = 'success';$returnInfo['result'] = $websiteList;return $returnInfo;}$returnInfo['response'] = 'Error';$returnInfo['error_msg'] = "The invalid user id provided";return $returnInfo;}/*** function to create website* @param Array $info The input details to process the api* $info['name'] The name of the website - Mandatory* $info['url'] The url of the website - Mandatory* $info['user_id'] The user id of website - Mandatory* $info['title'] The title of the website - Optional* $info['description'] The description of website - Optional* $info['keywords'] The keyword of the website - Optional* $info['status'] The status of the website - default[1] - Optional* @return Array $returnInfo Contains details about the operation succes or not*/function createWebsite($info) {$websiteInfo = $info;// check for user idif (empty($info['user_id'])) {$returnInfo['response'] = 'Error';$returnInfo['error_msg'] = 'Invalid user id';return $returnInfo;}$websiteInfo['userid'] = $info['user_id'];$this->ctrler->spTextWeb = $this->ctrler->getLanguageTexts('website', SP_API_LANG_CODE);$return = $this->ctrler->createWebsite($websiteInfo, true);// if website creation is successif ($return[0] == 'success') {$returnInfo['response'] = 'success';$returnInfo['result'] = $return[1];$returnInfo['website_id'] = $this->ctrler->db->getMaxId('websites');} else {$returnInfo['response'] = 'Error';$returnInfo['error_msg'] = $return[1];}return $returnInfo;}/*** function to update website* @param Array $info The input details to process the api* $info['id'] The id of the website - Mandatory* $info['name'] The name of the website - Optional* $info['url'] The url of the website - Optional* $info['title'] The title of the website - Optional* $info['description'] The description of website - Optional* $info['keywords'] The keyword of the website - Optional* $info['user_id'] The user id of website - Optional* $info['status'] The status of the website - default[1] - Optional* @return Array $returnInfo Contains details about the operation succes or not*/function updateWebsite($info) {$websiteId = intval($info['id']);// if website existsif ($websiteInfo = $this->ctrler->__getWebsiteInfo($websiteId)) {$websiteInfo['oldName'] = $websiteInfo['name'];// loop through inputsforeach ($info as $key => $val) {$websiteInfo[$key] = $val;}// update website call as api call$this->ctrler->spTextWeb = $this->ctrler->getLanguageTexts('website', SP_API_LANG_CODE);$return = $this->ctrler->updateWebsite($websiteInfo, true);// if website creation is successif ($return[0] == 'success') {$returnInfo['response'] = 'success';$returnInfo['result'] = $return[1];} else {$returnInfo['response'] = 'Error';$returnInfo['error_msg'] = $return[1];}} else {$returnInfo['response'] = 'Error';$returnInfo['error_msg'] = "The invalid website id provided";}return $returnInfo;}/*** function to delete website* @param Array $info The input details to process the api* $info['id'] The id of the website - Mandatory* @return Array $returnInfo Contains details about the operation success or not*/function deleteWebsite($info) {$websiteId = intval($info['id']);// if website existsif ($websiteInfo = $this->ctrler->__getWebsiteInfo($websiteId)) {$this->ctrler->__deleteWebsite($websiteId);$returnInfo['response'] = 'success';$returnInfo['result'] = "Successfully deleted website and related data.";} else {$returnInfo['response'] = 'Error';$returnInfo['error_msg'] = "The invalid website id provided";}return $returnInfo;}}?>