Exemplo n.º 1
0
 private function getArray($res, $hpid, $luck, $project, $blist, $gravurl, $users, $cg, $times, $lkd, $glue)
 {
     $i = 0;
     $ret = [];
     while ($o = $res->fetch(PDO::FETCH_OBJ)) {
         if (in_array($o->from, $blist)) {
             continue;
         }
         $ret[$i]['fromid_n'] = $o->from;
         $ret[$i]['gravatarurl_n'] = $gravurl[$o->from];
         $ret[$i]['toid_n'] = $o->to;
         $ret[$i]['from_n'] = $users[$o->from];
         $ret[$i]['uid_n'] = "c{$o->hcid}";
         $ret[$i]['from4link_n'] = Utils::userLink($users[$o->from]);
         $ret[$i]['message_n'] = parent::bbcode($o->message, 1, $cg, 1, $o->hcid);
         $ret[$i]['datetime_n'] = $this->user->getDateTime($o->time);
         $ret[$i]['timestamp_n'] = $o->time;
         $ret[$i]['hcid_n'] = $o->hcid;
         $ret[$i]['hpid_n'] = $hpid;
         $ret[$i]['thumbs_n'] = $this->getThumbs($o->hcid, $project);
         $ret[$i]['uthumb_n'] = $this->getUserThumb($o->hcid, $project);
         $ret[$i]['revisions_n'] = $this->getRevisionsNumber($o->hcid, $project);
         $ret[$i]['caneditcomment_b'] = $this->canEdit((array) $o);
         if ($luck) {
             $ret[$i]['canshowlock_b'] = false;
             if (isset($lkd[$o->from]) && !in_array($o->from, $times) && $_SESSION['id'] != $o->from) {
                 $ret[$i]['lock_b'] = true;
                 $times[] = $o->from;
                 $ret[$i]['canshowlock_b'] = true;
             } elseif (!in_array($o->from, $times) && $_SESSION['id'] != $o->from) {
                 $ret[$i]['lock_b'] = false;
                 $times[] = $o->from;
                 $ret[$i]['canshowlock_b'] = true;
             }
         } else {
             $ret[$i]['canshowlock_b'] = $ret[$i]['lock_b'] = false;
         }
         $ret[$i]['canremove_b'] = $this->canRemove((array) $o, $project);
         ++$i;
     }
     if ($this->user->isLogged() && $i > 1) {
         Db::query(array('DELETE FROM "' . $glue . 'comments_notify" WHERE "to" = ? AND "hpid" = ?', array($_SESSION['id'], $hpid)), Db::NO_RETURN);
     }
     return $ret;
 }
Exemplo n.º 2
0
 public function read($fromid, $toid, $time, $pmid)
 {
     $ret = [];
     if (!is_numeric($fromid) || !is_numeric($toid) || !is_numeric($pmid) || !in_array($_SESSION['id'], array($fromid, $toid)) || !($res = Db::query(array('SELECT "message","to_read" FROM "pms" WHERE "from" = :from AND "to" = :to AND "pmid" = :pmid', array(':from' => $fromid, ':to' => $toid, ':pmid' => $pmid)), Db::FETCH_STMT))) {
         return false;
     }
     if ($o = $res->fetch(PDO::FETCH_OBJ)) {
         $from = User::getUsername($fromid);
         $ret['from4link_n'] = \NERDZ\Core\Utils::userLink($from);
         $ret['from_n'] = $from;
         $ret['datetime_n'] = $this->user->getDateTime($time);
         $ret['fromid_n'] = $fromid;
         $ret['toid_n'] = $toid;
         $ret['message_n'] = parent::bbcode($o->message);
         $ret['read_b'] = $o->to_read;
         $ret['pmid_n'] = $pmid;
         $ret['timestamp_n'] = $time;
     }
     return $ret;
 }
