Satir

 tutoriel / partage MT2CMS - Système de Parrainage

Recommended Posts

Bonjour à toutes et à tous,

I. Présentation

J'ai créé un script de parrainage. Il permet aux joueurs d'inscrire un parrain lors de leur inscription et quand un joueur ayant un parrain rechargera son compte en MD, le parrain recevra la moitié des MD qu'aura reçu le filleul. Mon script bloque l'ajout de MD pour le parrain au premier rechargement mais cela est modifiable.

Dans l'exemple ci-dessous je suis le filleul, et Lambda mon parrain.

8064791374583392parrainage.png

II. Mise en place

II.1. Navicat:

Tout d'abord il vous faudra exécuter ces queries dans Navicat :

ALTER TABLE account.account ADD `parrain` VARCHAR(30) NULL AFTER `rang`;
ALTER TABLE account.account ADD `first_buy` INT(1) DEFAULT 0 AFTER `parrain`;

II.2. Inscription:

inscription.tpl :

Révélation

Ouvrez tout d'abord le fichier inscription.tpl et ajoutez ceci :

<if cond="$valid_form == 6">Le parrain n'existe pas.</if>

Comme ceci : 

<if cond="$valid_form == 2">Votre email est invalide.</if>
          <if cond="$valid_form == 3">Le pseudo doit &ecirc;tre compris entre 5 et 16 caract&egrave;res.</if>
          <if cond="$valid_form == 4">Le mot de passe doit &ecirc;tre compris entre 5 et 16 caract&egrave;res.</if>
          <if cond="$valid_form == 5">Ce pseudo est d&eacute;j&agrave; utilis&eacute;.</if>
<if cond="$valid_form == 6">Le parrain n'existe pas.</if> 

Puis ajoutez ceci :

<label>Parrain</label>
<input name="parrain" type="text" size="30"/> 

De telle façon que vous aillez aux environs de la ligne 45 : 

<form method="post" action="index.php?p=inscription">            
    <p>        
        <label>Nom d'utilisateur ( entre 5 et 16 caract&egrave;res )</label>
        <input name="login" type="text" size="30" />
        <label>Email</label>
        <input name="mail" type="text" size="30" />
        <label>Mot de passe ( entre 5 et 16 caract&egrave;res )</label>
        <input name="mdp" type="password" size="30" />
<label>Parrain</label>
<input name="parrain" type="text" size="30"/>
<br />    
        <input class="button" type="submit" value="Envoyer"/>        
    </p>        
    </form> 

 

inscription.php :

Révélation

Une fois ceci fait, ouvrez le fichier inscription.php. Il vous faudra ajouter ces lignes :

À la ligne 25 ajoutez cette ligne :

$parrain=mysql_real_escape_string($_POST['parrain']); 

Ce qui donne :

$pseudo=mysql_real_escape_string($_POST['login']);
$mdp=mysql_real_escape_string($_POST['mdp']);
$mail=mysql_real_escape_string($_POST['mail']);
$parrain=mysql_real_escape_string($_POST['parrain']); 

À la ligne 28 il faudra mettre ceci : 

//Parrain s'il n'est pas vide est-ce qu'il existe?
if (isset($parrain)) {
$sql = mysql_query("SELECT COUNT(login) AS nb_parrain FROM account.account WHERE login='$parrain'");
$exist_parrain=mysql_result($sql, 0, 'nb_parrain');
}
if ($exist_parrain==1 or $parrain == "")
{ 

Ce qui donne : 

//Parrain s'il n'est pas vide est-ce qu'il existe?
if (isset($parrain)) {
$sql = mysql_query("SELECT COUNT(login) AS nb_parrain FROM account.account WHERE login='$parrain'");
$exist_parrain=mysql_result($sql, 0, 'nb_parrain');
}
if ($exist_parrain==1 or $parrain == "")
{
//Si le mail est valide
    if(preg_match('#^[a-zA-Z0-9_\.-][email protected][a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+$#', $mail))
    { 

Ensuite, remplacez cette query : (ligne 46) 

$sql="INSERT INTO account (login, password, email, create_time, cash, rang) VALUES ('$pseudo', password ('$mdp'), '$mail', '$date', '0', '1')"; 

Par celle-ci :

$sql="INSERT INTO account (login, password, email, create_time, cash, rang, parrain) VALUES ('$pseudo', password ('$mdp'), '$mail', '$date', '0', '1', '$parrain')"; 

Pour en terminer avec ce fichier il faudra ajouter à la ligne 57 cette ligne de code :

}
else { $errors =6; } //Le parrain n'existe pas 

Tel que :

}
                else { $errors =5; }//5: Ce pseudo est déjà utilisé.
            }
            else { $errors =4; }//4: Le mot de passe doit être compris entre 5 et 16 caractères.
        }
        else { $errors =3; }//3:Le pseudo doit être compris entre 5 et 16 caractères.
    }
    else { $errors =2; }//2: Votre email est invalide.
}
else { $errors =6; } //Le parrain n'existe pas 

 

II.3. Rechargement:

payement.php :

Révélation

Ouvrez maintenant le fichier payement.php et ajoutez ceci à la ligne 169 :

$cash=$CONFIG_is['nb_cash'];
    $cash_parrain=$cash/2;
    $query_parrain=mysql_query("SELECT parrain, first_buy FROM account.account WHERE `id`='$id_membre'");
    $fetch_parrain=mysql_fetch_array($query_parrain);
    $nom_parrain=$fetch_parrain['parrain'];
    $first_buy=$fetch_parrain['first_buy'];
            
    if($nom_parrain != "" and $first_buy == "0")
    {
        mysql_query("UPDATE account.account SET first_buy = '1' WHERE `id`='$id_membre'");
        mysql_query("UPDATE account.account SET cash = cash + '$cash_parrain' WHERE `login`='$nom_parrain'");
    } 

