function createAction()
 {
     $this->view->title = $this->view->title = $this->view->translate("Wildfire") . " - " . $this->view->translate("Create_title");
     $this->view->activeTab = 'Campaigns';
     $consumer = $this->_currentUser;
     $id = (int) $this->_request->getParam('id', 0);
     //whether participate in the campaign
     $campaigninvitationModel = new CampaignInvitation();
     $campaigninvitation = $campaigninvitationModel->fetchRow('campaign_id = ' . $id . ' and consumer_id' . ' =' . $consumer->id);
     if ($campaigninvitation == null) {
         $this->_helper->redirector('index', 'home');
     }
     //get i2_survey_id
     $campaignModel = new Campaign();
     $campaign = $campaignModel->fetchRow("id=" . $id);
     $langNamespace = new Zend_Session_Namespace('Lang');
     $lang = $langNamespace->lang;
     if ($lang == 'en') {
         $surveyId = $campaign->i2_survey_id_en;
     } else {
         $surveyId = $campaign->i2_survey_id;
     }
     $this->view->campaing_name = $campaign->name;
     $this->view->id = $id;
     //check static file
     $testEnv = Zend_Registry::get('testEnv');
     $file = "./surveys/" . $surveyId . ".phtml";
     // if static file not exist, go to the normal flow
     if ($testEnv != 0 || file_exists($file) == false) {
         // connect to webservice, get the page
         $indicate2Connect = new Indicate2_Connect();
         $accesscode = $indicate2Connect->createParticipation($consumer->email, $surveyId);
         $config = Zend_Registry::get('config');
         $this->view->filloutPage = $config->indicate2->home . "/c/" . $accesscode . "/theme/wildfire";
         //Zend_Debug::dump($this->view->filloutPage);
         if ($testEnv == 0) {
             //save the page to static file
             if ($data = @file_get_contents($this->view->filloutPage)) {
                 set_time_limit(10);
                 ignore_user_abort(true);
                 Zend_Debug::dump(file_put_contents($file, $data));
             } else {
                 Zend_Debug::dump('Get remote page error!');
             }
         }
     } else {
         $this->view->file = $file;
         $this->view->surveyId = $surveyId;
     }
     $this->view->includeCrystalCss = true;
     $this->_helper->layout->setLayout("layout_questionnaire");
     $this->view->consumer = $consumer->id;
     //
     //		Zend_Debug::dump($campaigninvitation);
     //		Zend_Debug::dump($this->view->campaing_name);
 }
 function admingetaccesscodeAction()
 {
     $surveyId = (int) $this->_request->getParam('surveyId');
     //$consumer = $this->_currentUser;
     $email = $this->_request->getParam('email');
     $indicate2Connect = new Indicate2_Connect();
     $accesscode = $indicate2Connect->createParticipation($email, $surveyId);
     $this->_helper->layout->disableLayout();
     $this->_helper->json($accesscode);
 }
 function acceptinvitationAction()
 {
     if ($this->autoAccountBinding() == false) {
         return;
     }
     $consumer = $this->_currentUser;
     $campaignModel = new Campaign();
     $campaign_id = (int) $this->_request->getParam('campaign_id', 0);
     $campaign = $campaignModel->fetchRow("id=" . $campaign_id);
     $surveyId = $campaign->pre_campaign_survey;
     $indicate2Connect = new Indicate2_Connect();
     $accesscode = $indicate2Connect->createParticipation($consumer['email'], $surveyId);
     $this->view->survey_id = $surveyId;
     $this->view->campaign_name = $campaign->name;
     $this->view->campaign_id = $campaign_id;
     $this->view->accesscode = $accesscode;
     $config = Zend_Registry::get('config');
     $this->view->filloutPage = $config->indicate2->home . "/core/" . $accesscode . "/theme/wildfire/callback/acceptinvitationdo";
 }
 function participateAction()
 {
     $this->view->activeTab = 'Polls';
     $this->view->title = $this->view->title = $this->view->translate("Wildfire") . " - " . $this->view->translate("Participate_title");
     $consumer = $this->_currentUser;
     $surveyId = (int) $this->_request->getParam('id', 0);
     //precampaignsurvey的css使用的是layout_survey
     $this->_helper->layout->setLayout("layout_survey");
     //check history to prevent multiple participation
     $db = Zend_Registry::get('db');
     $select1 = $db->select();
     $select1->from("poll_participation", "count(*)");
     $select1->where("poll_participation.poll_id = ?", $surveyId);
     $select1->where("poll_participation.consumer_id = ?", $consumer->id);
     $participationCount = $db->fetchOne($select1);
     if ($participationCount > 0) {
         $this->_helper->redirector('index', 'home');
     }
     $profileSurveyModel = new ProfileSurvey();
     $profile = $profileSurveyModel->fetchRow("id=" . $surveyId);
     if ($profile->public == 0) {
         $profileSurveyInvitation = new ProfileSurveyInvitation();
         $profileInvitation = $profileSurveyInvitation->fetchRow('consumer_id =' . $consumer->id . ' and profile_id =' . $surveyId);
         if (!count($profileInvitation)) {
             $this->_helper->redirector('index', 'home');
         }
     }
     $langNamespace = new Zend_Session_Namespace('Lang');
     $lang = $langNamespace->lang;
     if ($lang == 'en') {
         $id = $profile->i2_survey_id_en;
     } else {
         $id = $profile->i2_survey_id;
     }
     //check static file
     $testEnv = Zend_Registry::get('testEnv');
     $file = "./surveys/" . $id . ".phtml";
     // if static file not exist, go to the normal flow
     if ($testEnv != 0 || file_exists($file) == false) {
         // connect to webservice, get the page
         $indicate2Connect = new Indicate2_Connect();
         $accesscode = $indicate2Connect->createParticipation($consumer->email, $id);
         $config = Zend_Registry::get('config');
         $this->view->filloutPage = $config->indicate2->home . "/c/" . $accesscode . "/theme/wildfire";
         if ($testEnv == 0) {
             //save the page to static file
             if ($data = @file_get_contents($this->view->filloutPage)) {
                 set_time_limit(10);
                 ignore_user_abort(true);
                 Zend_Debug::dump(file_put_contents($file, $data));
             } else {
                 Zend_Debug::dump('Get remote page error!');
             }
         }
     } else {
         $this->view->file = $file;
         $this->view->surveyId = $id;
     }
     $this->view->includeCrystalCss = true;
     $this->view->user = $this->_currentUser;
     //		Zend_Debug::dump($consumer->email);
     //		Zend_Debug::dump($result);
 }
 function adminreportAction()
 {
     $this->_helper->layout->setLayout("layout_admin");
     $sms_id = (int) $this->_request->getParam('sms_id');
     $smsSql = "select b.* from spark_sms as a, spark_sms as b where a.id=" . $sms_id . " and b.consumer_id=a.consumer_id and b.id-a.id>-5 and b.id-a.id<5 order by b.id";
     $db = Zend_Registry::get('db');
     $rs = $db->fetchAll($smsSql);
     $sms = '';
     $consumer_id = 0;
     $smsIds = array();
     foreach ($rs as $row) {
         array_push($smsIds, $row['id']);
         $sms .= $row['text'];
         $consumer_id = $row['consumer_id'];
     }
     //update sms state
     $ids = implode(",", $smsIds);
     //Zend_Debug::dump($ids);
     $updateSql = $db->prepare("update spark_sms set state='Reported' where id in (" . $ids . ")");
     $updateSql->execute();
     $campaign_id = (int) $this->_request->getParam('cam_id');
     //whether participate in the campaign
     $campaigninvitationModel = new CampaignInvitation();
     $campaigninvitation = $campaigninvitationModel->fetchRow('campaign_id = ' . $campaign_id . ' and consumer_id' . ' =' . $consumer_id);
     if ($campaigninvitation == null) {
         $this->_helper->redirector('index', 'home');
     }
     //get lang
     $consumerModel = new Consumer();
     $consumer = $consumerModel->fetchRow("id=" . $consumer_id);
     //get i2_survey_id
     $campaignModel = new Campaign();
     $campaign = $campaignModel->fetchRow("id=" . $campaign_id);
     $langNamespace = new Zend_Session_Namespace('Lang');
     $lang = $langNamespace->lang;
     if ($consumer->language_pref == 'en') {
         $surveyId = $campaign->i2_survey_id_en;
     } else {
         $surveyId = $campaign->i2_survey_id;
     }
     $this->view->campaing_name = $campaign->name;
     $indicate2Connect = new Indicate2_Connect();
     $accesscode = $indicate2Connect->createParticipation($consumer->email, $surveyId);
     //save list in session
     $reportNamespace = new Zend_Session_Namespace('AgentReports');
     $reportNamespace->{$accesscode} = $consumer_id;
     $source = $accesscode . "_source";
     $reportNamespace->{$source} = "sms";
     $config = Zend_Registry::get('config');
     $this->view->filloutPage = $config->indicate2->home . "/c/" . $accesscode . "/theme/wildfire";
     $this->view->id = $consumer->id;
     $this->view->name = $consumer->name;
     $this->view->sms = $sms;
     $this->view->includeCrystalCss = true;
 }
 function adminreportAction()
 {
     $request = $this->getRequest();
     if ($request->isPost()) {
         $formData = $this->_request->getPost();
         $consumer_id = $formData['consumer_id'];
         $campaign_id = $formData['campaign_id'];
         $comment = $formData['phone_comments'];
         $source = $formData['source'];
         //whether participate in the campaign
         $campaigninvitationModel = new CampaignInvitation();
         $campaigninvitation = $campaigninvitationModel->fetchRow('campaign_id = ' . $campaign_id . ' and consumer_id' . ' =' . $consumer_id);
         if ($campaigninvitation == null) {
             //$this->_helper->redirector('index','home');
         }
         //get i2_survey_id
         $campaignModel = new Campaign();
         $campaign = $campaignModel->fetchRow("id=" . $campaign_id);
         $langNamespace = new Zend_Session_Namespace('Lang');
         $lang = $langNamespace->lang;
         if ($lang == 'en') {
             $surveyId = $campaign->i2_survey_id_en;
         } else {
             $surveyId = $campaign->i2_survey_id;
         }
         $this->view->campaing_name = $campaign->name;
         $this->view->id = $campaign_id;
         $indicate2Connect = new Indicate2_Connect();
         $accesscode = $indicate2Connect->createParticipation('', $surveyId);
         $config = Zend_Registry::get('config');
         $this->view->filloutPage = $config->indicate2->home . "/c/" . $accesscode . "/theme/wildfire";
         //save list in session
         $reportNamespace = new Zend_Session_Namespace('AgentReports');
         $source_key = $accesscode . '_source';
         $reportNamespace->{$source_key} = $source;
         $reportNamespace->{$accesscode} = $consumer_id;
         $this->view->includeCrystalCss = true;
     }
 }