Пример #1
0
 /**
  * show the "favorite" form in the notice options element
  * FIXME: Don't let a NoticeListItemAdapter slip in here (or extend that from NoticeListItem)
  *
  * @return void
  */
 public function onStartShowNoticeOptionItems($nli)
 {
     if (Event::handle('StartShowFaveForm', array($nli))) {
         $scoped = Profile::current();
         if ($scoped instanceof Profile) {
             if (Fave::existsForProfile($nli->notice, $scoped)) {
                 $disfavor = new DisfavorForm($nli->out, $nli->notice);
                 $disfavor->show();
             } else {
                 $favor = new FavorForm($nli->out, $nli->notice);
                 $favor->show();
             }
         }
         Event::handle('EndShowFaveForm', array($nli));
     }
 }
Пример #2
0
 /**
  * Constructor
  *
  * @param HTMLOutputter $out    output channel
  * @param Notice        $notice notice to favor
  */
 function __construct($out = null, $notice = null)
 {
     parent::__construct($out, $notice);
 }
Пример #3
0
 /**
  * show the "favorite" form
  *
  * @return void
  */
 function showFaveForm()
 {
     $user = common_current_user();
     if ($user) {
         if ($user->hasFave($this->notice)) {
             $disfavor = new DisfavorForm($this->out, $this->notice);
             $disfavor->show();
         } else {
             $favor = new FavorForm($this->out, $this->notice);
             $favor->show();
         }
     }
 }
Пример #4
0
 /**
  * show the "favorite" form
  *
  * @return void
  */
 function showFaveForm()
 {
     if (Event::handle('StartShowFaveForm', array($this))) {
         $user = common_current_user();
         if ($user) {
             if ($user->hasFave($this->notice)) {
                 $disfavor = new DisfavorForm($this->out, $this->notice);
                 $disfavor->show();
             } else {
                 $favor = new FavorForm($this->out, $this->notice);
                 $favor->show();
             }
         }
         Event::handle('EndShowFaveForm', array($this));
     }
 }
Пример #5
0
 /**
  * Class handler.
  *
  * @param array $args query arguments
  *
  * @return void
  */
 function handle($args)
 {
     parent::handle($args);
     if (!common_logged_in()) {
         // TRANS: Client error displayed when trying to remove a favorite while not logged in.
         $this->clientError(_('Not logged in.'));
         return;
     }
     $user = common_current_user();
     if ($_SERVER['REQUEST_METHOD'] != 'POST') {
         common_redirect(common_local_url('showfavorites', array('nickname' => $user->nickname)));
         return;
     }
     $id = $this->trimmed('notice');
     $notice = Notice::staticGet($id);
     $token = $this->trimmed('token-' . $notice->id);
     if (!$token || $token != common_session_token()) {
         // TRANS: Client error displayed when the session token does not match or is not given.
         $this->clientError(_('There was a problem with your session token. Try again, please.'));
         return;
     }
     $fave = new Fave();
     $fave->user_id = $user->id;
     $fave->notice_id = $notice->id;
     if (!$fave->find(true)) {
         // TRANS: Client error displayed when trying to remove favorite status for a notice that is not a favorite.
         $this->clientError(_('This notice is not a favorite!'));
         return;
     }
     $result = $fave->delete();
     if (!$result) {
         common_log_db_error($fave, 'DELETE', __FILE__);
         // TRANS: Server error displayed when removing a favorite from the database fails.
         $this->serverError(_('Could not delete favorite.'));
         return;
     }
     $user->blowFavesCache();
     if ($this->boolean('ajax')) {
         $this->startHTML('text/xml;charset=utf-8');
         $this->elementStart('head');
         // TRANS: Title for page on which favorites can be added.
         $this->element('title', null, _('Add to favorites'));
         $this->elementEnd('head');
         $this->elementStart('body');
         $favor = new FavorForm($this, $notice);
         $favor->show();
         $this->elementEnd('body');
         $this->elementEnd('html');
     } else {
         common_redirect(common_local_url('showfavorites', array('nickname' => $user->nickname)), 303);
     }
 }
Пример #6
0
 /**
  * Class handler.
  * 
  * @param array $args query arguments
  *
  * @return void
  */
 function handle($args)
 {
     parent::handle($args);
     if (!common_logged_in()) {
         $this->clientError(_('Not logged in.'));
         return;
     }
     $user = common_current_user();
     if ($_SERVER['REQUEST_METHOD'] != 'POST') {
         common_redirect(common_local_url('showfavorites', array('nickname' => $user->nickname)));
         return;
     }
     $id = $this->trimmed('notice');
     $notice = Notice::staticGet($id);
     $token = $this->trimmed('token-' . $notice->id);
     if (!$token || $token != common_session_token()) {
         $this->clientError(_("There was a problem with your session token. Try again, please."));
         return;
     }
     $fave = new Fave();
     $fave->user_id = $this->id;
     $fave->notice_id = $notice->id;
     if (!$fave->find(true)) {
         $this->clientError(_('This notice is not a favorite!'));
         return;
     }
     $result = $fave->delete();
     if (!$result) {
         common_log_db_error($fave, 'DELETE', __FILE__);
         $this->serverError(_('Could not delete favorite.'));
         return;
     }
     $user->blowFavesCache();
     if ($this->boolean('ajax')) {
         $this->startHTML('text/xml;charset=utf-8');
         $this->elementStart('head');
         $this->element('title', null, _('Add to favorites'));
         $this->elementEnd('head');
         $this->elementStart('body');
         $favor = new FavorForm($this, $notice);
         $favor->show();
         $this->elementEnd('body');
         $this->elementEnd('html');
     } else {
         common_redirect(common_local_url('showfavorites', array('nickname' => $user->nickname)));
     }
 }