Esempio n. 1
0
 /**
  * Return kanji data for given id (frame number).
  * 
  * Must sanitize kanji id.
  * 
  * @param   Integer  $id      Frame number (in the future will be unicode)
  * @return  Object   Kanji rowdata as object, or FALSE
  */
 public static function getKanjiById($id)
 {
     if (!BaseValidators::validateInteger($id)) {
         return false;
     }
     self::getInstance()->select()->where('framenum = ?', $id)->query();
     return self::$db->fetchObject();
 }
Esempio n. 2
0
 /**
  * Ajax handler for Shared Stories component.
  * 
  * uid & sid identify the story to vote/report/copy.
  * 
  * Post:
  * 
  *   request     "star": star story
  *               "report": report story
  *               "copy": copy story
  *   uid         User id of the Story's author
  *   sid         Story id (framenum)
  * 
  * @return 
  */
 public function executeAjax($request)
 {
     if ($request->getMethod() === coreRequest::GET) {
         // reload component
         $framenum = $request->getParameter('framenum', false);
         if (!BaseValidators::validateInteger($framenum)) {
             throw new rtkAjaxException('Bad request.');
         }
         $kanjiData = (object) KanjisPeer::getKanjiById($framenum);
         return $this->renderComponent('study', 'SharedStories', array('framenum' => $framenum, 'kanjiData' => $kanjiData));
     } else {
         $sRequest = $request->getParameter('request', '');
         $sUid = $request->getParameter('uid');
         $sSid = $request->getParameter('sid');
         if (!preg_match('/^(star|report|copy)$/', $sRequest) || !BaseValidators::validateInteger($sUid) || !BaseValidators::validateInteger($sSid)) {
             throw new rtkAjaxException('Badrequest');
         }
         if ($sRequest === 'copy') {
             // get unformatted story with original tags for copy story feature
             $oStory = StoriesPeer::getStory($sUid, $sSid);
             if ($oStory) {
                 $oJSON = new stdClass();
                 $oJSON->text = $oStory->text;
                 return $this->renderText(coreJson::encode($oJSON));
             }
         } elseif ($sRequest === 'star') {
             $oJSON = StoryVotesPeer::starStory($this->getUser()->getUserId(), $sUid, $sSid);
             return $this->renderText(coreJson::encode($oJSON));
         } elseif ($sRequest === 'report') {
             $oJSON = StoryVotesPeer::reportStory($this->getUser()->getUserId(), $sUid, $sSid);
             return $this->renderText(coreJson::encode($oJSON));
         }
     }
     throw new rtkAjaxException('Badrequest');
 }
Esempio n. 3
0
 /**
  * Summary Table ajax
  * 
  * @return 
  */
 public function executeSummaryTable($request)
 {
     $ts_start = $request->getParameter('ts_start', 0);
     $this->forward404Unless(BaseValidators::validateInteger($ts_start));
     return $this->renderComponent('review', 'summaryTable', array('ts_start' => $ts_start));
 }