Exemplo n.º 1
0
 public function doCreate()
 {
     $content = CW::$app->request->post('content');
     $updateId = CW::$app->request->post('updateId');
     if (empty($content) || empty($updateId)) {
         return false;
     }
     $replyTo = CW::$app->request->post('replyTo');
     $result = \models\Comment::create($content, $updateId, CW::$app->user->identity->id, 0 === $replyTo ? null : $replyTo);
     if ($result) {
         $result->owner = ['id' => CW::$app->user->identity->id, 'username' => htmlspecialchars(CW::$app->user->identity->username), 'profileUrl' => \models\User::getProfileUrl(CW::$app->user->identity->id), 'pictureUrl' => CW::$app->user->identity->getProfilePicUrl()];
         $result->postedAgo = \models\BaseModel::getPostedAgoTime(date("Y-m-d H:i:s", time()));
         $result->upvotes = 0;
         $result->replies = $replyTo ? false : [];
         $result->voted = false;
         $result->content = htmlspecialchars($result->content);
     }
     return json_encode($result);
 }
Exemplo n.º 2
0
 /**
  * 
  * @param array $updates
  * @return type
  */
 public static function setUpdatePostedFrom(&$updates)
 {
     if (!is_array($updates) || 0 === count($updates)) {
         return;
     }
     $users = [];
     foreach ($updates as &$update) {
         if (!isset($users[$update['user_id']])) {
             $users[$update['user_id']] = [];
         }
         $users[$update['user_id']][] =& $update;
     }
     $userIds = ArrayHelper::keyArray($users);
     if (0 === count($userIds)) {
         return;
     }
     $stmt = \CW::$app->db->executeQuery('SELECT id, username, profile_img_id FROM users WHERE id IN (' . ArrayHelper::getArrayToString($userIds, ',') . ')');
     $result = $stmt->fetchAll(\PDO::FETCH_ASSOC);
     foreach ($result as $user) {
         $user['imgUrl'] = \models\User::getProfilePictureUrl($user['profile_img_id'], $user['id']);
         $user['username'] = htmlspecialchars($user['username']);
         $user['profileUrl'] = \models\User::getProfileUrl($user['id']);
         foreach ($users[$user['id']] as &$update) {
             $update['from'] = $user;
         }
     }
 }
Exemplo n.º 3
0
    </div>
    <div style="background-color: #fff; border: 1px solid #ddd; border-top: 0px;">
        <div style="padding: 15px;">
    <div class="posted-from-c" style="margin: 1px;">
        <a href="<?php 
    echo \models\User::getProfileUrl($update['user_id']);
    ?>
">
            <img src="<?php 
    echo \models\User::getProfilePictureUrl($update['from']->profile_img_id, $update['from']->id);
    ?>
" class="posted-from-image" width="35" height="35">
        </a>
        <div class="posted-from-info-c">
            <a href="<?php 
    echo \models\User::getProfileUrl($update['user_id']);
    ?>
" class="link posted-from-username-link" style="font-weight: bold;"><?php 
    echo htmlspecialchars($update['from']->username);
    ?>
</a>
            <p class="posted-from-ago"><?php 
    echo $update['postedAgo'];
    ?>
</p>
        </div>
    </div>
    <?php 
    if (!empty($update['tags'])) {
        ?>
    <div style="padding: 10px 0px;">
Exemplo n.º 4
0
 public static function getReplies($replyTo, $last = null)
 {
     if (!is_numeric($replyTo) || !is_numeric($replyTo)) {
         return [];
     }
     $result = [];
     $result['hasMore'] = false;
     $last = is_numeric($last) ? " AND c.`posted_on` > {$last}" : '';
     $query = "SELECT c.*, u.id ownerId, u.username ownerUsername, u.profile_img_id FROM `comments` c JOIN `users` u ON c.`user_id` = u.`id` WHERE c.`reply_to` = {$replyTo} {$last} ORDER BY c.`posted_on` ASC LIMIT 7";
     $stmt = \CW::$app->db->executeQuery($query);
     $replies = $stmt->fetchAll(\PDO::FETCH_OBJ);
     $repliesCount = count($replies);
     $last = null;
     for ($i = 0; $i < $repliesCount; $i++) {
         $last = $replies[$i]->posted_on;
         $replies[$i]->postedAgo = BaseModel::getPostedAgoTime($replies[$i]->posted_on);
         $replies[$i]->content = htmlspecialchars($replies[$i]->content);
         $replies[$i]->owner = ['id' => $replies[$i]->ownerId, 'username' => htmlspecialchars($replies[$i]->ownerUsername), 'profileUrl' => \models\User::getProfileUrl($replies[$i]->ownerId), 'pictureUrl' => User::getProfilePictureUrl($replies[$i]->profile_img_id, $replies[$i]->ownerId)];
     }
     if (0 < $repliesCount) {
         $stmt = CW::$app->db->executeQuery("SELECT `reply_to` FROM `comments` WHERE `reply_to` = {$replyTo} AND `posted_on` > '" . $last . "' LIMIT 1");
         $_result = $stmt->fetchAll(\PDO::FETCH_ASSOC);
         if (0 < count($_result)) {
             $result['hasMore'] = true;
         }
     }
     $result['items'] = $replies;
     return $result;
 }