403Webshell
Server IP : 103.234.187.230  /  Your IP : 216.73.216.216
Web Server : Apache
System : Linux lserver42043-ind.megavelocity.net 3.10.0-1160.108.1.el7.x86_64 #1 SMP Thu Jan 25 16:17:31 UTC 2024 x86_64
User : apache ( 48)
PHP Version : 7.4.33
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : ON  |  Pkexec : ON
Directory :  /var/www/html/b2bzend/application/controllers/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /var/www/html/b2bzend/application/controllers/FacebookLeadController.php
<?php

class FacebookLeadController extends Catabatic_ValidateGtx {

    public $AgencySysId;
    public $IsAutoProposalOnFBLead;
    public $fModel;
    public $getSiteUrl;

    public function init() {
        parent::init();
        $this->AgencySysId = Travel_Model_AgencyAuth::getIdentity()->AgencySysId;
        $this->IsAutoProposalOnFBLead = Travel_Model_AgencyAuth::getIdentity()->IsAutoProposalOnFBLead;
        $this->fModel = new Finance_Model_Finance();
        $this->getSiteUrl = Catabatic_Helper::getSiteUrl();
    }

    public function whatsAppAction() {
        $getCheckAccessTokenArr = $this->fModel->getCheckWAAccessToken($this->AgencySysId);
        $scope = "public_profile,email,whatsapp_business_management,whatsapp_business_messaging";
        $facebookSubmitURL = "https://www.facebook.com/v15.0/dialog/oauth?response_type=code&client_id=857744605657973&redirect_uri=" . $this->getSiteUrl . "facebook-lead/get-access-key-whats-app&state=87587289237984732&scope=$scope";
        if (!empty($getCheckAccessTokenArr)) {
            $getCheckAccessToken = isset($getCheckAccessTokenArr[0]['AccessToken']) ? trim($getCheckAccessTokenArr[0]['AccessToken']) : '';
            if ($getCheckAccessToken != '') {
                $resultSet = $this->WAExchangeToken($getCheckAccessToken);
                if (isset($resultSet)) {
                    $resultArray = json_decode($resultSet, true);
                    if (!empty($resultArray)) {
                        $fbexchangeToken = isset($resultArray['access_token']) ? trim($resultArray['access_token']) : '';
                        if ($fbexchangeToken != '') {
                            $accessTokenArray = array(
                                "WBExchangeToken" => $fbexchangeToken
                            );
                            $where = array("AgencySysId = (?)" => $this->AgencySysId);
                            $this->fModel->updateTable("TB_Agency_Marketing_WhatsApp_AccessToken", $accessTokenArray, $where);
                            #$accessTokenSysId = isset($getCheckAccessTokenArr[0]['FBAccessTokenSysId']) ? trim($getCheckAccessTokenArr[0]['FBAccessTokenSysId']) : '';
                            $url = $this->getSiteUrl . "facebook-lead/update-whatsapp-details";
                            header("Location:$url");
                            exit;
                        } else {
                            header("Location:$facebookSubmitURL");
                            exit;
                        }
                    } else {
                        header("Location:$facebookSubmitURL");
                        exit;
                    }
                } else {
                    header("Location:$facebookSubmitURL");
                    exit;
                }
            } else {
                header("Location:$facebookSubmitURL");
                exit;
            }
        } else {
            header("Location:$facebookSubmitURL");
            exit;
        }
    }

    public function WAExchangeToken($accessToken) {
        $fbExchangeTokenUrl = "https://graph.facebook.com/v15.0/oauth/access_token?grant_type=fb_exchange_token&client_id=857744605657973&client_secret=ad9bcb105ebab0d634cd9c90e6f304d6&fb_exchange_token=$accessToken";
        $fbExchangeTokenArray = $this->sendRequest($fbExchangeTokenUrl);
        return $fbExchangeTokenArray;
    }

    public function getAccessKeyWhatsAppAction() {
        if (isset($_REQUEST) && (isset($_REQUEST['code']) && $_REQUEST['code'] != "")) {
            $accessCode = $_REQUEST['code'];
            $this->view->pageName = array();
            $url = "https://graph.facebook.com/v15.0/oauth/access_token?code=$accessCode&client_id=857744605657973&redirect_uri=" . $this->getSiteUrl . "facebook-lead/get-access-key-whats-app&client_secret=ad9bcb105ebab0d634cd9c90e6f304d6";
            $reponseVal = $this->sendRequest($url);
            if (isset($reponseVal) && $reponseVal != '') {
                $acccessTokenArray = json_decode($reponseVal, true);
                if (isset($acccessTokenArray) && !empty($acccessTokenArray)) {
                    $accessToken = isset($acccessTokenArray['access_token']) ? $acccessTokenArray['access_token'] : '';
                    $accessTokenType = isset($acccessTokenArray['token_type']) ? $acccessTokenArray['token_type'] : '';
                    if ($accessToken != '') {
                        try {
                            $getCheckAccessTokenArr = $this->fModel->getCheckWAAccessToken($this->AgencySysId);
                            if (!empty($getCheckAccessTokenArr)) {
                                $accessTokenSysId = isset($getCheckAccessTokenArr[0]['WAAccessTokenSysId']) ? $getCheckAccessTokenArr[0]['WAAccessTokenSysId'] : 0;
                                $accessTokenArrayUpdate = array(
                                    "AccessToken" => $accessToken,
                                    "WBExchangeToken" => $accessToken,
                                    "TokenType" => $accessTokenType,
                                    "IsRun" => false,
                                    "IsActive" => true,
                                    "IsMarkForDel" => false
                                );
                                $where = array("AgencySysId = (?)" => $this->AgencySysId);
                                $this->fModel->updateTable("TB_Agency_Marketing_WhatsApp_AccessToken", $accessTokenArrayUpdate, $where);
                            } else {
                                $accessTokenArray = array(
                                    "AgencySysId" => $this->AgencySysId,
                                    "AccessToken" => $accessToken,
                                    "WBExchangeToken" => $accessToken,
                                    "TokenType" => $accessTokenType,
                                    "IsRun" => false,
                                    "IsActive" => true,
                                    "IsMarkForDel" => false
                                );
                                $accessTokenSysId = $this->fModel->insertTable("TB_Agency_Marketing_WhatsApp_AccessToken", $accessTokenArray);
                            }
                            $url = $this->getSiteUrl . "facebook-lead/update-whatsapp-details";
                            header("Location:$url");
                            exit;
                        } catch (Zend_Exception $e) {
                            echo $error = $e->getMessage();
                            exit;
                        }
                    }
                }
            }
        }
    }

