Files
2020-01-27 08:56:08 +01:00

298 lines
9.5 KiB
PHP
Raw Permalink Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?php
include_once(realpath(dirname(__FILE__)) . "/../../../../fonctions/authplugins.php");
autorisation("codepromo");
include_once(realpath(dirname(__FILE__)) . "/../Codepromo.class.php");
$codepromo = new Codepromo_codepromo();
function codepromo_lister_repertoire($Directory) {
$tableau_fichiers = array();
$MyDirectory = opendir($Directory) or die('Erreur');
while($Entry = @readdir($MyDirectory)) {
$extension=strrchr($Entry,'.');
$extension=substr($extension,1) ;
//lister les controleurs
if ((substr($Entry, 0, 1) !='.') && (strtoupper($extension) == 'PHP')) $tableau_fichiers[] = $Entry;
}
closedir($MyDirectory);
return $tableau_fichiers;
}
function codepromo_instancier_objets($tableau_scripts_objets, $repertoire_scripts, $selected = null) {
$options = '';
foreach($tableau_scripts_objets as $objet) {
require_once($repertoire_scripts.'/'.$objet);
$classe_objet = substr($objet, 0, strpos($objet, '.'));
if($selected && ($classe_objet == $selected)){
$selected_attr = 'selected="selected"';
}
else{
$selected_attr = '';
}
$options .= '<option value="' . $classe_objet . '" '.$selected_attr.'>'.$classe_objet::nom().'</option>';
}
return $options;
}
$reperoire_plugin_codepromo = realpath(dirname(__FILE__)) . '/../';
$repertoire_controleurs = 'controleurs';
$repertoire_operations = 'operations';
$repertoire_actions = 'actions';
$tableau_controleurs = array();
$tableau_controleurs = codepromo_lister_repertoire($reperoire_plugin_codepromo.$repertoire_controleurs);
$tableau_operations = array();
$tableau_operations = codepromo_lister_repertoire($reperoire_plugin_codepromo.$repertoire_operations);
$tableau_actions = array();
$tableau_actions = codepromo_lister_repertoire($reperoire_plugin_codepromo.$repertoire_actions);
$codepromo->charger_id(lireParam('promo'));
?>
<script language="javascript" src="../lib/jquery/jquery.js"></script>
<script type="text/javascript">
function majFond(tabLignes)
{
for(var i=0; i<tabLignes.length; i++)
{
$('#ligne_' + tabLignes[i]).removeClass();
if(i%2==0)
$('#ligne_' + tabLignes[i]).addClass('ligne_claire_rub');
else
$('#ligne_' + tabLignes[i]).addClass('ligne_fonce_rub');
if(nombre_condition.length==1)
$('#bouton_moins_' + tabLignes[i]).attr('disabled', 'disabled');
else
$('#bouton_moins_' + tabLignes[i]).attr('disabled', '');
}
}
function ajouterLigne(controller,operation,valeur,regle_id)
{
var id = nombre_condition[nombre_condition.length-1] + 1;
if(parseInt(id) != id) id = 0;
jQuery("<ul>", {id: "ligne_" + id}).appendTo("#conteneur_ligne");
jQuery("<li>", {id: "bloc_controleur_" + id, css: {width: "200px"}}).appendTo("#ligne_" + id);
jQuery("<select>", {id: "controleur_" + id, name: "controleur_" + id, width: "200px"}).appendTo("#bloc_controleur_" + id);
$("#controleur_" + id).html($('#listeOptionsControleur').html());
if(controller){
$("#controleur_" + id).find('option[value="'+controller+'"]').attr('selected', true);
}
jQuery("<li>", {id: "bloc_operation_" + id, css: {width: "200px", borderLeft: "1px solid #C4CACE"}}).appendTo("#ligne_" + id);
jQuery("<select>", {id: "operation_" + id, name: "operation_" + id, width: "200px"}).appendTo("#bloc_operation_" + id);
$("#operation_" + id).html($('#listeOptionsOperation').html());
if(operation){
$("#operation_" + id).find('option[value="'+operation+'"]').attr('selected', true);
}
jQuery("<li>", {id: "bloc_valeur_" + id, css: {width: "200px", borderLeft: "1px solid #C4CACE"}}).appendTo("#ligne_" + id);
jQuery("<input>", {type: "text", id: "valeur_" + id, name: "valeur_" + id}).appendTo("#bloc_valeur_" + id);
jQuery("<li>", {id: "bloc_boutons_" + id, css: {width: "100px", borderLeft: "1px solid #C4CACE"}}).appendTo("#ligne_" + id);
jQuery("<input>", {id: 'bouton_moins_' + id, type: "button", value: '-', click: function() {supprimerLigne(id);}}).appendTo("#bloc_boutons_" + id);
if(valeur){
$("#bloc_valeur_" + id).find('input[type=text]').val(valeur);
}
if(regle_id){
$("#bloc_valeur_" + id).find('input[type=text]').after('<input type="hidden" name="regle_'+id+'" value="'+regle_id+'">');
}
nombre_condition.push(id);
majFond(nombre_condition);
}
function supprimerLigne(id)
{
if(nombre_condition.length<2)
return -1;
if($('#ligne_' + id).find(':hidden[name=regle_'+id+']').length){
var regle_id = $('#ligne_' + id).find(':hidden[name=regle_'+id+']').val();
$.ajax({
type:'POST',
async: false,
url:'../client/plugins/codepromo/admin/ajax/ajax.php',
data:'regle_id='+regle_id,
success: function(html) {
retour = html
}
});
}
$('#ligne_' + id).remove();
for(var i=0; i<nombre_condition.length; i++)
{
if(nombre_condition[i]==id)
{
nombre_condition = nombre_condition.slice(0,i).concat(nombre_condition.slice(i+1,nombre_condition.length));
}
}
majFond(nombre_condition);
}
function codePromoExiste(code)
{
var retour = 0;
$.ajax({
type:'POST',
async: false,
url:'../client/plugins/codepromo/admin/ajax/ajax.php',
data:'code='+code,
success: function(html) {
retour = html
}
});
return retour;
}
function valideFormulaire()
{
var listeErreur = Array();
/*on vérifie le code*/
if($('#code').val() == '')
listeErreur.push('Il faut rentrer un code promo.');
else if(!codePromoExiste($('#code').val()))
listeErreur.push('Ce code promo existe déjà.');
/*vérification des controleurs*/
/*for(i=0; i<nombre_condition.length; i++)
{
}*/
/*vérification de l'action*/
if(listeErreur.length==0)
{
$('#liste_controleurs').val(nombre_condition.join('-'));
$('#codepromo_form').submit();
}
else
{
$('#bloc_erreur').css('display', 'block');
$('#li_affichage_erreurs').html(listeErreur.join('<br />'));
}
}
var nombre_condition = Array();
$(function(){
if($('#conteneur_ligne ul').length == 0){
ajouterLigne();
}
});
</script>
<div style="display:none" id="listeOptionsControleur">
<?php
//lister les controleurs
echo(codepromo_instancier_objets($tableau_controleurs, $reperoire_plugin_codepromo.$repertoire_controleurs));
?>
</div>
<div style="display:none" id="listeOptionsOperation">
<?php
//lister les operations
//echo(codepromo_instancier_objets($tableau_controleurs, $reperoire_plugin_codepromo.$repertoire_controleurs));
echo(codepromo_instancier_objets($tableau_operations, $reperoire_plugin_codepromo.$repertoire_operations));
?>
</div>
<div id="contenu_int">
<!-- fil d'ariane de l'admin -->
<p align="left"><a href="accueil.php" class="lien04">Accueil </a> <img src="gfx/suivant.gif" width="12" height="9" border="0" /><a href="module_liste.php" class="lien04">Modules</a> <img src="gfx/suivant.gif" width="12" height="9" border="0" /><a href="module.php?nom=codepromo&page=index" class="lien04">Code promo</a> <img src="gfx/suivant.gif" width="12" height="9" border="0" /><a href="#" class="lien04"><?php echo ($codepromo->id) ? 'Modifier code' : 'Creer code'; ?></a></p>
<div id="bloc_erreur" style="display:none">
<!-- titre -->
<div class="entete_liste_config">
<div class="titre">ERREURS</div>
</div>
<!-- bloc avec bordure inferieure -->
<div class="bordure_bottom">
<ul class="ligne_claire_rub" style="height:150px">
<li style="height:150px" id="li_affichage_erreurs"></li>
</ul>
</div>
&nbsp;
</div>
<form id="codepromo_form" action="module.php" method="get">
<input type="hidden" name="nom" value="codepromo" />
<input type="hidden" name="page" value="index" />
<input type="hidden" name="action" value="<?php echo ($codepromo->id) ? 'editer' : 'ajout'; ?>" />
<input type="hidden" name="promo_id" value="<?php echo ($codepromo->id); ?>" />
<input type="hidden" id="liste_controleurs" name="liste_controleurs" value="" />
<!-- titre -->
<div class="entete_liste_config">
<div class="titre">AJOUT D'UN CODE PROMO : <input type="text" name="code" id="code" style="width:200px;margin:0px;" value="<?php echo $codepromo->code; ?>" /></div>
<div class="maj" style="float:right">
<a href="#" onclick="valideFormulaire();">VALIDER </a>
</div>
</div>
<!-- entete -->
<ul id="Nav">
<li style="height:25px; width:200px">Conditions | <span style="color:#62BD19; cursor:pointer; font-weight:bold" onclick="ajouterLigne();">ajouter</span></li>
</ul>
<!-- bloc avec bordure inferieure -->
<div class="bordure_bottom" id="conteneur_ligne">
<?php
if($codepromo->id){
$codepromo_codepromo_regle = new Codepromo_codepromo_regle();
$sql = "SELECT * FROM codepromo_regle WHERE codepromo = '".$codepromo->id."'";
$req = mysql_query($sql);
while($regle = mysql_fetch_object($req)){
?>
<script type="text/javascript">
var controller = '<?php echo $regle->controleur; ?>',
operation = '<?php echo $regle->operation; ?>',
valeur = '<?php echo $regle->valeur; ?>',
regle_id = '<?php echo $regle->id; ?>';
ajouterLigne(controller, operation, valeur, regle_id);
</script>
<?php
}
}
?>
</div>
&nbsp;
<!-- entete -->
<ul id="Nav">
<li style="height:25px; width:400px;">Actions</li>
</ul>
<!-- bloc avec bordure inferieure -->
<div class="bordure_bottom">
<ul class="ligne_claire_rub">
<li style="width:200px">
<select id="action_type" name="action_type">
<?php
//lister les actions
echo(codepromo_instancier_objets($tableau_actions, $reperoire_plugin_codepromo.$repertoire_actions, $codepromo->action));
?>
</select>
</li>
<li style="border-left:1px solid #C4CACE; width:464px">
Valeur : <input type="text" id="action_valeur" name="action_valeur" value="<?php echo $codepromo->valeur; ?>" />
</li>
</ul>
</div>
</form>
</div>