Новости Joomla

Astroid обновился до версии 3.3.7!

Astroid обновился до версии 3.3.7!

Astroid — это мощный фреймворк для дизайнеров и разработчиков, позволяющий создавать адаптивные, быстрые и надежные веб-сайты и шаблоны на базе Joomla.

Главное в новой версии:

-   Исправлена загрузка файлов макетов

В предыдущем крупном релизе Astroid 3.3.6 были сделаны важные улучшения:

Основные моменты:

  • Улучшенный UI/UX в ключевых областях конфигурации
  • Повышенная стабильность и согласованность в Layout Builder и Form Builder
  • Исправления ошибок на основе отзывов сообщества
  • Улучшенная обработка визуальных эффектов, границ и шрифтов

Улучшения:

  • Обновленный UX Layout Builder
  • Улучшенный эффект предзагрузчика
  • Улучшенный стиль границ
  • Улучшенный UI/UX вкладки «Layout» в Template Options

Исправления ошибок:

  • Решены проблемы с некорректными динамическими значениями
  • Исправлен Color Transform при прокрутке
  • Устранены проблемы с работой Form Builder в Article Layout и Module Layout Builder
  • Исправлена проблема с созданием ненужных временных файлов при обработке шрифтов

Скачать: https://github.com/templaza/astroid-framework/releases/tag/v3.3.7

Как тестировать Joomla PHP-разработчику? Компонент Patch tester.

👩‍💻 Как тестировать Joomla PHP-разработчику? Компонент Patch tester.Joomla - open source PHP-фреймворк с готовой админкой. Его основная разработка ведётся на GitHub. Для того, чтобы международному сообществу разработчиков было удобнее тестировать Pull Requests был создан компонент Patch Tester, который позволяет "накатить" на текущую установку Joomla именно те изменения, которые необходимо протестировать. На стороне инфраструктуры Joomla для каждого PR собираются готовые пакеты, в которых находится ядро + предложенные изменения. В каждом PR обычно находятся инструкции по тестированию: куда зайти, что нажать, ожидаемый результат. Тестировщики могут предположить дополнительные сценарии, исходя из своего опыта и найти баги, о которых сообщить разработчику. Или не найти, и тогда улучшение или исправление ошибки быстрее войдёт в ядро Joomla. Напомню, что для того, чтобы PR вошёл в ядро Joomla нужны минимум 2 положительных теста от 2 участников сообщества, кроме автора. Видео на YouTubeВидео на VK ВидеоВидео на RuTubeКомпонент на GitHub https://github.com/joomla-extensions/patchtester@joomlafeed#joomla #php #webdev #community

0 Пользователей и 1 Гость просматривают эту тему.
  • 1 Ответов
  • 2481 Просмотров
*

squid

  • Захожу иногда
  • 85
  • 4 / 0
  • :P
JPresents и aup поинты
« : 03.12.2010, 13:50:15 »
Компонент JPresents изначально берет поинты с JomSocial..
хотелось бы чтобы он брал из компонента alpha user points

собственно всё..  ;D

вот код
Код: php
<?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;'>&nbsp;</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
}


}

?>

Знающие люди.. помогите пожалуйста
« Последнее редактирование: 03.12.2010, 23:32:41 от squid »
*

squid

  • Захожу иногда
  • 85
  • 4 / 0
  • :P
Re: JPresents и aup поинты
« Ответ #1 : 04.12.2010, 00:05:47 »
Как обычно, не дождался и сделал сам.. ;D
Не уверен что все правильно сделал, но работает..

\components\com_jpresents\jpresents.php

в некоторых строчках вместо "#__community_users" написал "#__alpha_userpoints"

если что не так, подправьте.. ато я mysql вобще не знаю.. пришлось лазать по форумам и сайтам всяким с докумантацией по mysql, где толком ничего не понял  ;D

Код: php
<?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 #__alpha_userpoints WHERE userid = $id"; # тут вписал alpha_userpoints вместо community_users
$database->setQuery($query);
$point = $database->loadResult();
$newpoint = $point - $price;
$query = "UPDATE #__alpha_userpoints SET points = $newpoint WHERE userid=$id"; # тут вписал alpha_userpoints вместо community_users
$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."',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 #__alpha_userpoints WHERE userid = $id";  # тут вписал alpha_userpoints вместо community_users
$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 #__alpha_userpoints WHERE userid = $user->id"; # тут вписал alpha_userpoints вместо community_users
$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;'>&nbsp;</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
}


}

?>
« Последнее редактирование: 04.12.2010, 00:09:29 от squid »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Jpresents не работает..

Автор zorom

Ответов: 81
Просмотров: 18841
Последний ответ 29.11.2011, 02:27:45
от zevs_1993