function &getList($cid, $uid, $limit, $start) { $ret = array(); $cid_sql = ($cid > 0)? " AND a.c_commu_id='".intval($cid)."'" : ""; $uid_sql = ($uid > 0)? " AND a.uid='".intval($uid)."'" : ""; $sql = "SELECT a.* FROM ". $this->prefix($this->table_name). " a,". $this->prefix('c_commu'). " c". " WHERE a.c_commu_id=c.c_commu_id". $cid_sql. $uid_sql. " ORDER BY a.r_datetime DESC"; if($rs = $this->db->query($sql, $limit, $start)){ while($row = $this->db->fetchArray($rs)){ $community =& $this->handler['community']->get(intval($row['c_commu_id'])); $user =& $this->handler['user']->get(intval($row['uid'])); if(is_object($community)){ $ret[] = array( 'member_id' => intval($row['uid']), 'member_name' => is_object($user) ? $user->getVar('uname') : '-', 'commu_id' => intval($row['c_commu_id']), 'commu_name' => $community->getVar('name'), 'time' => XsnsUtils::getUserTimestamp($row['r_datetime']), ); } unset($community, $user); } } return $ret; }
function b_xsns_information_show($options) { global $xoopsUser, $xoopsUserIsAdmin; if(!is_object($xoopsUser)){ return array(); } require_once dirname(dirname(__FILE__)).'/include/common_functions.php'; $db =& Database::getInstance(); $myts =& MyTextSanitizer::getInstance(); $mydirname = empty($options[0]) ? 'xsns' : $options[0]; if( preg_match( '/[^0-9a-zA-Z_-]/' , $mydirname ) ) die( 'Invalid dirname' ) ; $constpref = '_MB_'.strtoupper($mydirname); $block = array(); $sql = "SELECT mode,COUNT(*),MAX(r_datetime) AS max_r_datetime". " FROM ".$db->prefix($mydirname.'_c_commu_confirm'). " WHERE uid_to='".$xoopsUser->getVar('uid')."'". " GROUP BY mode". " ORDER BY max_r_datetime DESC"; $rs = $db->query($sql); if(!$rs || $db->getRowsNum($rs) < 1){ return array(); } require_once dirname(dirname(__FILE__)).'/userlib/utils.php'; while($row = $db->fetchArray($rs)){ $mode = intval($row['mode']); if(defined($constpref.'_INDEX_INFO_MSG_'.$mode)){ $block['info_list'][] = array( 'link' => XOOPS_URL.'/modules/'.$mydirname.'/?p=mypage&act=confirm#mode'.$mode, 'title' => sprintf(constant($constpref.'_INDEX_INFO_MSG_'.$mode), $row['COUNT(*)']), 'time' => XsnsUtils::getUserTimestamp($row['max_r_datetime']), ); } } $tpl = new XoopsTpl(); $tpl->assign('block', $block); $ret = array(); $ret['content'] = $tpl->fetch('db:'.$mydirname.'_block_information.html'); return $ret; }
function getUserDatetime($datetime, $timeoffset="") { return date('Y-m-d H:i:s', XsnsUtils::getUserTimestamp($datetime, $timeoffset)); }
function &getListForUser($uid_to, $limit=0, $start=0) { $ret = array(); $sql = "SELECT uid_from,MAX(r_datetime) as max_r_datetime". " FROM ".$this->prefix('c_mypage_footprint'). " WHERE uid_to='".intval($uid_to)."'". " GROUP BY uid_from,r_date". " ORDER BY max_r_datetime DESC"; if($limit > 0){ if($start > 0){ $sql.= " LIMIT ".$start.",".$limit; } else{ $sql.= " LIMIT ".$limit; } } if($rs = $this->db->query($sql)){ while($row = $this->db->fetchArray($rs)){ $ret[] = array( 'uid_from' => $row['uid_from'], 'time' => XsnsUtils::getUserTimestamp($row['max_r_datetime']), ); } } return $ret; }
function &getListForCommunity($cid, $limit=0, $start=0, $get_body=false) { $ts =& XsnsTextSanitizer::getInstance(); $image_handler =& XsnsImageHandler::getInstance(); $file_handler =& XsnsFileHandler::getInstance(); $ret = array(); $base_url = XSNS_URL_TOPIC.'&tid='; $sql = "SELECT ". "ct.c_commu_topic_id AS tid,". "ct.name AS tname,". "MAX(ctc.r_datetime) AS max_r_datetime,". "ctc.c_commu_topic_comment_id AS tcid,". "COUNT(*) AS comment_count". " FROM ". $this->prefix('c_commu_topic_comment'). " ctc". " INNER JOIN ". $this->prefix('c_commu_topic'). " ct". " USING(c_commu_topic_id)". " WHERE ct.c_commu_id='".intval($cid)."'". " GROUP BY ctc.c_commu_topic_id". " ORDER BY max_r_datetime DESC"; $rs = $this->db->query($sql, $limit, $start); if(!$rs){ return $ret; } if($get_body){ $comment_handler =& XsnsTopicCommentHandler::getInstance(); while($row = $this->db->fetchArray($rs)){ $comment =& $comment_handler->getByNumber($row['tid'], 0); $ret[] = array( 'name' => $ts->makeTboxData4Show($row['tname']), 'time' => XsnsUtils::getUserTimestamp($row['max_r_datetime']), 'page_url' => $base_url. intval($row['tid']), 'comment_count' => intval($row['comment_count'])-1, // except comment No.0 'body' => $comment->getVar('body'), 'images' => $image_handler->getList(2, intval($row['tcid'])), 'files' => $file_handler->getList(2, intval($row['tcid'])), ); unset($comment); } } else{ while($row = $this->db->fetchArray($rs)){ $ret[] = array( 'name' => $ts->makeTboxData4Show($row['tname']), 'time' => XsnsUtils::getUserTimestamp($row['max_r_datetime']), 'page_url' => $base_url. intval($row['tid']), 'comment_count' => intval($row['comment_count'])-1, // except comment No.0 'body' => '', ); unset($comment); } } return $ret; }
function &getInformationList() { $ret = array(); $sql = "SELECT mode,COUNT(*),MAX(r_datetime) AS max_r_datetime". " FROM ".$this->handler['confirm']->prefix('c_commu_confirm'). " WHERE uid_to='".$this->getVar('uid')."'". " GROUP BY mode". " ORDER BY max_r_datetime DESC"; $rs = $this->handler['confirm']->db->query($sql); if(!$rs || $this->handler['confirm']->db->getRowsNum($rs) < 1){ return $ret; } while($row = $this->handler['confirm']->db->fetchArray($rs)){ $mode = intval($row['mode']); if(defined('_MD_XSNS_INDEX_INFO_MSG_'.$mode)){ $ret[] = array( 'message' => sprintf(constant('_MD_XSNS_INDEX_INFO_MSG_'.$mode), $row['COUNT(*)']), 'url' => XSNS_URL_MYPAGE.'&'.XSNS_ACTION_ARG.'=confirm#mode'.$mode, 'time' => XsnsUtils::getUserTimestamp($row['max_r_datetime']), ); } } return $ret; }
/** * returns a specific variable for the object in a proper format * * @access public * @param string $key key of the object's variable to be returned * @param string $format format to use for the output * @return mixed formatted value of the variable */ function &getVar($key, $format = 's') { // for XsnsTextSanitizer // $ts =& XsnsTextSanitizer::getInstance(); if(!isset($this->vars[$key]['value'])){ $ret = NULL; return $ret; } $ret = $this->vars[$key]['value']; switch ($this->vars[$key]['data_type']) { case XOBJ_DTYPE_TXTBOX: switch (strtolower($format)) { case 's': case 'show': case 'e': case 'edit': $ts =& XsnsTextSanitizer::getInstance(); $ret = $ts->htmlSpecialChars($ret); break 1; case 'p': case 'preview': case 'f': case 'formpreview': $ts =& XsnsTextSanitizer::getInstance(); $ret = $ts->htmlSpecialChars($ts->stripSlashesGPC($ret)); break 1; case 'n': case 'none': default: break 1; } break; case XOBJ_DTYPE_TXTAREA: switch (strtolower($format)) { case 's': case 'show': $ts =& XsnsTextSanitizer::getInstance(); $ret = $ts->displayTarea($ret, $this->doHtml, $this->doSmiley, $this->doXcode, $this->doImage, $this->doBr); break 1; case 'e': case 'edit': $ret = htmlspecialchars($ret, ENT_QUOTES); break 1; case 'p': case 'preview': $ts =& XsnsTextSanitizer::getInstance(); $ret = $ts->previewTarea($ret, $this->doHtml, $this->doSmiley, $this->doXcode, $this->doImage, $this->doBr); break 1; case 'f': case 'formpreview': $ts =& XsnsTextSanitizer::getInstance(); $ret = htmlspecialchars($ts->stripSlashesGPC($ret), ENT_QUOTES); break 1; // strip XOOPS Code ************************ case 'x': $ts =& XsnsTextSanitizer::getInstance(); $ret = $ts->stripXoopsCode($ret); break 1; // ***************************************** case 'n': case 'none': default: break 1; } break; case XOBJ_DTYPE_ARRAY: $ret = unserialize($ret); break; case XOBJ_DTYPE_SOURCE: switch (strtolower($format)) { case 's': case 'show': break 1; case 'e': case 'edit': $ret = htmlspecialchars($ret, ENT_QUOTES); break 1; case 'p': case 'preview': $ts =& XsnsTextSanitizer::getInstance(); $ret = $ts->stripSlashesGPC($ret); break 1; case 'f': case 'formpreview': $ts =& XsnsTextSanitizer::getInstance(); $ret = htmlspecialchars($ts->stripSlashesGPC($ret), ENT_QUOTES); break 1; case 'n': case 'none': default: break 1; } break; case XOBJ_DTYPE_DATE: case XOBJ_DTYPE_DATETIME: $ret = XsnsUtils::getUserTimestamp($ret); break; default: if ($this->vars[$key]['options'] != '' && $ret != '') { switch (strtolower($format)) { case 's': case 'show': $selected = explode('|', $ret); $options = explode('|', $this->vars[$key]['options']); $i = 1; $ret = array(); foreach ($options as $op) { if (in_array($i, $selected)) { $ret[] = $op; } $i++; } $ret = implode(', ', $ret); case 'e': case 'edit': $ret = explode('|', $ret); break 1; default: break 1; } } break; } return $ret; }