Exemplo n.º 3
0
 $fol = $project->getFollowers($info->counter);
 $vals['users_n'] = count($fol);
 $vals['users_a'] = [];
 $i = 0;
 foreach ($fol as $uid) {
     if (!($uname = User::getUsername($uid))) {
         continue;
     }
     $vals['users_a'][$i]['username_n'] = $uname;
     $vals['users_a'][$i]['username4link_n'] = \NERDZ\Core\Utils::userLink($uname);
     ++$i;
 }
 usort($vals['users_a'], 'NERDZ\\Core\\Utils::sortByUsername');
 $vals['owner_n'] = User::getUsername($project->getOwner());
 $vals['owner4link_n'] = \NERDZ\Core\Utils::userLink($vals['owner_n']);
 $vals['description_n'] = $messages->bbcode($info->description);
 $vals['goal_n'] = $messages->bbcode($info->goal);
 $vals['website_n'] = $vals['website4link_n'] = empty($info->website) ? 'http://' . Config\SITE_HOST . '/' : $info->website;
 $vals['openproject_b'] = $project->isOpen($info->counter);
 $vals['canifollow_b'] = $vals['logged_b'] && !in_array($_SESSION['id'], array_merge($mem, $fol));
 $vals['canshowmenu_b'] = $vals['logged_b'] && $_SESSION['id'] != $project->getOwner();
 if (!$vals['singlepost_b'] && !$vals['followers_b'] && !$vals['interactions_b'] && !$vals['members_b']) {
     $vals['canwrite_b'] = $vals['logged_b'] && ($project->isOpen($gid) || in_array($_SESSION['id'], $mem) || $_SESSION['id'] == $project->getOwner());
     $vals['canwriteissue_b'] = $vals['logged_b'] && $info->counter == Config\ISSUE_BOARD;
     $vals['canwritenews_b'] = !$vals['canwriteissue_b'] && $vals['logged_b'] && (in_array($_SESSION['id'], $mem) || $_SESSION['id'] == $project->getOwner());
 } else {
     // don't show textarea when in a singlepost
     $vals['canwritenews_b'] = $vals['canwrite_b'] = $vals['canwriteissue_b'] = false;
 }
 // single post handling
 $found = false;
Exemplo n.º 4
0
$prj = isset($_GET['project']);
$vals = [];
$vals['project_b'] = $prj;
if ($prj) {
    $orderby = $orderby == 'time' ? 'groups_bookmarks.time' : $orderby;
    $query = empty($q) ? array('SELECT p.*, EXTRACT(EPOCH FROM groups_bookmarks.time) AS time FROM "groups_bookmarks" INNER JOIN "groups_posts" p ON p.hpid = groups_bookmarks.hpid WHERE groups_bookmarks.from = ? ORDER BY ' . $orderby . ' ' . $order . ' LIMIT ' . $limit, array($_SESSION['id'])) : array("SELECT p.*, EXTRACT(EPOCH FROM groups_bookmarks.time) AS time FROM groups_bookmarks INNER JOIN groups_posts p ON p.hpid = groups_bookmarks.hpid WHERE groups_bookmarks.from = ? AND CAST({$orderby} AS TEXT) LIKE ? ORDER BY {$orderby} {$order} LIMIT {$limit}", array($_SESSION['id'], "%{$q}%"));
    $linkMethod = 'projectLink';
    $nameMethod = 'getName';
    $object = new Project();
} else {
    $orderby = $orderby == 'time' ? 'bookmarks.time' : $orderby;
    $query = empty($q) ? array("SELECT p.*, EXTRACT(EPOCH FROM bookmarks.time) AS time FROM bookmarks INNER JOIN posts p ON p.hpid = bookmarks.hpid WHERE bookmarks.from = ? ORDER BY {$orderby} {$order} LIMIT {$limit}", array($_SESSION['id'])) : array("SELECT p.*, EXTRACT(EPOCH FROM bookmarks.time) AS time FROM bookmarks INNER JOIN posts p ON p.hpid = bookmarks.hpid WHERE bookmarks.from = ? AND CAST({$orderby} AS TEXT) LIKE ? ORDER BY {$orderby} {$order} LIMIT {$limit}", array($_SESSION['id'], "%{$q}%"));
    $linkMethod = 'userLink';
    $nameMethod = 'getUsername';
    $object = $user;
}
$vals['list_a'] = [];
if ($r = Db::query($query, Db::FETCH_STMT)) {
    $i = 0;
    while ($o = $r->fetch(PDO::FETCH_OBJ)) {
        $vals['list_a'][$i] = $messages->getPost($o, ['project' => $prj, 'truncate' => true]);
        $vals['list_a'][$i]['name_n'] = $object->{$nameMethod}($o->to);
        $vals['list_a'][$i]['preview_n'] = $messages->bbcode(htmlspecialchars(substr(html_entity_decode($o->message, ENT_QUOTES, 'UTF-8'), 0, 256), ENT_QUOTES, 'UTF-8') . '...', true);
        $vals['list_a'][$i]['link_n'] = '/' . Utils::$linkMethod($vals['list_a'][$i]['name_n']) . $o->pid;
        ++$i;
    }
}
\NERDZ\Core\Security::setNextAndPrevURLs($vals, $limit, ['order' => $order, 'query' => $q, 'field' => empty($_GET['orderby']) ? '' : $_GET['orderby'], 'validFields' => ['time']]);
require_once $_SERVER['DOCUMENT_ROOT'] . '/pages/common/vars.php';
$user->getTPL()->assign($vals);
$user->getTPL()->draw('profile/bookmarks');