1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73
| <?php
class GiftList {
var $listId;
var $gifts;
var $ownerName;
function GiftList($listId)
{
global $database, $user;
if (empty($listId))
$listId = $user->id;
$this->listId = $listId;
$sqlQuery = "SELECT g.*, ".$database->timestamp("g.created")." as ts_created, ".$database->timestamp("g.updated")." as ts_updated, u.id as claimerId, u.name as claimerName, o.name as ownerName, cat.category as category_name FROM gft_category cat, gft_gift g
LEFT OUTER JOIN gft_user o ON g.owner=o.id
LEFT OUTER JOIN gft_claim c ON c.giftId=g.id
LEFT OUTER JOIN gft_user u ON c.userId=u.id ";
$whereClause = "WHERE forUser = '".addslashes($listId)."' AND g.category = cat.id ";
if ($listId != $user->id) {
$sqlQuery .= "LEFT OUTER JOIN gft_visibility v ON (v.giftId=g.id AND v.userId = '".addslashes($user->id)."') ";
$whereClause .= "AND (restricted = 0 OR v.userId is not null) ";
}
$whereClause .= "ORDER BY offered, offeredOn, cat.category, g.name";
$tmpGifts = $database->fetch($sqlQuery.$whereClause);
$curTime = time();
foreach ($tmpGifts as $tmpGift) {
if (!is_array($this->categories) || !in_array($tmpGift["category_name"], $this->categories))
$this->categories[] = $tmpGift["category_name"];
if ($curTime-$tmpGift["ts_created"] < 4*24*3600)
$tmpGift["new"] = true;
else if ($curTime-$tmpGift["ts_updated"] < 4*24*3600)
$tmpGift["recent"] = true;
$this->gifts[$tmpGift["category_name"]][] = $tmpGift;
}
$database->loadObject($this, "select name as ownerName from gft_user where id='".addslashes($listId)."'");
}
function numFree() {
$numFree = 0;
foreach ($this->gifts as $giftArr) {
if (empty($giftArr["claimerId"]))
$numFree++;
}
return $numFree;
}
function sendByEmail($to, $format = "")
{
global $user, $strings;
//ob_start();
$message = Controler::processTemplate("emailTextList", $user, $this);
//$message = ob_get_contents();
//ob_end_clean();
$result = $user->sendMail($to, $strings["LANG_EMAIL_SUBJECT"], $message, "X-Mailer: myGifts/PHP");
//echo "$message";
return $result;
}
function getParams()
{
}
}
Controler::registerHandler("giftList", "display", "GiftList", array("id"));
Controler::registerHandler("myList", "display", "GiftList", array("user"), 1);
Controler::registerHandler("sendByEmail", "all", "GiftList", array("user", "to"));
?> |
Partager