$aDefFields = array( 'ID', 'NickName', 'Couple', 'Sex' ); $sCode = ''; $iOnlineTime = (int)getParam( "member_online_time" ); //main fields $sqlMainFields = ""; foreach ($aDefFields as $iKey => $sValue) $sqlMainFields .= "`Profiles`. `$sValue`, "; $sqlMainFields .= "if(`DateLastNav` > SUBDATE(NOW(), INTERVAL $iOnlineTime MINUTE ), 1, 0) AS `is_online`"; // possible conditions $sqlCondition = "WHERE `Profiles`.`Status` = 'Active' and (`Profiles`.`Couple` = 0 or `Profiles`.`Couple` > `Profiles`.`ID`)"; $aParams = array(); if (is_array($aParams)) { foreach ($aParams as $sField => $sValue) $sqlCondition .= " AND `Profiles`.`$sField` = '$sValue'"; } $sqlOrder = ""; $oVotingView = new BxTemplVotingView ('profile', 0, 0); $aSql = $oVotingView->getSqlParts('`Profiles`', '`ID`'); $sqlOrder = $oVotingView->isEnabled() ? " ORDER BY `Profiles`.`Couple` ASC, (`pr_rating_sum`/`pr_rating_count`) DESC, `pr_rating_count` DESC, `Profiles`.`DateReg` DESC" : $sqlOrder; $sqlMainFields .= $aSql['fields']; $sqlLJoin = $aSql['join']; $sqlCondition .= " AND `pr_rating_count` > 1"; if (empty($sqlLJoin)) $sqlLJoin = ''; $iCount = (int)db_value("SELECT COUNT(`Profiles`.`ID`) FROM `Profiles` $sqlLJoin $sqlCondition"); $aData = array(); $sqlQuery = "SELECT " . $sqlMainFields . " FROM `Profiles` $sqlLJoin $sqlCondition $sqlOrder LIMIT 10"; $rData = db_res($sqlQuery); if ($iCount) { $aOnline = $aTmplVars = array(); while ($aData = mysql_fetch_assoc($rData)) { $aOnline['is_online'] = $aData['is_online']; $aTmplVars[] = array( 'thumbnail' => get_member_thumbnail($aData['ID'], 'none', true, 'visitor', $aOnline) ); } $sCode = $GLOBALS['oSysTemplate']->parseHtmlByName('members_list.html', array( 'bx_repeat:list' => $aTmplVars )); } else { $sCode = MsgBox(_t("_Empty")); } echo $sCode;