Descrição
Como funciona?
O admin do site terá a opção de gerar um código de cupom que da x quantidade de points. Ele apenas coloca a quantidade de points que deseja gerar e então, surgirá a key para o player usar e obter os points.
_______________________________________
Coupon System
Execute no MySQL query:
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
CREATE TABLE IF NOT EXISTS `__cornex_redeem` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`points` int(11) NOT NULL,
`used_by` int(11) NOT NULL DEFAULT '0',
`time` int(11) NOT NULL,
`code` varchar(100) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
Crie um arquivo chamado admincoupon.php dentro do diretório /pages/
<?php
if(!defined('INITIALIZED'))
exit;
if($group_id_of_acc_logged >= $config['site']['access_admin_panel']){
function serialKey()
{
$chars = array_merge(range(0, 9), range('A', 'Z'));
$serial = '';
$max = count($chars)-1;
for($i=0;$i<20;$i++){
$serial .= (!($i % 5) && $i ? '-' : '').$chars[rand(0, $max)];
}
return $serial;
}
if (isset($_POST['points'])) {
$error = false;
$points = $_POST['points'];
if (empty($points)) {
$error[] = "<font color='red'>Field cannot be empty</font>";
}
if (!is_numeric($points)) {
$error[] = "<font color='red'>Must be a number value</font>";
}
if (!empty($error)) {
foreach ($error as $err) {
$main_content .=''.$err.'<br>';
}
}
if (empty($error)) {
// Success
$key = serialKey();
$SQL->query('INSERT INTO `__cornex_redeem` (`code`, `points`, `used_by`, `time`, `ip`) VALUES ('.$SQL->quote($key).','.$points.', 0, 0, 0)');
echo '<p><b>Key generated</b><font color="red">: '.$key.'</font></p>';
}
}
$main_content .= '
<form class="ui form" action="" method="POST">
<div class="six wide field">
<label>Points</label>
<input type="text" name="points" placeholder="Amount of points for this code">
</div>
<input class="ui submit button" type="submit" value="Create code">
</form>';
} else {
$main_content .= '
<div class="ui warning message">
<div class="header">
You dont have permission to do that!
</div>
</div>
';
}
Salve o arquivo.
Agora crie um arquivo chamado redeem.php novamente dentro do diretório /pages/
<?php
if(!defined('INITIALIZED'))
exit;
if($logged){
if(isset($_POST['code'])) {
$code = $SQL->quote($_POST['code']);
$query = $SQL->query('SELECT * FROM `__cornex_redeem` WHERE `code` = '.$code.' LIMIT 1;');
// Key exist in database
if ($query->rowCount() >= 1) {
// $query = $query[0];
$result = $query->fetchAll(PDO::FETCH_ASSOC)[0];
if ($result['used_by'] > 0) {
$error[] = 'Key has already been used';
}
if (!empty($error)) {
foreach ($error as $err) {
echo $err.'<br>';
}
}
if (empty($error)) {
$time = time();
$code = $result['code'];
$points = $result['points'];
$querys = sprintf('UPDATE `__cornex_redeem` SET `time`='.time().', `used_by`='.$account_logged->getId().' WHERE `code`="'.$result['code'].'" ');
$SQL->query($querys);
$account_logged->setPremiumPoints($account_logged->getPremiumPoints() + $points);
$account_logged->save();
echo 'Amount of '.$points.' points has been added to your account!';
}
} else {
echo 'Key is not valid';
}
}
$accid = $account_logged->getID();
$main_content .= '
<form action="" method="POST">
<input type="text" name="code">
<input type="submit" value="Redeem">
</form>';
} else {
$main_content .= '
<div class="ui warning message">
<div class="header">
You dont have permission to do that!
</div>
</div>
';
}
Salve o arquivo.
Abra layouts/tibiarl/layout.php
Para admins gerar cupons
<?PHP if($group_id_of_acc_logged >= $config['site']['access_admin_panel']){ ?>
<a href="?subtopic=admincoupon">
<div id="submenu_admincoupon" class="Submenuitem" onmouseover="MouseOverSubmenuItem(this)" onmouseout="MouseOutSubmenuItem(this)">
<div class="LeftChain" style="background-image:url(<?PHP echo $layout_name; ?>/images/general/chain.gif);"></div>
<div id="ActiveSubmenuItemIcon_admincoupon" class="ActiveSubmenuItemIcon" style="background-image:url(<?PHP echo $layout_name; ?>/images/menu/icon-activesubmenu.gif);"></div>
<div id="ActiveSubmenuItemLabel_admincoupon" class="SubmenuitemLabel">Coupons</div>
<div class="RightChain" style="background-image:url(<?PHP echo $layout_name; ?>/images/general/chain.gif);"></div>
</div>
</a>
<?php } ?>
Para players obter points através de cupons
<a href="?subtopic=redeem">
<div id="submenu_redeem" class="Submenuitem" onmouseover="MouseOverSubmenuItem(this)" onmouseout="MouseOutSubmenuItem(this)">
<div class="LeftChain" style="background-image:url(<?PHP echo $layout_name; ?>/images/general/chain.gif);"></div>
<div id="ActiveSubmenuItemIcon_redeem" class="ActiveSubmenuItemIcon" style="background-image:url(<?PHP echo $layout_name; ?>/images/menu/icon-activesubmenu.gif);"></div>
<div id="ActiveSubmenuItemLabel_redeem" class="SubmenuitemLabel">Redeem a coupon</div>
<div class="RightChain" style="background-image:url(<?PHP echo $layout_name; ?>/images/general/chain.gif);"></div>
</div>
</a>
___________________________________
Créditos
Cornex
raf
___________________________________
OBS. IRIA POSTAR PRA ZNOTE AAC MAS NÃO SEI SE JÁ HÁ AQUI, ENTÃO PRA EVITAR, NÃO POSTEI. CASO NÃO TENHA, ME AVISE E EU EDITO O POST.