/wp-content/app/code/core/Xedin/Facebook/Model/Resource/Facebook.php

https://bitbucket.org/aukhanev/xdn-wordpress31 · PHP · 135 lines · 64 code · 23 blank · 48 comment · 7 complexity · 6293045b79be6abaa38225a177065ace MD5 · raw file

  1. <?php
  2. /**
  3. * Description of Facebook
  4. *
  5. * @author Xedin Unknown <xedin.unknown+xdn@gmail.com>
  6. */
  7. class Xedin_Facebook_Model_Resource_Facebook extends Facebook_Facebook {
  8. protected $_signedRequest;
  9. protected $_user;
  10. public function __construct($config) {
  11. Zend_Session::start(true);
  12. parent::__construct($config);
  13. }
  14. public function load(Xedin_Core_Model_Abstract $object, $value=null, $field=null) {
  15. if( !($object instanceof Xedin_Facebook_Model_Facebook) ) {
  16. return $this;
  17. }
  18. /* @var $object Xedin_Facebook_Model_Facebook */
  19. if( !$object->hasApiModel() ) {
  20. $object->setApiModel($this);
  21. }
  22. if( !is_null($value) ) {
  23. $appModel = $object->getAppModel($value);
  24. if( $appModel->hasId() ) {
  25. $object->getApiModel()->setAppId($appModel->getApiKey())
  26. ->setApiSecret($appModel->getAppSecret());
  27. // var_dump($object->getApiModel());
  28. }
  29. }
  30. return $this;
  31. }
  32. public function setIdFieldName($fieldName) {
  33. return $this;
  34. }
  35. public function getIdFieldName() {
  36. return 'id';
  37. }
  38. public function getSignedRequest() {
  39. if( !$this->_signedRequest ) {
  40. $varName = 'xdn-fbsr-' . $this->getAppId();
  41. $signedRequest = null;
  42. $signedRequestRaw = $this->getRawSignedRequest();
  43. if( $signedRequestRaw ) {
  44. $signedRequest = $this->parseSignedRequest($signedRequestRaw);
  45. }
  46. // $signedCookie /* ;) */ = Hub::app()->getFrontController()->getCurrentController()->getRequest()->getCookie($this->getSignedRequestCookieName());
  47. // $signedCookie = isset($_COOKIE[$cookieName]) ? $_COOKIE[$cookieName] : null;
  48. // if( $signedCookie ) {
  49. // $signedCookie = $this->parseSignedRequest($signedCookie);
  50. // var_dump($signedCookie);
  51. // var_dump(isset($signedRequest['page']));
  52. // var_dump(($signedCookie && isset($signedCookie['page']) && isset($signedCookie['page']['liked'])));
  53. // }
  54. // if( (!$signedRequest || is_null($signedRequest) || !(isset($signedRequest['page']) && isset($signedRequest['page']['liked'])))
  55. // && $signedCookie && isset($signedCookie['page']) && isset($signedCookie['page']['liked'])) {
  56. // var_dump((string)$_REQUEST['signed_request']);
  57. // echo 'that is... ';
  58. // var_dump($this->parseSignedRequest($_REQUEST['signed_request']));
  59. // var_dump($signedCookie);
  60. // exit();
  61. // unset($_REQUEST['signed_request']);
  62. // }
  63. $signedRequestSession = $this->getSession()->get($varName);
  64. $signedRequestRaw = $signedRequestRaw ? $signedRequestRaw :
  65. ($signedRequestSession ? $signedRequestSession: null);
  66. // if( !$signedRequestRaw ) {
  67. // $this->_signedRequest = null;
  68. // }
  69. if( $signedRequestRaw ) {
  70. //// var_dump($_COOKIE);
  71. $this->getSession()->set($varName, $signedRequestRaw);
  72. // $this->getSession()->setCookie('xdn-fbsr-' . $this->getAppId(), $signedRequestRaw);
  73. // var_dump($signedRequestRaw);
  74. // echo 'that is... ';
  75. // var_dump($this->parseSignedRequest($signedRequestRaw));
  76. // var_dump($_REQUEST['signedRequestCookieName() . ' = ' . $this->signedRequest['page']['liked']);
  77. $this->_signedRequest = $this->parseSignedRequest($signedRequestRaw);
  78. }
  79. }
  80. return $this->_signedRequest;
  81. }
  82. public function getRawSignedRequest() {
  83. return $this->getRequest()->getParam('signed_request');
  84. }
  85. public function getRequest() {
  86. return Hub::app()->getFrontController()->getRequest();
  87. }
  88. // public function getUser() {
  89. // if( !$this->_user ) {
  90. // $this->_user = $this->getUserFromAccessToken();
  91. // var_dump($this->getAccessToken());
  92. // var_dump($this->_user);
  93. // }
  94. //
  95. // return $this->_user;
  96. // }
  97. public function getMainPageUrl() {
  98. return $this->getUrlHelper()->getFacebookPageUrl($this);
  99. }
  100. /**
  101. * @return Xedin_Facebook_Helper_Url
  102. */
  103. public function getUrlHelper() {
  104. return Hub::getHelper('facebook/url');
  105. }
  106. /**
  107. * @return Xedin_Facebook_Model_Session
  108. */
  109. public function getSession() {
  110. return Hub::getSingleton('facebook/session');
  111. }
  112. }