Пример #1
0
 /**
  * action: plugin_ui
  *
  * @access public
  * @param string $plugin_id
  * @param string $action
  * @return void
  */
 public function action_plugin_ui($plugin_id, $action)
 {
     if ($plugin_id != $this->plugin_id()) {
         return;
     }
     if ($action == _t('Configure')) {
         $form = new FormUI(strtolower(get_class($this)));
         $form->on_success(array($this, 'on_success'));
         $refresh_interval = $form->append('text', 'refresh_interval', 'fireeagle__refresh_interval', _t('Refresh Interval (sec): ', 'fireeagle'));
         $refresh_interval->add_validator('validate_regex', '/^[0-9]+$/');
         $form->append('submit', 'save', _t('Save'));
         $form->out();
     } elseif ($action == _t('Authorize', 'fireeagle')) {
         // get request token
         $fireeagle = new FireEagleAPI($this->consumer_key, $this->consumer_secret);
         $token = $fireeagle->getRequestToken();
         if (!$token || empty($token['oauth_token'])) {
             echo 'Invalid Response';
             return;
         }
         $_SESSION['fireeagle']['req_token'] = $token['oauth_token'];
         $_SESSION['fireeagle']['req_token_secret'] = $token['oauth_token_secret'];
         $_SESSION['fireeagle']['state'] = 1;
         $oauth_callback = URL::get('admin', array('page' => 'plugins', 'configure' => $plugin_id, 'configaction' => '_callback')) . '#plugin_' . $plugin_id;
         ob_end_clean();
         header('Location: ' . $fireeagle->getAuthorizeURL($token) . '&oauth_callback=' . urlencode($oauth_callback));
         exit;
     } elseif ($action == _t('De-Authorize', 'fireeagle')) {
         Options::set('fireeagle__access_token_' . User::identify()->id, '');
         Options::set('fireeagle__access_token_secret_' . User::identify()->id, '');
         echo 'Fire Eagle De-authorization successfully.';
     } elseif ($action == '_callback') {
         if (empty($_GET['oauth_token']) || $_GET['oauth_token'] != $_SESSION['fireeagle']['req_token']) {
             echo 'Invalid Token';
             return;
         }
         // get access token
         $fireeagle = new FireEagleAPI($this->consumer_key, $this->consumer_secret, $_SESSION['fireeagle']['req_token'], $_SESSION['fireeagle']['req_token_secret']);
         $token = $fireeagle->getAccessToken();
         if (!$token || empty($token['oauth_token'])) {
             echo 'Invalid Response';
             return;
         }
         Options::set('fireeagle__access_token_' . User::identify()->id, $token['oauth_token']);
         Options::set('fireeagle__access_token_secret_' . User::identify()->id, $token['oauth_token_secret']);
         echo 'Fire Eagle Authorization successfully.';
     }
 }