Example #1
0
 public function onSolrQuery(&$p)
 {
     $result =& $p['result'];
     $data =& $result['data'];
     $actionLogIds = array();
     $comments = new Objects\Plugins\Comments();
     //format ago date and collect log action ids
     foreach ($data as &$doc) {
         $la = Objects::getCachedObject($doc['id'])->getLastActionData();
         $la['agoText'] = Util\formatAgoTime($la['time']);
         $la['uids'] = array_reverse(array_keys($la['users']));
         $doc['lastAction'] = $la;
         $actionLogId = $la['users'][$la['uids'][0]];
         $doc['comments'] = $comments->getData($doc['id']);
         $actionLogIds[$actionLogId] =& $doc;
     }
     $logRecs = DM\Log::getRecords(array_keys($actionLogIds));
     foreach ($logRecs as $r) {
         $d = Util\jsonDecode($r['data']);
         $obj = Objects::getCachedObject($actionLogIds[$r['id']]['id']);
         $diff = $obj->getDiff($d);
         if (!empty($diff)) {
             $html = '';
             foreach ($diff as $fn => $fv) {
                 $html .= "<tr><th>{$fn}</th><td>{$fv}</td></tr>";
             }
             $actionLogIds[$r['id']]['diff'] = "<table class=\"as-diff\">{$html}</table>";
         }
     }
 }
Example #2
0
 /**
  * update own comment
  * @param array $p input params (id, msg)
  */
 public function updateComment($p)
 {
     $rez = array('success' => false);
     if (empty($p['id']) || !is_numeric($p['id']) || empty($p['text'])) {
         $rez['msg'] = L\get('Wrong_input_data');
         return $rez;
     }
     $comment = static::getCustomClassByObjectId($p['id']);
     $commentData = $comment->load();
     if ($commentData['cid'] == $_SESSION['user']['id']) {
         $commentData['data']['_title'] = $p['text'];
         $comment->update($commentData);
         Solr\Client::runCron();
         $rez = array('success' => true, 'data' => \CB\Objects\Plugins\Comments::loadComment($commentData['id']));
     }
     return $rez;
 }