De manière à avoir : 

if($payement)
{
    $sql="UPDATE account.account SET cash = cash+".$CONFIG_is['nb_cash']." WHERE id = $id_membre";
    mysq_query($sql) or die (mysql_error());
    
    $cash=$CONFIlG_is['nb_cash'];
    $cash_parrain=$cash/2;
    $query_parrain=mysql_query("SELECT parrain, first_buy FROM account.account WHERE `id`='$id_membre'");
    $fetch_parrain=mysql_fetch_array($query_parrain);
    $nom_parrain=$fetch_parrain['parrain'];
    $first_buy=$fetch_parrain['first_buy'];
            
    if($nom_parrain != "" and $first_buy == "0")
    {
        mysql_query("UPDATE account.account SET first_buy = '1' WHERE `id`='$id_membre'");
        mysql_query("UPDATE account.account SET cash = cash + '$cash_parrain' WHERE `login`='$nom_parrain'");
    }
    
    $tpl->assign('valid_pay', 'ok');
} 

 

III. Personnalisation

III.1. Retirer la limitation du premier rechargement :

Vous pouvez choisir si le script ajoutera des monnaies dès le premier rechargement ou pas, pour ce faire il faudra ouvrir le fichier payement.php et enlever ceci :

and $first_buy == "0" 

Ce qui donnera :

if($nom_parrain != "")
    {
mysql_query("UPDATE account.account SET first_buy = '1' WHERE `id`='$id_membre'");
        mysql_query("UPDATE account.account SET cash = cash + '$cash_parrain' WHERE `login`='$nom_parrain'");
    } 

Cela aura donc pour effet de donner la moitié de ce qu'achète un filleul à son parrain en permanence et non pas uniquement lors du premier rechargement de compte.

III.2. Modifier le gain du parrain :

Toujours dans le fichier payement.php vous pouvez choisir combien gagnera le parrain, je l'ai mis sur la moitié du gain du filleul mais c'est modifiable en changeant la valeur de cette variable :

$cash_parrain 

Si vous voulez lui donner autant que le filleul il suffira de mettre :

$cash_parrain=$cash; 

Si vous voulez lui faire gagner que 3 MD il suffira de mettre :

$cash_parrain=3; 

Et ainsi de suite, la valeur vous est libre.

III.3. Consulter son parrain, ses filleuls et s'ils ont effectué un rechargement :

Afin de voir votre parrain ainsi que vos filleuls et savoir lesquels ont rechargé leur compte au moins une fois et donc vous on fait gagné des MD il vous faudra ouvrir le fichier compte.tpl et ajouter à la ligne 177 :

Révélation
<?php if($_GET[c] == "parrainage") { ?>

        <table style="width:49%; text-align:center;" border="1">
            <tr>
                <td><font color="white">Parrain</font></td>
            </tr>
            <tr>
                <td>
                <?php $fetch_parrain=mysql_fetch_array(mysql_query("SELECT parrain FROM account.account WHERE id='$id_membre'"));
                echo ($fetch_parrain[parrain]);?>
                </td>
            </tr>
        </table>
        
        <table style="margin:-57px 0px auto auto; width:49%; text-align:center;" border="1">
            <tr>
                <td><font color="white">Filleuls</font></td>
                <td><font color="white">Rechargement effectu&eacute;</font></td>
            </tr>
                <?php 
                $bien=mysql_query("SELECT login, first_buy FROM account.account WHERE parrain='$pseudo_membre'");
                while($array=mysql_fetch_array($bien)) {
                if ($array[first_buy]=="1") {
                $payement="Oui"; } else { $payement="Non"; }
                
                echo ("<tr><td>".$array[login]."</td>
                        <td>".$payement."</td></tr>");
                }?>
        </table>
        
        <br/><br/>
        <p><a href="index.php?p=compte">Retour au compte</a> </p>
    <?php } else {?>

 

Aux alentours de la ligne 210 ajoutez ceci : 

<li><a href="index.php?p=compte&c=parrainage">Parrainage</a></li> 

Afin d'avoir : 

<ul>
    <li><a href="index.php?p=payement">Recharger mon compte</a></li>
      <li><a href="index.php?p=compte&c=mdp">Modifier le mot de passe</a></li>
      <li><a href="index.php?p=compte&c=mail">Modifier l'email</a></li>
      <li><a href="index.php?p=compte&c=code">Modifier le code d'effacement</a></li>
      <li><a href="index.php?p=compte&c=del_compte">Supprimer le compte</a></li>
<li><a href="index.php?p=compte&c=parrainage">Parrainage</a></li>
  </ul>

Pour terminer cette personnalisation, allez à la fin du fichier et ajouter après le 

</if> 

ceci : 

<?php } ?>

Pour obtenir:

</if>
<?php } ?>

IV. Mot de la fin

Voila, le tutoriel est terminé, pour tout problème je serai disponible dans la section A/Q/S. Le tutoriel est susceptible d'être modifié à tout moment.
Pour tout souci de compréhension, ou point qui vous semble trop flou, dites le moi et j'arrangerai ça Content
 

Satir à votre service Content
 

  • Like 2

Share this post


Link to post
Share on other sites