/** * @desc Realiza una búsqueda en el módulo desde EXM */ function bxpressSearch($queryarray, $andor, $limit, $offset, $userid = 0) { global $myts, $module; $db = XoopsDatabaseFactory::getDatabaseConnection(); $tbl1 = $db->prefix("mod_bxpress_topics"); $tbl2 = $db->prefix("mod_bxpress_posts_text"); $tbl3 = $db->prefix("mod_bxpress_posts"); if ($userid <= 0) { $sql = "SELECT a.*,b.*,c.* FROM {$tbl1} a, {$tbl2} b, {$tbl3} c "; $sql1 = ''; foreach ($queryarray as $k) { $sql1 .= ($sql1 == '' ? '' : " {$andor} ") . " (\n \t (a.title LIKE '%{$k}%' AND a.id_topic=c.id_topic) OR \n \t (b.post_text LIKE '%{$k}%' AND b.post_id=c.id_post))"; } $sql .= $sql1 != '' ? "WHERE {$sql1}" : ''; $sql .= $userid > 0 ? "GROUP BY c.id_topic" : " GROUP BY c.id_topic"; $sql .= " ORDER BY c.post_time DESC LIMIT {$offset}, {$limit}"; $result = $db->queryF($sql); } else { $sql = "SELECT a.*, b.*, c.post_text FROM {$tbl3} a, {$tbl1} b, {$tbl2} c WHERE a.uid='{$userid}' AND b.id_topic=a.id_topic \n AND c.post_id=a.id_post "; $sql1 = ''; foreach ($queryarray as $k) { $sql1 .= ($sql1 == '' ? 'AND ' : " {$andor} ") . "\n b.title LIKE '%{$k}%' AND c.post_text LIKE '%{$k}%'"; } $sql .= $sql1; $sql .= "ORDER BY a.post_time DESC\n LIMIT {$offset}, {$limit}"; $result = $db->query($sql); } include_once XOOPS_ROOT_PATH . '/modules/bxpress/class/bxpost.class.php'; include_once XOOPS_ROOT_PATH . '/modules/bxpress/class/bxfunctions.class.php'; $tc = TextCleaner::getInstance(); $ret = array(); while ($row = $db->fetchArray($result)) { $post = new bXPost(); $post->assignVars($row); $rtn = array(); $rtn['image'] = 'images/forum16.png'; $rtn['link'] = $post->permalink(); $rtn['title'] = $row['title']; $rtn['time'] = $row['post_time']; $rtn['uid'] = $row['uid']; $rtn['desc'] = substr($tc->clean_disabled_tags($row['post_text']), 0, 150) . '...'; $ret[] = $rtn; } return $ret; }
$edit = $forum->isAllowed($groups, 'edit'); $delete = $forum->isAllowed($groups, 'delete'); $report = $forum->isAllowed($groups, 'reply'); $moderator = $xoopsUser ? $forum->isModerator($xoopsUser->uid()) : false; $admin = $xoopsUser ? $xoopsUser->isAdmin() : false; $tbl1 = $db->prefix("mod_bxpress_posts"); $tbl2 = $db->prefix("mod_bxpress_posts_text"); $tbl3 = $db->prefix("mod_bxpress_likes"); $sql = "SELECT\n posts.*,\n texts.*,\n (SELECT COUNT(*) FROM {$tbl1} WHERE parent=posts.id_post) as replies,\n GROUP_CONCAT(tlikes.uid ORDER BY " . ($xoopsUser ? "tlikes.uid=" . $xoopsUser->uid() . ' DESC' : 'tlikes.uid') . ") as liked\n FROM\n {$tbl1} posts\n LEFT JOIN {$tbl3} tlikes ON tlikes.post=posts.id_post\n INNER JOIN {$tbl2} texts ON texts.post_id=posts.id_post\n WHERE\n posts.id_topic='" . $topic->id() . "'\n AND\n texts.post_id=posts.id_post\n GROUP BY\n posts.id_post\n ORDER BY\n posts.post_time ASC,\n posts.parent ASC\n LIMIT\n {$start},{$limit}"; $result = $db->query($sql); $users = array(); $posts_ids = array(); $posts = array(); while ($row = $db->fetchArray($result)) { $post = new bXPost(); $post->assignVars($row); // Permisos de edición y eliminación $canedit = $moderator || $admin ? true : $edit && $post->isOwner(); $candelete = $moderator || $admin ? true : $delete && $post->isOwner(); //Permiso de visualizar mensaje $canshow = $moderator || $admin ? true : false; // Datos del usuario if ($post->user() > 0) { if (!isset($users[$post->user()])) { $users[$post->user()] = new XoopsUser($post->user()); } $bbUser = $users[$post->user()]; $userData = array(); $userData['id'] = $bbUser->uid(); $userData['uname'] = $bbUser->uname(); $userData['name'] = $bbUser->getVar('name') != '' ? $bbUser->getVar('name') : $bbUser->uname();
public function getPosts($object = true, $id_as_key = true) { $result = $this->db->query("SELECT * FROM " . $this->db->prefix("mod_bxpress_posts") . " WHERE id_topic='" . $this->id() . "'"); $ret = array(); while ($row = $this->db->fetchArray($result)) { if ($object) { $attach = new bXPost(); $attach->assignVars($row); if ($id_as_key) { $ret[$row['id_post']] = $attach; } else { $ret[] = $attach; } } else { if ($id_as_key) { $ret[$row['id_post']] = $row; } else { $ret[] = $row; } } } return $ret; }
$daysnum = ceil($daysnum / 86400); //Lista de Mensajes recientes $tbl1 = $db->prefix('mod_bxpress_posts'); $tbl2 = $db->prefix('mod_bxpress_topics'); $tbl3 = $db->prefix('mod_bxpress_posts_text'); $tbl4 = $db->prefix('mod_bxpress_forums'); $sql = "SELECT a.*, b.*, c.post_text, d.* \n FROM {$tbl1} a, {$tbl2} b, {$tbl3} c, {$tbl4} d \n WHERE b.id_topic = a.id_topic AND c.post_id=a.id_post AND d.id_forum=b.id_forum\n GROUP BY a.id_topic \n ORDER BY a.post_time DESC \n LIMIT 0,5"; $result = $db->query($sql); $posts = array(); $topics = array(); $topic = new bXTopic(); $forum = new bXForum(); $pt = new bXPost(); while ($row = $db->fetchArray($result)) { //print_r($row); $pt->assignVars($row); $post = array('id' => $row['last_post'], 'date' => sprintf(__('Last post on %s', 'bxpress'), bXFunctions::formatDate($row['post_time'])), 'by' => sprintf(__('By %s', 'bxpress'), $row['poster_name']), 'link' => $pt->permalink(), 'uid' => $row['uid']); $topic->assignVars($row); $forum->assignVars($row); $topics[] = array('id' => $row['id_topic'], 'title' => $row['title'], 'post' => $post, 'link' => $topic->permalink(), 'forum' => array('id' => $forum->id(), 'name' => $forum->name(), 'link' => $forum->permalink())); } $sql = "SELECT * FROM {$tbl2} ORDER BY replies DESC LIMIT 0,5"; $result = $db->query($sql); $poptops = array(); $topic = new bXTopic(); while ($row = $db->fetchArray($result)) { $topic->assignVars($row); $forum->assignVars($row); $poptops[] = array('id' => $topic->id(), 'title' => $topic->title(), 'date' => sprintf(__('Created on %s', 'bxpress'), bXFunctions::formatDate($row['date'])), 'replies' => $topic->replies(), 'link' => $topic->permalink(), 'forum' => array('id' => $forum->id(), 'name' => $forum->name(), 'link' => $forum->permalink())); } unset($post, $pt, $topic, $result, $row, $sql, $tbl1, $tbl2, $tbl3);