Компонент JPresents изначально берет поинты с JomSocial..
собственно всё..
<?php
// ensure this file is being included by a parent file
defined( '_JEXEC' ) or die( 'Direct Access to this location is not allowed.' );
global $mainframe, $ja_config;
//require_once($mainframe->getPath('front_html'));
require_once($mainframe->getPath('class'));
require_once(JPATH_SITE."/includes/pageNavigation.php");
// Language:
if (file_exists(JPATH_SITE.DS."administrator".DS."components".DS."com_jpresents".DS."language".DS.$mosConfig_lang.".php"))
include_once(JPATH_SITE.DS."administrator".DS."components".DS."com_jpresents".DS."language".DS.$mosConfig_lang.".php");
else
include_once(JPATH_SITE.DS."administrator".DS."components".DS."com_jpresents".DS."language".DS."english.php");
// config file:
require_once(JPATH_SITE.DS."administrator".DS."components".DS."com_jpresents".DS."config.jpresents.php");
$award = intval(JRequest::getVar('award' , '' ));
$limit_medals = intval(JRequest::getVar('limit', JRequest::getVar('limit', $ja_config['number_medals'])));
$limit_users = intval(JRequest::getVar('limit', JRequest::getVar('limit', $ja_config['number_users'])));
$limitstart = intval(JRequest::getVar('limitstart', JRequest::getVar('limitstart', 0)));
$option = JRequest::getVar('option',JRequest::getVar('option', 'com_jpresents' ));
$my = &JFactory::getUser();
switch ($task) {
case "delete":
if($my->guest)
{ JError::raiseError( 403, JText::_("ALERTNOTAUTH") ); }
else
{ delete(); }
break;
case "listusers":
listUsers($award, $option, $limit_users, $limitstart);
break;
case "sendgift":
if($my->guest)
{ JError::raiseError( 403, JText::_("ALERTNOTAUTH") ); }
else
{ sendgift(); }
break;
case 'savepresent':
if($my->id)
{
savepresent($my->id);
}
else { JError::raiseError( 403, JText::_("ALERTNOTAUTH") ); }
break;
case 'getdetails':
if($my->id)
{
getdetails();
}
else { JError::raiseError( 403, JText::_("ALERTNOTAUTH") ); }
break;
default:
view($option, $limit_medals, $limitstart);
break;
}
function delete()
{
$award = intval(JRequest::getVar( 'presid', null));
global $my;
$database = &JFactory::getDBO();
$query = "DELETE FROM #__jpresents_presents WHERE id = $award AND userid = ".$my->id;
$database->setQuery($query);
$database->query();
$link = JUri::base()."/index.php?option=com_community&view=profile&userid=".$my->id;
$app = &JFactory::getApplication();
$app->redirect($link, _JPRESENTS_PRESDELETED);
}
function getdetails()
{
$award = intval(JRequest::getVar( 'presid', null));
$touser = intval(JRequest::getVar( 'touser' , '' ));
$database = &JFactory::getDBO();
$query = "SELECT * FROM #__jpresents_gifts WHERE id = $award";
$database->setQuery($query);
$awards = $database->loadObjectList();
$out = '<div><form name="verschenken" action="'.JUri::base().'index.php" method="GET" target="_top">';
$out .= "<input type='hidden' name='option' value='com_jpresents'>";
$out .= "<input type='hidden' name='task' value='savepresent'>";
$out .= "<input type='hidden' name='toid' value='".$touser."'>";
$out .= "<input type='hidden' name='presid' value='".$award."'>";
$out .= "<div style='float:left; width:170px;'><img src='".JUri::base()."/images/gifts/".$awards[0]->image."' height='100'></div><div>";
$out .= "<br /><b>".html_entity_decode($awards[0]->name)."</b>";
$out .= "<br>".stripslashes($awards[0]->desc_text). "";
$out .= "<br><br>"._JPRESENTS_PRESCOSTS."<b>".$awards[0]->price." "._JPRESENTS_POINTS."</b></div>";
$out .= "<p>"._JPRESENTS_MESSAGE."<br>";
$out .= '<TEXTAREA NAME="reason" COLS=60 ROWS=6></TEXTAREA><br>';
$out .= "<input type='radio' name='privacy' checked='checked' value='0'>"._JPRESENTS_VISIBILITY."<input type='radio' name='privacy' value='1'>"._JPRESENTS_VISIBLE_RECEPIENT."</p><br>";
$out .= "<input type='submit' class='button' value='"._JPRESENTS_SENDPRESENT."'></form></div>";
echo $out;
}
function savepresent($id)
{
$award = intval(JRequest::getVar( 'presid', null));
$toid = intval(JRequest::getVar( 'toid', null));
if($id && $award && toid)
{
if(check_price($id,$award))
{
savepres($id,$award,$toid);
$link = JUri::base()."index.php?option=com_community&view=profile&userid=".$toid;
$app = &JFactory::getApplication();
$app->redirect($link, _JPRESENTS_GIFT_SENDED);
}
else
{
//echo "muuuh";
}
}
else
{ JError::raiseError( 403, JText::_("ALERTNOTAUTH") ); }
}
function savepres($id,$award,$toid)
{
$reason = strip_tags(JRequest::getVar( 'reason', null));
$reason = addslashes($reason);
$privacy = intval(JRequest::getVar( 'privacy', 0));
$date = date("Y-m-d");
$database = &JFactory::getDBO();
$query = "INSERT INTO #__jpresents_presents (userid,award,reason,donatorid,privacy,date) VALUES ($toid,$award,'$reason',$id,$privacy,'$date')";
$database->setQuery($query);
$database->query();
$query = "SELECT price FROM #__jpresents_gifts WHERE id = $award";
$database->setQuery($query);
$price = $database->loadResult();
//reduce points
if($price == 0) {}
else
{
$query = "SELECT points FROM #__community_users WHERE userid = $id";
$database->setQuery($query);
$point = $database->loadResult();
$newpoint = $point - $price;
$query = "UPDATE #__community_users SET points = $newpoint WHERE userid=$id";
$database->setQuery($query);
$database->query();
}
//send email and notification
$query = "SELECT email,username FROM #__users WHERE id = $id";
$database->setQuery($query);
$email = $database->loadObjectList();
//JUtility::sendMail('info@yubby.de', 'Yubby - Deine Community', $email[0]->email, 'Neues Geschenk auf yubby.de!', 'Hallo '.$email[0]->username.',<br /><br />für dich liegt ein neues Geschenk auf yubby.de bereit.<br /><br />Bitte logge dich auf http://www.yubby.de ein und klicke auf die eingetroffen Nachricht um zu deinem Geschenk zu gelangen.<br /><br />Viele Gruesse<br />Deine Community Crew' );
$query = "SELECT id FROM #__community_msg ORDER BY id DESC";
$database->setQuery($query);
$start = $database->loadResult();
$start = $start + 10;
$namee = $email[0]->username;
$datum = date("Y-m-d H:i:s");
$query = "INSERT INTO #__community_msg (`id`,`from`,`parent`,`from_name`,`posted_on`,`subject`,`body`,`deleted`) VALUES ($start,$id,$start,'".$namee."','".$datum."','"._JPRESENTS_NEW_PRESENT."','"._JPRESENTS_NEW_TEXT."<a href=\'".JUri::base()."index.php?option=com_community&view=profile&userid=".$toid."\'> KLICK</a>',0)";
$database->setQuery($query);
$database->query();
$query = "INSERT INTO #__community_msg_recepient (`msg_id`,`msg_parent`,`msg_from`,`to`) VALUES ($start,$start,$id,$toid)";
$database->setQuery($query);
if(!$database->query())
{
echo $database->getErrorMsg();
die();
}
}
function check_price($id,$award)
{
$database = &JFactory::getDBO();
$query = "SELECT points FROM #__community_users WHERE userid = $id";
$database->setQuery($query);
$points = $database->loadObjectList();
if ($points[0])
{
$point = $points[0]->points + 1;
$query = "SELECT id FROM #__jpresents_gifts WHERE id = $award AND price < ".$point;
$database->setQuery($query);
$poi = $database->loadObjectList();
if ($poi[0]) return true;
else return false;
}
else return false;
}
function sendgift()
{
$database = &JFactory::getDBO();
$user = &JFactory::getUser();
$query = "SELECT points FROM #__community_users WHERE userid = $user->id";
$database->setQuery($query);
$points = $database->loadResult();
$touser = intval(mosGetParam( $_GET, 'touser' , '' ));
$username = html_entity_decode(mosGetParam( $_GET, 'username' , '' ));
echo "<br /><div style='border:1px solid #ccc; background:#fdf6c9; padding:5px;'>"._JPRESENTS_WANTTO."<b> ".$username."</b>"._JPRESENTS_CHOOSE."</div>";
echo "<br /><span style='float:right;'>"._JPRESENTS_POINTS.":<b> ".$points."</b></span><p style='clear:left; clear:right;'> </p>";
$query = "SELECT * FROM #__jpresents_gifts ORDER BY price";
$database->setQuery($query);
$gifts = $database->loadObjectList();
if($gifts)
{
?>
<script type="text/javascript" src="<?php echo JUri::base(); ?>components/com_jpresents/ibox/ibox.js"></script>
<script type="text/javascript">iBox.setPath("<?php echo JUri::base(); ?>components/com_jpresents/ibox/");</script>
<?php
$out = "";
$count = 0;
$total = 0;
$out .= "<table width='100%'><tr><td><b>"._JPRESENTS_GIFT."</b></td><td><b>"._JPRESENTS_TITLE."</b></td><td><b>"._JPRESENTS_DESC."</b></td><td><b>"._JPRESENTS_PRICE."</b></td></tr>";
foreach($gifts as $gift)
{
if($count == 2)
{
$out .= "<span style='clear:left;'></span>";
$count = 0;
}
if($gift->price > $points)
{
/*$out .= "<div id='geschenkbox'><div style='float:left; width: 100px;'><div id='inner_content".$total."' style='display:none;'>"._JPRESENTS_NOTENOUGH."</div><a href='#inner_content".$total."' rel='ibox' title='Внимание!'><img src='".JUri::base()."/images/gifts/".$gift->image."' height='80' border='0'></a></div><div><b>".$gift->name."</b><br />".$gift->desc_text."<br /><br />"._JPRESENTS_COSTS."<span style='float:right;'><b> " .$gift->price._JPRESENTS_POINTS."</b></span></div></div>";*/
$out .= "<tr>";
$out .= "<td><div id='inner_content".$total."' style='display:none;'>"._JPRESENTS_NOTENOUGH."</div><a href='#inner_content".$total."' rel='ibox' title='Внимание!'><img src='".JUri::base()."images/gifts/".$gift->image."' height='50' border='0'></a></div></td>";
$out .= "<td>".html_entity_decode($gift->name)."</td>";
$out .= "<td>".stripslashes($gift->desc_text)."</td>";
$out .= "<td>".$gift->price."</td>";
$out .= "</tr>";
}
else
{
/*$out .= "<div id='geschenkbox'><div style='float:left; width: 100px;'><a href='".JUri::base()."/index2.php?option=com_jpresents&task=getdetails&presid=".$gift->id."&touser=".$touser."' title='"._JPRESENTS_GIFTTO.$username."' rel='ibox&width=400&height=320'><img src='".JUri::base()."/images/gifts/".$gift->image."' height='80' border='0'></a></div><div><b>".$gift->name . "</b><br />".$gift->desc_text."<br /><br />"._JPRESENTS_COSTS."<span style='float:right;'><b> " .$gift->price._JPRESENTS_POINTS."</b></span></div></div>";*/
$out .= "<tr>";
$out .= "<td><a href='".JUri::base()."index2.php?option=com_jpresents&task=getdetails&presid=".$gift->id."&touser=".$touser."' title='"._JPRESENTS_GIFTTO.$username."' rel='ibox&width=400&height=320'><img src='".JUri::base()."images/gifts/".$gift->image."' height='50' border='0'></a></td>";
$out .= "<td>".html_entity_decode($gift->name)."</td>";
$out .= "<td>".stripslashes($gift->desc_text)."</td>";
$out .= "<td>".$gift->price."</td>";
$out .= "</tr>";
}
$count++;
$total++;
}
$out .= "</table>";
echo $out;
}
else { echo "<b>"._JPRESENTS_NOPRESENTS."</b>"; }
}
function view($option, $limit, $limitstart=0) {
$database = &JFactory::getDBO();
// get number of medals for pagination:
$query = "SELECT COUNT(*) FROM #__jpresents_gifts";
$database->setQuery($query);
$total = $database->loadResult();
$query = "SELECT a.*, COUNT(b.award) AS count FROM #__jpresents_gifts AS a"
. " \n LEFT OUTER JOIN #__jpresents_presents AS b"
. " \n ON a.id=b.award"
. " \n GROUP BY a.id"
. "\n ORDER BY a.ordering,a.name"
. " \n LIMIT $limitstart,$limit";
$database->setQuery( $query );
if(!$result = $database->query()) {
return false;
}
$rows = $database->loadObjectList();
$pageNav = new mosPageNav($total, $limitstart, $limit);
displayAwards($rows, $option, $pageNav);
}
function listUsers($award, $option, $limit, $limitstart=0) {
global $ja_config;
$database = &JFactory::getDBO();
$grouping = $ja_config['groupawards'];
// get number of users for pagination:
$query = "SELECT COUNT(";
if ($grouping)
$query .= "DISTINCT ";
$query .="userid) FROM #__jpresents_presents"
. "\n WHERE award = $award";
$database->setQuery($query);
$total = $database->loadResult();
// Load the users:
$query = "SELECT ua.*,u.username, u.id AS userid, y.username AS donatorname";
if ($grouping) $query .=", COUNT(ua.userid) AS count";
$query .= " FROM #__jpresents_presents as ua"
. "\n LEFT JOIN #__users AS u ON u.id = ua.userid"
. "\n LEFT JOIN #__users AS y ON ua.donatorid = y.id" // aded for donator username
. "\n WHERE ua.award = $award";
$query .= "\n ORDER BY u.username"
. " \n LIMIT $limitstart,$limit";
$database->setQuery( $query );
if(!$result = $database->query()) {
return false;
}
$rows = $database->loadObjectList();
// Load Award details:
$query = "SELECT * FROM #__jpresents_gifts WHERE id=$award";
$database->setQuery( $query );
if(!$result = $database->query()) {
return false;
}
$awardres = $database->loadObjectList();
$pageNav = new mosPageNav($total, $limitstart, $limit);
showUsers($rows, $awardres[0], $option, $pageNav);
}
function displayAwards(&$rows, &$option, &$pageNav) {
global $ja_config,$mainframe;
// include CSS template:
$template = '<link type="text/css" rel="stylesheet" href="' . JURI::base().'components/com_jpresents/template.css" />';
$mainframe->addCustomHeadTag($template);
echo ("<div class=\"componentheading\">". _JPRESENTS_HEADING ."</div>");
echo ("<p class=\"jg_introtext\">".$ja_config['introtext']."</p>");
?>
<form action="index.php" id="medalsForm" name="medalsForm" method="post">
<div align="right">
<?php echo _JPRESENTS_ADM_DISPLAY."# "; echo $pageNav->writeLimitBox("index.php?option=$option"); ?>
</div>
<input type="hidden" name="option" value="<?php echo $option ?>" />
<input type="hidden" name="limit" value="<?php echo $pageNav->limit;?>" />
<input type="hidden" name="limitstart" value="<?php echo $pageNav->limitstart;?>" />
</form>
<?php
$out = "<table width='100%'><tr><td><b>"._JPRESENTS_GIFT."</b></td><td><b>"._JPRESENTS_TITLE."</b></td><td><b>"._JPRESENTS_DESC."</b></td><td><b>"._JPRESENTS_POINTS."</b></td><td><b>"._JPRESENTS_ALREADY_GIFTED."</b></td></tr>";
foreach($rows as $row){
$out .= "<tr>";
$out .= "<td><img src='".JUri::base()."/images/gifts/".$row->image."' height='40'></td>";
$out .= "<td>".html_entity_decode($row->name)."</td>";
$out .= "<td>".stripslashes($row->desc_text)."</td>";
$out .= "<td>".$row->price."</td>";
if ($row->count){
$out.= "<td><a href=\"".JRoute::_("index.php?option=$option&task=listusers"
. "&award=$row->id"). "\" class=\"readon\">($row->count " ._JPRESENTS_GIFTED.")</a></td>";
}
else{
$out.= "<td>(0 "._JPRESENTS_GIFTED.")</td>";
}
/*echo "<div class=\"jg_present_list\"><h3>".$row->name."</h3>
<p><a href='".JUri::base()."/images/gifts/".$row->image."' target='_blank'><img class=\"jg_gift\" alt=\"$row->image\" src=\"images/gifts/$row->image\" height=\"40\" border=\"0\"></a>
$row->desc_text</p>
<table><tr><td><span class=\"readon\"><b>Punkte:</b> ".$row->price."</span></td></tr><tr><td>";
if ($row->count){
echo "<a href=\"".sefRelToAbs("index.php?option=$option&task=listusers"
. "&award=$row->id"). "\" class=\"readon\">($row->count " ._JPRESENTS_GIFTED.")</a>";
}
else{
echo "(0 "._JPRESENTS_GIFTED.")";
}
echo "</td></tr></table></div>";*/
}
$out .= "</table>";
echo $out;
?>
<div align="center"><?php echo $pageNav->writePagesLinks("index.php?option=$option"). "<br />";
echo $pageNav->writePagesCounter()?></div>
<?php
}
function showUsers(&$rows, &$awardres, &$option, &$pageNav) {
global $ja_config,$mainframe;
// include CSS template:
$template = '<link type="text/css" rel="stylesheet" href="' . JUri::base().'/components/com_jpresents/template.css" />';
$mainframe->addCustomHeadTag($template);
echo "<div class=\"jg_present_details\"><img class=\"jg_gift\" src=\"images/gifts/$awardres->image\"><h3> $awardres->name</h3>";
echo "<p>$awardres->desc_text</p></div>";
if (count($rows)==0){
echo _JPRESENTS_NO_USERS;
}
else {
echo "<p>"._JPRESENTS_FOLLOWING_USERS_GIFTED."</p>";
?>
<form action="index.php" id="medalsForm" name="awardForm" method="post">
<div align="right">
<?php echo _JPRESENTS_ADM_DISPLAY."# "; echo $pageNav->writeLimitBox("index.php?option=$option&task=listusers&award=$awardres->id"); ?>
</div>
<input type="hidden" name="option" value="<?php echo $option ?>" />
<input type="hidden" name="limit" value="<?php echo $pageNav->limit;?>" />
<input type="hidden" name="limitstart" value="<?php echo $pageNav->limitstart;?>" />
</form>
<?php
$line = 0;
$t_heading='<table class="jg_userstable" cellpadding="5px" cellspacing="0px" ><tbody>'.
'<tr class="sectiontableheader"><td>'._JPRESENTS_NAME.'</td><td>'._JPRESENTS_DATE."</td>";
$t_heading.="<td>"._JPRESENTS_DONATOR."</td></tr>";
echo $t_heading;
foreach ($rows as $row){
$t_row = "";
$linecolor=($line % 2) + 1;
$link = sefRelToAbs("index.php?option=com_community&view=profile&userid=$row->userid");
$t_row.='<tr class="sectiontableentry'.$linecolor . '"><td>';
$t_row.="<a href=\"$link\">$row->username</a>";
$t_row.="</td><td>"
.strftime($ja_config['dateformat'],strtotime($row->date))
."</td>";
$t_row.= "<td><a href='".JRoute::_('index.php?option=com_community&view=profile&userid='.$row->donatorid)."'>".$row->donatorname."</a></td>";//added for donatorname
$t_row .="</tr>";
echo $t_row;
$line++;
}
?>
</tbody></table>
<div align="center"><?php echo $pageNav->writePagesLinks("index.php?option=$option&task=listusers&award=$awardres->id"). "<br />";
echo $pageNav->writePagesCounter()?></div>
<div class="back_button"><a href="<?php echo JRoute::_("index.php?option=$option"); ?> "><?php echo _JPRESENTS_BACK_OVERVIEW ?></a></div>
<?php
}
}
?>
Знающие люди.. помогите пожалуйста