    public function updateWhatsappDetailsAction() {
        $wadetails = $this->fModel->getwhatsappDetails($this->AgencySysId);
        $this->view->Whatsappdetails = $wadetails;
    }

    public function saveWhatsappDetailsAction() {
        $this->_helper->layout->disableLayout();
        $front = Zend_Controller_Front::getInstance();
        $front->setParam('noViewRenderer', true);
        $returnArray = array("status" => false);
        if ($this->getRequest()->isPost()) {
            $getdata = $this->getRequest()->getPost();
            $AgencySysId = $this->AgencySysId;
            $WhatsAppNumberId = !empty($getdata['WhatsAppNumberId']) ? trim($getdata['WhatsAppNumberId']) : null;
            $WhatsAppBusinessId = !empty($getdata['WhatsAppBusinessId']) ? trim($getdata['WhatsAppBusinessId']) : null;
            $WhatsAppAppId = !empty($getdata['WhatsAppAppId']) ? trim($getdata['WhatsAppAppId']) : null;
            $updateData = array(
                'WhatsAppNumberId' => $WhatsAppNumberId,
                'WhatsAppApiType' => 0,
                'FacebookBusinessId' => $WhatsAppBusinessId,
                'FacebookAppId' => $WhatsAppAppId
            );
            $where = array("AgencySysId =?" => $AgencySysId, "IsWhatsApp =?" => 1);
            try {
                $this->fModel->updateTable("TB_Agency_Mapping", $updateData, $where);
                $returnArray = array("status" => true);
            } catch (Zend_Exception $e) {
                $returnArray = array("status" => false);
            }
        }
        echo json_encode($returnArray);
        exit;
    }

//    public function getAccessKeyWhatsAppAction() {
//        if (isset($_REQUEST) && (isset($_REQUEST['code']) && $_REQUEST['code'] != "")) {
//            $accessCode = $_REQUEST['code'];
//            $this->view->pageName = array();
//            $url = "https://graph.facebook.com/v15.0/oauth/access_token?code=$accessCode&client_id=857744605657973&redirect_uri=" . $this->getSiteUrl . "facebook-lead/get-access-key-whats-app&client_secret=ad9bcb105ebab0d634cd9c90e6f304d6";
//            $reponseVal = $this->sendRequest($url);
//            echo "<pre>";
//            print_r($reponseVal);
//            exit;
//        }
//        echo "<pre>";
//        print_r($_REQUEST);
//        exit;
//    }

    public function indexAction() {
        $getCheckAccessTokenArr = $this->fModel->getCheckFBAccessToken($this->AgencySysId);
        $scope = "public_profile,email,pages_show_list,pages_manage_ads,leads_retrieval,pages_manage_cta";
        //$scope = "public_profile,email,pages_show_list,pages_manage_ads,leads_retrieval,pages_manage_cta,pages_read_engagement";
        $facebookSubmitURL = "https://www.facebook.com/v15.0/dialog/oauth?response_type=code&client_id=2032473587063611&redirect_uri=" . $this->getSiteUrl . "facebook-lead/get-access-key&state=87587289237984732&scope=$scope";
        if (!empty($getCheckAccessTokenArr)) {
            $getCheckAccessToken = isset($getCheckAccessTokenArr[0]['AccessToken']) ? trim($getCheckAccessTokenArr[0]['AccessToken']) : '';
            if ($getCheckAccessToken != '') {
                $resultSet = $this->fbExchangeToken($getCheckAccessToken);
                if (isset($resultSet)) {
                    $resultArray = json_decode($resultSet, true);
                    if (!empty($resultArray)) {
                        $fbexchangeToken = isset($resultArray['access_token']) ? trim($resultArray['access_token']) : '';
                        if ($fbexchangeToken != '') {
                            $accessTokenArray = array(
                                "fbExchangeToken" => $fbexchangeToken
                            );
                            $where = array("AgencySysId = (?)" => $this->AgencySysId);
                            $this->fModel->updateTable("TB_Agency_Marketing_Facebook_AccessToken", $accessTokenArray, $where);
                            $accessTokenSysId = isset($getCheckAccessTokenArr[0]['FBAccessTokenSysId']) ? trim($getCheckAccessTokenArr[0]['FBAccessTokenSysId']) : '';
                            $url = $this->getSiteUrl . "facebook-lead/get-facebook-pages?AccessToken=$fbexchangeToken&AccessTokenSysId=$accessTokenSysId";
                            header("Location:$url");
                            exit;
                        } else {
                            header("Location:$facebookSubmitURL");
                            exit;
                        }
                    } else {
                        header("Location:$facebookSubmitURL");
                        exit;
                    }
                } else {
                    header("Location:$facebookSubmitURL");
                    exit;
                }
            } else {
                header("Location:$facebookSubmitURL");
                exit;
            }
        } else {
            header("Location:$facebookSubmitURL");
            exit;
        }
    }

