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(); }
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'); }