" . $userid . " " . "INNER JOIN {$OPT["table_prefix"]}users u " . "ON u.userid = others.userid " . "LEFT OUTER JOIN {$OPT["table_prefix"]}shoppers s " . "ON s.mayshopfor = others.userid AND s.shopper = " . $userid . " " . "WHERE mymem.userid = " . $userid . " " . "AND (s.pending IS NULL OR s.pending = 1) " . "AND u.approved = 1 " . "ORDER BY u.fullname"; $rs = mysql_query($query) or die("Could not query: " . mysql_error()); $prospects = array(); while ($row = mysql_fetch_array($rs, MYSQL_ASSOC)) { $prospects[] = $row; } mysql_free_result($rs); $query = "SELECT messageid, u.fullname, message, created " . "FROM {$OPT["table_prefix"]}messages m " . "INNER JOIN {$OPT["table_prefix"]}users u ON u.userid = m.sender " . "WHERE m.recipient = " . $userid . " " . "AND m.isread = 0 " . "ORDER BY created DESC"; $rs = mysql_query($query) or die("Could not query: " . mysql_error()); $messages = array(); while ($row = mysql_fetch_array($rs, MYSQL_ASSOC)) { $row['created'] = strftime("%a, %b %d", strtotime($row['created'])); $messages[] = $row; } mysql_free_result($rs); $query = "SELECT CONCAT(YEAR(CURDATE()),'-',MONTH(eventdate),'-',DAYOFMONTH(eventdate)) AS DateThisYear, " . "TO_DAYS(CONCAT(YEAR(CURDATE()),'-',MONTH(eventdate),'-',DAYOFMONTH(eventdate))) AS ToDaysDateThisYear, " . "CONCAT(YEAR(CURDATE()) + 1,'-',MONTH(eventdate),'-',DAYOFMONTH(eventdate)) AS DateNextYear, " . "TO_DAYS(CONCAT(YEAR(CURDATE()) + 1,'-',MONTH(eventdate),'-',DAYOFMONTH(eventdate))) AS ToDaysDateNextYear, " . "TO_DAYS(CURDATE()) AS ToDaysToday, " . "TO_DAYS(eventdate) AS ToDaysEventDate, " . "e.userid, u.fullname, description, eventdate, recurring, s.pending " . "FROM {$OPT["table_prefix"]}events e " . "LEFT OUTER JOIN {$OPT["table_prefix"]}users u ON u.userid = e.userid " . "LEFT OUTER JOIN {$OPT["table_prefix"]}shoppers s ON s.mayshopfor = e.userid AND s.shopper = $userid "; if ($OPT["show_own_events"]) $query .= "WHERE (pending = 0 OR pending IS NULL)"; else $query .= "WHERE (e.userid <> $userid OR e.userid IS NULL) AND (pending = 0 OR pending IS NULL)"; $query .= "ORDER BY u.fullname"; $rs = mysql_query($query) or die("Could not query: " . mysql_error()); $events = array(); while ($row = mysql_fetch_array($rs, MYSQL_ASSOC)) { $event_fullname = $row["fullname"]; $days_left = -1; if (!$row["recurring"] && (($row["ToDaysEventDate"] - $row["ToDaysToday"]) >= 0) && (($row["ToDaysEventDate"] - $row["ToDaysToday"]) <= $OPT["event_threshold"])) { $days_left = $row["ToDaysEventDate"] - $row["ToDaysToday"]; $event_date = strtotime($row["eventdate"]); } else if ($row["recurring"] && (($row["ToDaysDateThisYear"] - $row["ToDaysToday"]) >= 0) && (($row["ToDaysDateThisYear"] - $row["ToDaysToday"]) <= $OPT["event_threshold"])) { $days_left = $row["ToDaysDateThisYear"] - $row["ToDaysToday"]; $event_date = strtotime($row["DateThisYear"]); } else if ($row["recurring"] && (($row["ToDaysDateNextYear"] - $row["ToDaysToday"]) >= 0) && (($row["ToDaysDateNextYear"] - $row["ToDaysToday"]) <= $OPT["event_threshold"])) { $days_left = $row["ToDaysDateNextYear"] - $row["ToDaysToday"]; $event_date = strtotime($row["DateNextYear"]); } if ($days_left >= 0) { $thisevent = array( 'fullname' => $event_fullname, 'eventname' => $row['description'], 'daysleft' => $days_left, 'date' => strftime("%B %d, %Y", $event_date) ); $events[] = $thisevent; } } mysql_free_result($rs); function compareEvents($a, $b) { if ($a[0] == $b[0]) return 0; else return ($a > $b) ? 1 : -1; } // i couldn't figure out another way to do this, so here goes. // sort() wanted to sort based on the array keys, which were 0..n - 1, so that was useless. usort($events, "compareEvents"); if ($OPT["shop_requires_approval"]) { $query = "SELECT u.userid, u.fullname " . "FROM {$OPT["table_prefix"]}shoppers s " . "INNER JOIN {$OPT["table_prefix"]}users u ON u.userid = s.shopper " . "WHERE s.mayshopfor = " . $userid . " " . "AND s.pending = 1 " . "ORDER BY u.fullname"; $rs = mysql_query($query) or die("Could not query: " . mysql_error()); $pending = array(); while ($row = mysql_fetch_array($rs, MYSQL_ASSOC)) { $pending[] = $row; } mysql_free_result($rs); } if (($_SESSION["admin"] == 1) && $OPT["newuser_requires_approval"]) { $query = "SELECT userid, fullname, email, approved, initialfamilyid, familyname " . "FROM {$OPT["table_prefix"]}users u " . "LEFT OUTER JOIN {$OPT["table_prefix"]}families f ON f.familyid = u.initialfamilyid " . "WHERE approved = 0 " . "ORDER BY fullname"; $rs = mysql_query($query) or die("Could not query: " . mysql_error()); $approval = array(); while ($row = mysql_fetch_array($rs, MYSQL_ASSOC)) { $approval[] = $row; } mysql_free_result($rs); } define('SMARTY_DIR',str_replace("\\","/",getcwd()).'/includes/Smarty-3.1.12/libs/'); require_once(SMARTY_DIR . 'Smarty.class.php'); $smarty = new Smarty(); $smarty->assign('fullname', $_SESSION['fullname']); if (isset($message)) { $smarty->assign('message', $message); } $smarty->assign('myitems', $myitems); $smarty->assign('myitems_count', $myitems_count); $smarty->assign('offset', $offset); $smarty->assign('shoppees', $shoppees); $smarty->assign('prospects', $prospects); $smarty->assign('messages', $messages); $smarty->assign('events', $events); $smarty->assign('pending', $pending); $smarty->assign('approval', $approval); $smarty->assign('userid', $userid); $smarty->assign('isadmin', $_SESSION['admin']); $smarty->assign('opt', $OPT); $smarty->display('home.tpl'); ?>