    public function sendRequest($url) {
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_HEADER, 0);
        if (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] != 'off') {
            curl_setopt($ch, CURLOPT_PORT, 443);
            curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
            curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
        }
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        $output = curl_exec($ch);
        curl_close($ch);
        return $output;
    }

    public function getAccessKeyAction() {
        if (isset($_REQUEST) && (isset($_REQUEST['code']) && $_REQUEST['code'] != "")) {
            $accessCode = $_REQUEST['code'];
            $this->view->pageName = array();
            $url = "https://graph.facebook.com/v15.0/oauth/access_token?code=$accessCode&client_id=2032473587063611&redirect_uri=" . $this->getSiteUrl . "facebook-lead/get-access-key&client_secret=e51d914b4effdf595ef2228d25729b0e";
            $reponseVal = $this->sendRequest($url);
            if (isset($reponseVal) && $reponseVal != '') {
                $acccessTokenArray = json_decode($reponseVal, true);
                if (isset($acccessTokenArray) && !empty($acccessTokenArray)) {
                    $accessToken = isset($acccessTokenArray['access_token']) ? $acccessTokenArray['access_token'] : '';
                    $accessTokenType = isset($acccessTokenArray['token_type']) ? $acccessTokenArray['token_type'] : '';
                    if ($accessToken != '') {
                        try {
                            $getCheckAccessTokenArr = $this->fModel->getCheckFBAccessToken($this->AgencySysId);
                            if (!empty($getCheckAccessTokenArr)) {
                                $accessTokenSysId = isset($getCheckAccessTokenArr[0]['FBAccessTokenSysId']) ? $getCheckAccessTokenArr[0]['FBAccessTokenSysId'] : 0;
                                $accessTokenArrayUpdate = array(
                                    "AccessToken" => $accessToken,
                                    "fbExchangeToken" => $accessToken,
                                    "TokenType" => $accessTokenType,
                                    "IsRun" => false,
                                    "IsActive" => true,
                                    "IsMarkForDel" => false
                                );
                                $where = array("AgencySysId = (?)" => $this->AgencySysId);
                                $this->fModel->updateTable("TB_Agency_Marketing_Facebook_AccessToken", $accessTokenArrayUpdate, $where);
                            } else {
                                $accessTokenArray = array(
                                    "AgencySysId" => $this->AgencySysId,
                                    "AccessToken" => $accessToken,
                                    "fbExchangeToken" => $accessToken,
                                    "TokenType" => $accessTokenType,
                                    "IsRun" => false,
                                    "IsActive" => true,
                                    "IsMarkForDel" => false
                                );
                                $accessTokenSysId = $this->fModel->insertTable("TB_Agency_Marketing_Facebook_AccessToken", $accessTokenArray);
                            }
                            $url = $this->getSiteUrl . "facebook-lead/get-facebook-pages?AccessToken=$accessToken&AccessTokenSysId=$accessTokenSysId";
                            header("Location:$url");
                            exit;
                        } catch (Zend_Exception $e) {
                            $error = $e->getMessage();
                        }
                    }
                }
            }
        }
    }

    public function getFacebookPagesAction() {
        $accessToken = $this->getRequest()->getParam('AccessToken');
        $accessTokenSysId = $this->getRequest()->getParam('AccessTokenSysId');
        $getPagesUrl = "https://graph.facebook.com/v15.0/me/accounts?access_token=$accessToken";
        $reponsePagesArray = $this->sendRequest($getPagesUrl);
//        echo "<pre>";
//        print_r($reponsePagesArray);
//        exit;
        if (isset($reponsePagesArray) && $reponsePagesArray != '') {
            $reponsePagesArrayVal = json_decode($reponsePagesArray, true);
            $reponsePagesArrayValArr = isset($reponsePagesArrayVal['data']) ? $reponsePagesArrayVal['data'] : array();
            if (!empty($reponsePagesArrayValArr) && count($reponsePagesArrayValArr) > 0) {
                for ($fb = 0; $fb < count($reponsePagesArrayValArr); $fb++) {
                    $FBPaageSysId = isset($reponsePagesArrayValArr[$fb]["id"]) ? $reponsePagesArrayValArr[$fb]["id"] : '';
                    if ($FBPaageSysId != "") {
                        $getFaceBookPages = $this->fModel->getCheckFBPages($FBPaageSysId);
                        if (!empty($getFaceBookPages)) {
                            $updatePagesArray = array(
                                "AccessToken" => isset($reponsePagesArrayValArr[$fb]["access_token"]) ? $reponsePagesArrayValArr[$fb]["access_token"] : '',
                                "IsRun" => false,
                                "IsActive" => true,
                                "IsMarkForDel" => false
                            );
                            $where = array("PageID = (?)" => $FBPaageSysId);
                            try {
                                $this->fModel->updateTable("TB_Agency_Marketing_Facebook_Pages", $updatePagesArray, $where);
                            } catch (Zend_Exception $e) {
                                $error = $e->getMessage();
                            }
                        } else {
                            $pagesArray = array(
                                "AgencySysId" => $this->AgencySysId,
                                "AccessTokenSysId" => $accessTokenSysId,
                                "AccessToken" => isset($reponsePagesArrayValArr[$fb]["access_token"]) ? $reponsePagesArrayValArr[$fb]["access_token"] : '',
                                "PageID" => isset($reponsePagesArrayValArr[$fb]["id"]) ? $reponsePagesArrayValArr[$fb]["id"] : '',
                                "PageName" => isset($reponsePagesArrayValArr[$fb]["name"]) ? $reponsePagesArrayValArr[$fb]["name"] : '',
                                "IsRun" => false,
                                "IsActive" => true,
                                "IsMarkForDel" => false
                            );
                            try {
                                $this->fModel->insertTable("TB_Agency_Marketing_Facebook_Pages", $pagesArray);
                            } catch (Zend_Exception $e) {
                                $error = $e->getMessage();
                            }
                        }
                    }
                }
                $this->view->pageName = $reponsePagesArrayVal;
            }
        }


        $FacebookFormsAllFormsSysId = $this->fModel->getFacebookFormsAllFormsSysId($this->AgencySysId);

        $FormSysId = array();
        foreach ($FacebookFormsAllFormsSysId as $formKey => $formVal) {
            $FormSysId[] = $formVal['FormSysId'];
        }
        $getFaceBookPagesData = array();
        if (!empty($FormSysId)) {
            $FBLeadFormsSysIds = implode(',', $FormSysId);
            $getFaceBookPagesData = $this->fModel->getCheckFBFormsbyIds($FBLeadFormsSysIds);
        }
        $this->view->getFaceBookPagesData = $getFaceBookPagesData;
    }

    public function integrationAction() {
        $this->view->siteUrl = $this->getSiteUrl;
        $this->view->getCheckAccessTokenArr = $this->fModel->getCheckFBAccessToken($this->AgencySysId);
        $this->view->getCheckAccessTokenWAArr = $this->fModel->getCheckWAAccessToken($this->AgencySysId);
        $this->view->Whatsappdetails = $this->fModel->getwhatsappDetails($this->AgencySysId);
        $sessionLogin_user = new Zend_Session_Namespace('sessionLogin_user');
        $this->view->IsWhatsApp = $sessionLogin_user->IsWhatsApp;
    }

    public function getLeadFormAction() {
        if (isset($reponsePagesArrayVal['data']) && !empty($reponsePagesArrayVal['data'])) {
            foreach ($reponsePagesArrayVal['data'] as $pageval) {
                $pageId = $pageval['id'];
                $accessForm = $pageval['access_token'];
                $getleadFormUrl = "https://graph.facebook.com/v15.0/$pageId/leadgen_forms?access_token=$accessForm";
                $LeadFormArray = $this->sendRequest($getleadFormUrl);
                if (isset($LeadFormArray) && $LeadFormArray != '') {
                    $LeadFormArrayVal = json_decode($LeadFormArray, true);
                    if (isset($LeadFormArrayVal['data']) && !empty($LeadFormArrayVal['data'])) {
                        foreach ($LeadFormArrayVal['data'] as $Formval) {
                            $formVal = $Formval['id'];
                            $getleadsUrl = "https://graph.facebook.com/v15.0/$formVal/leads?access_token=$accessForm";
                            $LeadFormValArray = $this->sendRequest($getleadsUrl);
                            if (isset($LeadFormValArray) && $LeadFormValArray != '') {
                                $LeadFormValues = json_decode($LeadFormValArray, true);
//                                echo "<pre>";
//                                print_r($LeadFormValues);
//                                exit;
                            }
                        }
                    }
                }
            }
        }
    }

    public function getFacebookPageFormAction() {
        $this->_helper->layout->disableLayout();
        $front = Zend_Controller_Front::getInstance();
        $front->setParam('noViewRenderer', true);
        if ($this->getRequest()->isPost()) {
            $param = $this->getRequest()->getParams();
            $id_token = explode('_', $param['id_accesstoken']);
            $pageId = $id_token[0];
            $access_token = $id_token[1];
            if ($pageId != "" && $access_token != "") {
                $getleadFormUrl = "https://graph.facebook.com/v15.0/$pageId/leadgen_forms?access_token=$access_token";
                $LeadFormArray = $this->sendRequest($getleadFormUrl);
                //echo "<pre>";print_r($LeadFormArray);exit;
                if (isset($LeadFormArray) && $LeadFormArray != '') {
                    $LeadFormArrayVal = json_decode($LeadFormArray, true);
                    $LeadFormValuesArr = isset($LeadFormArrayVal['data']) ? $LeadFormArrayVal['data'] : array();
                    // echo "<pre>";print_r($LeadFormValuesArr); exit;
                    $checkarray = array();
                    if (!empty($LeadFormValuesArr) && count($LeadFormValuesArr) > 0) {
                        for ($fbF = 0; $fbF < count($LeadFormValuesArr); $fbF++) {
                            $FBLeadFormsSysId = isset($LeadFormValuesArr[$fbF]["id"]) ? $LeadFormValuesArr[$fbF]["id"] : '';
                            if ($FBLeadFormsSysId != "") {
                                $getFaceBookPages = $this->fModel->getCheckFBForms($FBLeadFormsSysId);
                                if (!empty($getFaceBookPages)) {
                                    //                                    $updatePagesArray = array(
                                    //                                        "AccessToken" => isset($reponsePagesArrayValArr[$fb]["access_token"]) ? $reponsePagesArrayValArr[$fb]["access_token"] : '',
                                    //                                        "IsRun" => false,
                                    //                                        "IsActive" => true,
                                    //                                        "IsMarkForDel" => false
                                    //                                    );
                                    //                                    $where = array("PageID = (?)" => $FBPaageSysId);
                                    //                                    try {
                                    //                                        $this->fModel->updateTable("TB_Agency_Marketing_Facebook_Pages", $updatePagesArray, $where);
                                    //                                    } catch (Zend_Exception $e) {
                                    //                                        $error = $e->getMessage();
                                    //                                    }
                                } else {
                                    $FormArray = array(
                                        "AgencySysId" => $this->AgencySysId,
                                        "PageSysId" => $pageId,
                                        "FormID" => isset($LeadFormValuesArr[$fbF]["id"]) ? $LeadFormValuesArr[$fbF]["id"] : '',
                                        "FormName" => isset($LeadFormValuesArr[$fbF]["name"]) ? $LeadFormValuesArr[$fbF]["name"] : '',
                                        "FormExportCSVURL" => isset($LeadFormValuesArr[$fbF]["leadgen_export_csv_url"]) ? $LeadFormValuesArr[$fbF]["leadgen_export_csv_url"] : '',
                                        "FormStatus" => isset($LeadFormValuesArr[$fbF]["status"]) ? $LeadFormValuesArr[$fbF]["status"] : '',
                                        "IsRun" => false,
                                        "IsActive" => true,
                                        "IsMarkForDel" => false
                                    );
                                    try {
                                        $checkarray[] = $this->fModel->insertTable("TB_Agency_Marketing_Facebook_Forms", $FormArray);
                                    } catch (Zend_Exception $e) {
                                        $error = $e->getMessage();
                                    }
                                }
                            }
                        }
                        $html = '<option value="">Select</option>';
                        if ($LeadFormArrayVal['data']) {
                            foreach ($LeadFormArrayVal['data'] as $key => $val) {
                                $id = $val['id'];
                                $name = $val['name'];
                                $html .= '<option value="' . $id . '">' . $name . '</option>';
                            }
                        }
                        $return = json_encode(array('status' => true, 'formhtml' => $html, 'access_token' => $access_token));
                        echo $return;
                        exit;
                    } else {
                        echo $LeadFormArray;
                        exit;
                    }
                }
            }
        }
    }

    public function getFormLeadDataAction() {
        $this->_helper->layout->disableLayout();
        $front = Zend_Controller_Front::getInstance();
        $front->setParam('noViewRenderer', true);
        $TblAgency = new Travel_Model_TblAgency();
        $TblAgencyStaff = new Travel_Model_TblAgencyStaff();
//        $HolidaysFieldsM = array('FirstName','LastName','EmailId','PrimaryContactNumber','Noofdays','RoomInfoJson','NoOfChild','Inclusions','Preference','ExpectedClosureDate','budget','Purpose','startDate','FromDestination','Remarks');
//        $FlightFieldsM = array('FirstName','LastName','EmailId','PrimaryContactNumber','TripType','FromDestination','startDate','Destination','EndDate','RoomInfoJson','NoOfChild','NoOfInfant','Remarks');
//        $VisaFieldsM = array('FirstName','LastName','EmailId','PrimaryContactNumber','Destination','TripType','Purpose','startDate','RoomInfoJson','Noofdays','Preference','Remarks');
//        $HotelFieldsM = array('FirstName','LastName','EmailId','PrimaryContactNumber','Destination','startDate','RoomInfoJson','NoOfChild','Noofdays','Preference','Remarks');
//        $SightseeingFieldsM = array('FirstName','LastName','EmailId','PrimaryContactNumber','Destination','startDate','RoomInfoJson','Remarks');
//        $TransferFieldsM = array('FirstName','LastName','EmailId','PrimaryContactNumber','FromDestination','Destination','startDate','Noofdays','RoomInfoJson','Preference','Remarks');
        if ($this->getRequest()->isPost()) {
            $param = $this->getRequest()->getParams();
            $id = isset($param['id']) ? $param['id'] : '';
            $access_token = isset($param['access_token']) ? $param['access_token'] : '';
            $PlanType = isset($param['PlanType']) ? (int) $param['PlanType'] : 0;
            if ($id != "" && $access_token != "") {
                $getleadsUrl = "https://graph.facebook.com/v15.0/$id/leads?access_token=$access_token";
                $LeadFormValArray = $this->sendRequest($getleadsUrl);
                if (isset($LeadFormValArray) && $LeadFormValArray != '') {
                    $LeadFormValues = json_decode($LeadFormValArray, true);
                    $LeadFormValuesArr = isset($LeadFormValues['data']) ? $LeadFormValues['data'] : array();
                    if (!empty($LeadFormValuesArr) && count($LeadFormValuesArr) > 0) {
                        $html = '';
                        
                      //  echo "<pre>";print_r($LeadFormValuesArr);exit;
                        
                        //  $field_dataDropdown = '<option value="">Select</option>';
                        $checkNameArray = array();
                        if ($LeadFormValues['data']) {
                            foreach ($LeadFormValues['data'] as $key => $val) {
                                $id = $val['id'];
                                foreach ($val['field_data'] as $fKey => $fVal) {
                                    $name = trim($fVal['name']);
                                    if (!in_array($name, $checkNameArray)) {
                                        $checkNameArray[] = $name;
                                    }
                                    //                                    $values = implode(', ', $fVal['values']);
                                    //                                    if (!in_array($name, $checkNameArray)) {
                                    //                                        $field_dataDropdown .= '<option value="' . $name . '">' . $name . '</option>';
                                    //                                        $checkNameArray[] = $name;
                                    //                                    }
                                }
                            }
                        }
                        $formSysId = isset($param['id']) ? $param['id'] : '';
                        $FacebookFormsFieldMappingData = $this->fModel->getFacebookFormsFieldMapping($formSysId);
                        $getFormSysId = $this->fModel->getCheckFBForms($formSysId);
                        $UserLeadSourceMapping = $this->fModel->getFacebookFormsUserLeadSourceMapping($formSysId);
                        $PlanType = (!empty($PlanType)) ? $PlanType : (isset($getFormSysId[0]['PlanType']) ? (int) $getFormSysId[0]['PlanType'] : 5);
                        $PlanTypeArray = array(
                            '5' => 'Holidays',
                            '1' => 'Flight',
                            '6' => 'Visa',
                            '2' => 'Hotel',
                            '9' => 'Sightseeing',
                            '11' => 'Transfer',
                        );
                        if ($PlanType == 1) {
                            $fieldArray = array("EmailId" => "Email Id", "FirstName" => "First Name", "LastName" => "Last Name", "PrimaryContactNumber" => "Contact No.", "TripType" => "Trip Type", "FromDestination" => "From Airport", "startDate" => "From Date", "Destination" => "To Airport", "EndDate" => "To Date", "RoomInfoJson" => "Adult", "NoOfChild" => "Child", "NoOfInfant" => "Infant", "Remarks" => "Remarks", "ExpectedClosureDate" => "Expected Closure Date");
                        } else if ($PlanType == 2) {
                            $fieldArray = array("EmailId" => "Email Id", "FirstName" => "First Name", "LastName" => "Last Name", "PrimaryContactNumber" => "Contact No.", "Destination" => "Destination", "startDate" => "Travel Date", "Noofdays" => "No of Nights", "RoomInfoJson" => "Adult", "NoOfChild" => "Child", "Preference" => "Hotel Preference", "Remarks" => "Remarks", "ExpectedClosureDate" => "Expected Closure Date");
                        } else if ($PlanType == 6) {
                            $fieldArray = array("EmailId" => "Email Id", "FirstName" => "First Name", "LastName" => "Last Name", "PrimaryContactNumber" => "Contact No.", "Destination" => "Country", "TripType" => "Category", "Purpose" => "Entry Type", "startDate" => "Travel Date", "RoomInfoJson" => "No of Travellers", "Noofdays" => "Duration of Visit", "Preference" => "Nationality", "Remarks" => "Remarks", "ExpectedClosureDate" => "Expected Closure Date");
                        } else if ($PlanType == 9) {
                            $fieldArray = array("EmailId" => "Email Id", "FirstName" => "First Name", "LastName" => "Last Name", "PrimaryContactNumber" => "Contact No.", "Destination" => "Destination", "startDate" => "Travel Date", "RoomInfoJson" => "No of Pax", "Remarks" => "Remarks", "ExpectedClosureDate" => "Expected Closure Date");
                        } else if ($PlanType == 11) {
                            $fieldArray = array("EmailId" => "Email Id", "FirstName" => "First Name", "LastName" => "Last Name", "PrimaryContactNumber" => "Contact No.", "FromDestination" => "From Destination", "Destination" => "To Destination", "startDate" => "Travel Date", "Noofdays" => "No of Days", "RoomInfoJson" => "No of Travellers", "Preference" => "Preference", "Remarks" => "Remarks", "ExpectedClosureDate" => "Expected Closure Date");
                        } else {
                            $fieldArray = array("EmailId" => "Email Id", "FirstName" => "First Name", "LastName" => "Last Name", "PrimaryContactNumber" => "Contact No.", "startDate" => "Travel Date", "Noofdays" => "No of Days", "RoomInfoJson" => "No of Adults", "NoOfChild" => "No of Kids", "Inclusions" => "Inclusions", "Preference" => "Hotel Preference", "budget" => "Budget", "Purpose" => "Purpose", "Remarks" => "Remarks", "ExpectedClosureDate" => "Expected Closure Date", "FromDestination" => "From Destination", "Destination" => "To Destination");
                        }

//                        echo "<pre>";print_r($getFormSysId);die;
                        $MappedUserSysId = array();
                        foreach ($UserLeadSourceMapping as $UlsVal) {
                            $MappedUserSysId[] = $UlsVal['UserSysId'];
                        }
                        $html .= 'Form Type : <select name = "PlanType" id="PlanType" onchange="changePlanType()">';
                        foreach ($PlanTypeArray as $pKey => $pVal) {
                            $sele = ($pKey == $PlanType) ? 'selected' : '';
                            $html .= '<option value="' . $pKey . '" ' . $sele . '>' . $pVal . '</option>';
                        }

                        $html .= '</select><br><br>';
                        foreach ($fieldArray as $fKey => $fVal) {
                            $addClass = 'FormType_Class ';
                            $showHideFormType = 'display:none;';
                            if ($PlanType == 5) {
                                $addClass .= 'FormType_5 ';
                                $showHideFormType = '';
                            }
                            if ($PlanType == 1) {
                                $addClass .= 'FormType_1 ';
                                $showHideFormType = '';
                            }
                            if ($PlanType == 6) {
                                $addClass .= 'FormType_6 ';
                                $showHideFormType = '';
                            }
                            if ($PlanType == 2) {
                                $addClass .= 'FormType_2 ';
                                $showHideFormType = '';
                            }
                            if ($PlanType == 9) {
                                $addClass .= 'FormType_9 ';
                                $showHideFormType = '';
                            }
                            if ($PlanType == 11) {
                                $addClass .= 'FormType_11 ';
                                $showHideFormType = '';
                            }


                            $html .= '<div class="' . $addClass . '" style="margin-bottom:15px;' . $showHideFormType . '">' . $fVal . ' : <select name="' . $fKey . '"';
                            $field_dataDropdown = '<option value="">Select</option>';
                            for ($u = 0; $u < count($checkNameArray); $u++) {
                                // $htmlSelect = '';
                                $field_dataDropdown .= '<option value="' . $checkNameArray[$u] . '"';
                                foreach ($FacebookFormsFieldMappingData as $checkVal) {
                                    if (($checkVal['FieldName'] == $checkNameArray[$u]) && $fKey == $checkVal['ColumnName']) {
                                        $field_dataDropdown .= ' selected="selected"';
                                    }
                                }
                                $field_dataDropdown .= '>' . $checkNameArray[$u] . '</option>';
                            }
                            $html .= '>' . $field_dataDropdown . '</select><br></div>';
                        }
                        $DestinationName = isset($getFormSysId[0]['DestinationName']) ? $getFormSysId[0]['DestinationName'] : "";
                        $DestinationId = isset($getFormSysId[0]['DestinationId']) ? $getFormSysId[0]['DestinationId'] : "";

                        if ($PlanType == 5) {
                            $html .= '<div style="margin-left: 30px;">OR</div>';
                            $html .= 'To Destination : <input type="text" name="ToDestination" id="Destination" value="' . $DestinationName . '"><input type="hidden" name="DestinationId" id="DestinationId" value="' . $DestinationId . '"></br></br>';
                        } 
                        if(isset($_SESSION['sessionLogin_user']['IsWhatsApp']) && $_SESSION['sessionLogin_user']['IsWhatsApp'] == 1){
                            $getOnlyWhatsappAPITemplate = $TblAgency->getOnlyWhatsappAPITemplateWithOnlyCustomerVariable($this->AgencySysId);
                            if(!empty($getOnlyWhatsappAPITemplate)){ 
                                $whatsappTemplateHtml = '<option value="">Select</option>';
                                foreach($getOnlyWhatsappAPITemplate as $wpKey => $wpValue){
                                    $whatsappTemplateHtml .= '<option value="'.((int)$wpValue['Id']).'">'.($wpValue['TemplateName']).'</option>';
                                }
                                $html .= '<div>WhatsApp Template : <select name="WhatsAppTempId">'.$whatsappTemplateHtml.'</select><br><br></div>';
                            }  
                        }
                        $AgencyStaff = $TblAgencyStaff->getAgencyUserList($this->AgencySysId);
                        $htmlUserList = '';
                        foreach ($AgencyStaff as $sKey => $sVal) {
                            $htmlUserList .= '<option value="' . $sVal['UserSysId'] . '"';
                            if (isset($getFormSysId[0]['AssignUserSysId']) && (in_array($sVal['UserSysId'], $MappedUserSysId))) {
                                $htmlUserList .= ' selected="selected"';
                            }
                            $htmlUserList .= '>' . $sVal['FirstName'] . ' ' . $sVal['LastName'] . '</option>';
                        }
                        $LandingPageSysId = isset($getFormSysId[0]['LandingPageSysId']) ? $getFormSysId[0]['LandingPageSysId'] : "";
                        $html .= 'Assigned to : <select name = "AssignUserSysId[]" id="AssignUserSysId" multiple>' . $htmlUserList . '</select>';
                        if ($this->IsAutoProposalOnFBLead == 1) {
                            $html .= '<br><br>Template ID : <input style="width: 37%;" type="text" name="LandingPageID" id="LandingPageID" class="" value="' . $LandingPageSysId . '">&nbsp;&nbsp;<a href="https://globaltravelexchange.com/marketing/template" target="_blank">View Template List</a>';
                        }
                        $html .= '<input type="hidden" name="fieldArray" value="' . base64_encode(json_encode($fieldArray)) . '">';
                        $return = json_encode(array('status' => true, 'formhtml' => $html, 'access_token' => $access_token));
                        echo $return;
                        exit;
                    } else {
                        echo "exit";
                        exit;
                    }
                } else {
                    echo "exit";
                    exit;
                }
            } else {
                echo "exit";
                exit;
            }
        }
    }

    public function fbExchangeToken($accessToken) {
        $fbExchangeTokenUrl = "https://graph.facebook.com/v15.0/oauth/access_token?grant_type=fb_exchange_token&client_id=2032473587063611&client_secret=e51d914b4effdf595ef2228d25729b0e&fb_exchange_token=$accessToken";
        $fbExchangeTokenArray = $this->sendRequest($fbExchangeTokenUrl);
        return $fbExchangeTokenArray;
    }

    public function waLogoutAction() {
        $this->_helper->layout->disableLayout();
        $front = Zend_Controller_Front::getInstance();
        $front->setParam('noViewRenderer', true);
        $returnArray = array("status" => false);
        if ($this->getRequest()->isPost()) {
            $AgencySysId = $this->AgencySysId;
            $updateData = array(
                'AccessToken' => '',
                'WBExchangeToken' => ''
            );
            $where = array("AgencySysId = (?)" => $AgencySysId);
            try {
                $this->fModel->updateTable("TB_Agency_Marketing_WhatsApp_AccessToken", $updateData, $where);
                $returnArray = array("status" => true);
            } catch (Zend_Exception $e) {
                $returnArray = array("status" => false);
            }
        }
        echo json_encode($returnArray);
        exit;
    }

    public function facebookLogoutAction() {
        $this->_helper->layout->disableLayout();
        $front = Zend_Controller_Front::getInstance();
        $front->setParam('noViewRenderer', true);
        $returnArray = array("status" => false);
        if ($this->getRequest()->isPost()) {
            $AgencySysId = $this->AgencySysId;
            $updateData = array(
                'AccessToken' => '',
                'fbExchangeToken' => ''
            );
            $where = array("AgencySysId = (?)" => $AgencySysId);
            try {
                $this->fModel->updateTable("TB_Agency_Marketing_Facebook_AccessToken", $updateData, $where);
                $returnArray = array("status" => true);
            } catch (Zend_Exception $e) {
                $returnArray = array("status" => false);
            }
        }
        echo json_encode($returnArray);
        exit;
    }

    public function saveFormLeadDataAction() {
        $this->_helper->layout->disableLayout();
        $front = Zend_Controller_Front::getInstance();
        $front->setParam('noViewRenderer', true);
        if ($this->getRequest()->isPost()) {
            $param = $this->getRequest()->getParams();
            //echo "<pre>";print_r($param);die;
            $fieldArray = json_decode(base64_decode($param['fieldArray']), 1);
            $formSysId = trim($param['formName']);
            if ((isset($param['formName']) && $param['formName'] > 0)) {
                $updateData = array(
//                    'AssignUserSysId' => $param['AssignUserSysId'],
                    'DestinationName' => (isset($param['ToDestination']) && trim($param['ToDestination']) != 'to_destination') ?str_replace(' ', '', $param['ToDestination']) : '',
                    'DestinationId' => isset($param['DestinationId']) ? (int) $param['DestinationId'] : 0,
                    'LandingPageSysId' => isset($param['LandingPageID']) ? (int) $param['LandingPageID'] : 0,
                    'PlanType' => isset($param['PlanType']) ? (int) $param['PlanType'] : 5,
                    'WhatsAppTempId' => isset($param['WhatsAppTempId']) ? (int) $param['WhatsAppTempId'] : 0,
                );
                $where = array("AgencySysId = (?)" => $this->AgencySysId, 'FormID = (?)' => $formSysId);
                $this->fModel->updateTable("TB_Agency_Marketing_Facebook_Forms", $updateData, $where);
            }
            if (isset($param['formName']) && (int) $param['formName']) {
                $checkFaceBookCampaignSysId = $this->fModel->checkFaceBookCampaignSysId($formSysId);
                if (empty($checkFaceBookCampaignSysId)) {
                    $saveData = array(
                        "AgencySysId" => $this->AgencySysId,
                        "CampaignName" => $formSysId,
                        "IsDefault" => 0,
                        "IsActive" => 1,
                        "IsMarkForDel" => 0
                    );
                    $CampaignSysId = $this->fModel->insertTable("TB_Agency_Campaign_Master", $saveData);
                    $updateData = array(
                        'CampaignSysId' => $CampaignSysId
                    );
                    $where = array("AgencySysId = (?)" => $this->AgencySysId, 'FormID = (?)' => $formSysId);
                    $this->fModel->updateTable("TB_Agency_Marketing_Facebook_Forms", $updateData, $where);
                }
            }
            $saveData = $updateData = $checkArrayData = array();
            $FacebookFormsFieldMappingData = $this->fModel->getFacebookFormsFieldMapping($param['formName']);
            foreach ($FacebookFormsFieldMappingData as $dKey => $dVal) {
                $checkArrayData[] = trim($dVal['ColumnName']);
            }
            $updateDataIsMarkForDel = [
                'IsMarkForDel' => '1',
            ];
            $whereIsMarkForDel = array("AgencySysId = (?)" => $this->AgencySysId, 'FormSysId = (?)' => $formSysId);
            $FieldMapSysId[] = $this->fModel->updateTable("TB_Agency_Marketing_Facebook_FormsFieldMapping", $updateDataIsMarkForDel, $whereIsMarkForDel);

            foreach ($fieldArray as $fKey => $fVal) {
                if (trim($param[$fKey]) != '') {
                    if (in_array($fKey, $checkArrayData)) {
                        $updateData = [
                            'FieldName' => $param[$fKey],
                            'IsMarkForDel' => '0',
                        ];
                        $where = array("AgencySysId = (?)" => $this->AgencySysId, 'FormSysId = (?)' => $formSysId, 'ColumnName = (?)' => $fKey);
                        // echo "<pre>";print_r($where);die;
                        $FieldMapSysId[] = $this->fModel->updateTable("TB_Agency_Marketing_Facebook_FormsFieldMapping", $updateData, $where);
                    } else {
                        $saveData = [
                            'AgencySysId' => $this->AgencySysId,
                            'ColumnName' => $fKey,
                            'FieldName' => $param[$fKey],
                            'FormSysId' => $formSysId,
                            'IsActive' => 1,
                            'IsMarkForDel' => 0,
                        ];
                        $FieldMapSysId[] = $this->fModel->insertTable("TB_Agency_Marketing_Facebook_FormsFieldMapping", $saveData);
                    }
                }
            }
            $UserSysIdArr = (isset($param['AssignUserSysId']) && !empty($param['AssignUserSysId'])) ? $param['AssignUserSysId'] : '';
            if (!empty($UserSysIdArr)) {
                $whereUserLeadMap = array('LeadSourceSysId = ? ' => $formSysId);
                $updateDataUserLeadMap = array('IsMarkForDel' => 1);
                $this->fModel->updateTable('TB_Agency_Marketing_Facebook_User_LeadSource_Mapping', $updateDataUserLeadMap, $whereUserLeadMap);
                foreach ($UserSysIdArr as $UserSysId) {
                    $checkformSysId = $this->fModel->checkFacebookUserLeadSource($formSysId, $UserSysId);
                    if (!empty($checkformSysId)) {
                        $whereUserLeadMap1 = array('LeadSourceSysId = ? ' => $formSysId, 'UserSysId = ? ' => $UserSysId);
                        $updateDataUserLeadMap1 = array('IsMarkForDel' => 0);
                        $this->fModel->updateTable('TB_Agency_Marketing_Facebook_User_LeadSource_Mapping', $updateDataUserLeadMap1, $whereUserLeadMap1);
                    } else {
                        $insertDataUserLeadMap = array('IsMarkForDel' => 0, 'LeadSourceSysId' => $formSysId, 'UserSysId' => $UserSysId);
                        $this->fModel->insertTable('TB_Agency_Marketing_Facebook_User_LeadSource_Mapping', $insertDataUserLeadMap);
                    }
                }
            }
            //echo "<pre>";print_r($FieldMapSysId);die;
            if ($FieldMapSysId) {
                $return = json_encode(array('status' => true, 'message' => 'Data Saved Successfully.'));
                echo $return;
                exit;
            }
        }
    }

}

Youez - 2016 - github.com/yon3zu
LinuXploit