コード例 #1
0
 public function indexAction()
 {
     $data = $this->getRequest()->getPost('signed_request', null);
     if (null == $data) {
         if ('' != $_COOKIE['fbPageId']) {
             $data = array('yes');
             $fbRequest['page']['id'] = $_COOKIE['fbPageId'];
         }
     } else {
         // Initialize data
         $facebook = new Facebook_Bloomnation();
         // Get facebook request
         $fbRequest = $facebook->getSignedRequest();
     }
     // ERROR: Exit if it's not a request from facebook canvas page
     if (null == $data) {
         exit('This page can only be viewed as facebook canvas page');
     }
     // Get the vendor data
     $vendorId = Mage::helper('facebook')->getVendorByFacebookId($fbRequest['page']['id']);
     setcookie('fbPageId', $fbRequest['page']['id']);
     // ERROR: no vendor
     if (!$vendorId) {
         exit('You are almost ready to open your Facebook Store! Please click the link below and you will receive an email with a link to open your store!<br/><a href="/facebookstore/index/report">Click here</a>');
     }
     // Load category data
     $collection = Mage::getModel('catalog/category')->getCollection()->addAttributeToFilter('yelp_api', $vendorId)->setCurPage(1)->setPageSize(1);
     $_cat = $collection->getFirstItem();
     Mage::register('current_category', $_cat);
     // ERROR category not found for the vendor
     if (sizeof($_cat->getData()) < 1) {
         exit('Sorry this user doesn\'t seem to have facebook store setup with Bloom Nation or some profile information is missing');
     }
     $products = $_cat->getProductCollection()->addAttributeToSort('global_position', 'asc');
     // Layout functions
     $this->loadLayout('facebook_index_index');
     // Assign data to content block
     $this->getLayout()->getBlock('content')->setProductCollection($products);
     $this->renderLayout();
 }
コード例 #2
0
 public function facebookAction()
 {
     // If it's ajax POST update facebook data
     if ($this->getRequest()->isXmlHttpRequest()) {
         // Init variables
         $success = false;
         $msg = 'No post data found';
         $data = '';
         $fb = new Facebook_Bloomnation();
         $post = $this->getRequest()->getPost();
         if ($post) {
             $vendorId = $this->_getSession()->getId();
             if (isset($post['dupdate'])) {
                 $facebookPage = addslashes($post['facebook_page']);
                 $facebookId = addslashes($post['facebook_page_id']);
                 // Insert data into database
                 $success = true;
                 $query = "UPDATE udropship_vendor SET\n                        facebook_page='{$facebookPage}',\n                        facebook_page_id='{$facebookId}'\n                        WHERE vendor_id={$vendorId}";
                 try {
                     Mage::getSingleton('core/resource')->getConnection('core_write')->query($query);
                     // Send greeting email
                     $emailTemplate = Mage::getModel('core/email_template')->loadDefault('udropship_vendor_fbopen');
                     //Create an array of variables to assign to template
                     $emailTemplateVariables = array();
                     $emailTemplateVariables['vendorname'] = 'Test';
                     $processedTemplate = $emailTemplate->getProcessedTemplate($emailTemplateVariables);
                     $emailTemplate->setSenderName('BloomNation team');
                     $emailTemplate->setSenderEmail('*****@*****.**');
                     if (!$emailTemplate->send(Mage::getSingleton('udropship/session')->getVendor()->getEmail(), 'BloomNation team', $emailTemplateVariables)) {
                         $this->_getSession()->addError('Error sending greeting email');
                     }
                 } catch (Exception $e) {
                     $success = false;
                     $msg = $e->getMessage();
                 }
                 $msg = 'Your facebook page succesfully updated!';
                 exit(json_encode(compact('success', 'msg', 'data')));
             }
             // Try older URL
             preg_match('/\\d{7,}/', $post['facebook_page'], $matches);
             if (!empty($matches)) {
                 $facebookPage = $post['facebook_page'];
                 $facebookId = $matches[0];
                 // Insert data into database
                 $query = "UPDATE udropship_vendor SET\n                        facebook_page='{$facebookPage}',\n                        facebook_page_id='{$facebookId}'\n                        WHERE vendor_id={$vendorId}";
                 $result = Mage::getSingleton('core/resource')->getConnection('core_write')->query($query);
                 $success = true;
                 $msg = 'Your facebook page succesfully updated!';
                 exit(json_encode(compact('success', 'msg', 'data')));
             }
             preg_match('/facebook.com\\/(.*)$/', $post['facebook_page'], $matches);
             $facebookPage = $matches[1];
             try {
                 $fbPageInfo = $fb->api('/' . $facebookPage);
             } catch (Exception $e) {
                 $msg = $e->getMessage();
                 exit(json_encode(compact('success', 'msg', 'data')));
             }
             if (isset($fbPageInfo['id'])) {
                 $facebookPage = $fbPageInfo['link'];
                 $facebookId = $fbPageInfo['id'];
                 // Insert data into database
                 $query = "UPDATE udropship_vendor SET\n                        facebook_page='{$facebookPage}',\n                        facebook_page_id='{$facebookId}'\n                        WHERE vendor_id={$vendorId}";
                 $result = Mage::getSingleton('core/resource')->getConnection('core_write')->query($query);
                 $success = true;
                 $msg = 'Your facebook page succesfully updated!';
             }
         }
         exit(json_encode(compact('success', 'msg', 'data')));
     }
     $this->_renderPage(null, 'facebook');
 }