[RESOLU] Adaptation CCGV gv_send.php

Messagepar moody_styley » Mar 07 Juil 2009, 17:26

Bonjour,

Je me bat un petit peu en ce moment pour adapter complètement la contrib CCGV avec osCSS 1.2.1.

J'y suis presque arrivé avec déjà l'administration complète (ouf !), les fichiers gv_faq.php et gv_redeem.php à la racine.
Là où je bloque, c'est sur le fichier gv_send.php de la racine du site aussi et qui permet aux utilisateurs de pouvoir envoyer des coupons de réduction achetés à des amis.

Le fichier original n'est que sur la racine du site et j'ai décidé de le splitter en 2 comme tous les autres fichiers de osCSS, un à la racine, et l'autre dans le répertoire /includes/content.

Après un affichage correct des champs à remplir, je n'arrive pas à initialiser la variable "action" pour faire la vérification et l'envoie des emails.

Le code d'origine du fichier gv_send.php dans la racine du site est :
Code: Tout sélectionner
<?php
/*
  $Id: gv_send.php,v 1.1.2.3 2003/05/12 22:57:20 wilt Exp $

  osCommerce, Open Source E-Commerce Solutions
  http://www.oscommerce.com

  Copyright (c) 2002 - 2003 osCommerce

  Gift Voucher System v1.0
  Copyright (c) 2001, 2002 Ian C Wilson
  http://www.phesis.org

  Released under the GNU General Public License
*/

  require('includes/application_top.php');

  require('includes/classes/http_client.php');

// if the customer is not logged on, redirect them to the login page
  if (!tep_session_is_registered('customer_id')) {
    $navigation->set_snapshot();
    tep_redirect(tep_href_link(FILENAME_LOGIN, '', 'SSL'));
  }

  require(DIR_WS_LANGUAGES . $language . '/' . FILENAME_GV_SEND);

  if (($HTTP_POST_VARS['back_x']) || ($HTTP_POST_VARS['back_y'])) {
    $HTTP_GET_VARS['action'] = '';
  }
  if ($HTTP_GET_VARS['action'] == 'send') {
    $error = false;
    if (!tep_validate_email(trim($HTTP_POST_VARS['email']))) {
      $error = true;
      $error_email = ERROR_ENTRY_EMAIL_ADDRESS_CHECK;
    }
    $gv_query = tep_db_query("select amount from " . TABLE_COUPON_GV_CUSTOMER . " where customer_id = '" . $customer_id . "'");
    $gv_result = tep_db_fetch_array($gv_query);
    $customer_amount = $gv_result['amount'];
    $gv_amount = trim($HTTP_POST_VARS['amount']);
    if (ereg('[^0-9/.]', $gv_amount)) {
      $error = true;
      $error_amount = ERROR_ENTRY_AMOUNT_CHECK;
    }
    if ($gv_amount>$customer_amount || $gv_amount == 0) {
      $error = true;
      $error_amount = ERROR_ENTRY_AMOUNT_CHECK;
    }
  }
  if ($HTTP_GET_VARS['action'] == 'process') {
    $id1 = create_coupon_code($mail['customers_email_address']);
    $gv_query = tep_db_query("select amount from " . TABLE_COUPON_GV_CUSTOMER . " where customer_id='".$customer_id."'");
    $gv_result=tep_db_fetch_array($gv_query);
    $new_amount=$gv_result['amount']-$HTTP_POST_VARS['amount'];
    if ($new_amount<0) {
      $error= true;
      $error_amount = ERROR_ENTRY_AMOUNT_CHECK;
      $HTTP_GET_VARS['action'] = 'send';
    } else {
      $gv_query=tep_db_query("update " . TABLE_COUPON_GV_CUSTOMER . " set amount = '" . $new_amount . "' where customer_id = '" . $customer_id . "'");
      $gv_query=tep_db_query("select customers_firstname, customers_lastname from " . TABLE_CUSTOMERS . " where customers_id = '" . $customer_id . "'");
      $gv_customer=tep_db_fetch_array($gv_query);
      $gv_query=tep_db_query("insert into " . TABLE_COUPONS . " (coupon_type, coupon_code, date_created, coupon_amount) values ('G', '" . $id1 . "', NOW(), '" . $HTTP_POST_VARS['amount'] . "')");
      $insert_id = tep_db_insert_id($gv_query);
      $gv_query=tep_db_query("insert into " . TABLE_COUPON_EMAIL_TRACK . " (coupon_id, customer_id_sent, sent_firstname, sent_lastname, emailed_to, date_sent) values ('" . $insert_id . "' ,'" . $customer_id . "', '" . addslashes($gv_customer['customers_firstname']) . "', '" . addslashes($gv_customer['customers_lastname']) . "', '" . $HTTP_POST_VARS['email'] . "', now())");

      $gv_email = STORE_NAME . "n" .
              EMAIL_SEPARATOR . "n" .
              sprintf(EMAIL_GV_TEXT_HEADER, $currencies->format($HTTP_POST_VARS['amount'])) . "n" .
              EMAIL_SEPARATOR . "n" .
              sprintf(EMAIL_GV_FROM, stripslashes($HTTP_POST_VARS['send_name'])) . "n";
      if (isset($HTTP_POST_VARS['message'])) {
        $gv_email .= EMAIL_GV_MESSAGE . "n";
        if (isset($HTTP_POST_VARS['to_name'])) {
          $gv_email .= sprintf(EMAIL_GV_SEND_TO, stripslashes($HTTP_POST_VARS['to_name'])) . "nn";
        }
        $gv_email .= stripslashes($HTTP_POST_VARS['message']) . "nn";
      }
      $gv_email .= sprintf(EMAIL_GV_REDEEM, $id1) . "nn";
      $gv_email .= EMAIL_GV_LINK . tep_href_link(FILENAME_GV_REDEEM, 'gv_no=' . $id1,'NONSSL',false);;
      $gv_email .= "nn"; 
      $gv_email .= EMAIL_GV_FIXED_FOOTER . "nn";
      $gv_email .= EMAIL_GV_SHOP_FOOTER . "nn";;
      $gv_email_subject = sprintf(EMAIL_GV_TEXT_SUBJECT, stripslashes($HTTP_POST_VARS['send_name']));             
      tep_mail('', $HTTP_POST_VARS['email'], $gv_email_subject, nl2br($gv_email), STORE_OWNER, STORE_OWNER_EMAIL_ADDRESS, '');
    }
  }
  $breadcrumb->add(NAVBAR_TITLE);
?>
<!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN">
<html <?php echo HTML_PARAMS; ?>>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=<?php echo CHARSET; ?>">
<title><?php echo TITLE; ?></title>
<base href="<?php echo (getenv('HTTPS') == 'on' ? HTTPS_SERVER : HTTP_SERVER) . DIR_WS_CATALOG; ?>">
<link rel="stylesheet" type="text/css" href="stylesheet.css">
</head>
<body marginwidth="0" marginheight="0" topmargin="0" bottommargin="0" leftmargin="0" rightmargin="0">
<!-- header //-->
<?php require(DIR_WS_INCLUDES . 'header.php'); ?>
<!-- header_eof //-->

<!-- body //-->
<table border="0" width="100%" cellspacing="3" cellpadding="3">
  <tr>
    <td width="<?php echo BOX_WIDTH; ?>" valign="top"><table border="0" width="<?php echo BOX_WIDTH; ?>" cellspacing="0" cellpadding="2">
<!-- left_navigation //-->
<?php require(DIR_WS_INCLUDES . 'column_left.php'); ?>
<!-- left_navigation_eof //-->
    </table></td>
<!-- body_text //-->
    <td width="100%" valign="top"><table border="0" width="100%" cellspacing="0" cellpadding="0">
      <tr>
        <td width="100%"><table border="0" width="100%" cellspacing="0" cellpadding="0">
          <tr>
            <td class="pageHeading"><?php echo HEADING_TITLE; ?></td>
            <td align="right"><?php echo tep_image(DIR_WS_IMAGES . 'table_background_specials.gif', HEADING_TITLE, HEADING_IMAGE_WIDTH, HEADING_IMAGE_HEIGHT); ?></td>
          </tr>
        </table></td>
      </tr>
      <tr>
        <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>
      </tr>
<?php
  if ($HTTP_GET_VARS['action'] == 'process') {
?>
      <tr>
        <td class="main"><?php echo tep_image(DIR_WS_IMAGES . 'table_background_man_on_board.gif', HEADING_TITLE, '0', '0', 'align="left"') . TEXT_SUCCESS; ?><br><br><?php echo 'gv '.$id1; ?></td>
      </tr>
      <tr>
        <td align="right"><br><a href="<?php echo tep_href_link(FILENAME_DEFAULT, '', 'NONSSL'); ?>"><?php echo tep_image_button('button_continue.gif', IMAGE_BUTTON_CONTINUE); ?></a></td>
      </tr>
<?php
  } 
  if ($HTTP_GET_VARS['action'] == 'send' && !$error) {
    // validate entries
      $gv_amount = (double) $gv_amount;
      $gv_query = tep_db_query("select customers_firstname, customers_lastname from " . TABLE_CUSTOMERS . " where customers_id = '" . $customer_id . "'");
      $gv_result = tep_db_fetch_array($gv_query);
      $send_name = $gv_result['customers_firstname'] . ' ' . $gv_result['customers_lastname'];
?>
      <tr>
        <td><form action="<?php echo tep_href_link(FILENAME_GV_SEND, 'action=process', 'NONSSL'); ?>" method="post"><table border="0" width="100%" cellspacing="0" cellpadding="2">
          <tr>
            <td class="main"><?php echo sprintf(MAIN_MESSAGE, $currencies->format($HTTP_POST_VARS['amount']), stripslashes($HTTP_POST_VARS['to_name']), $HTTP_POST_VARS['email'], stripslashes($HTTP_POST_VARS['to_name']), $currencies->format($HTTP_POST_VARS['amount']), $send_name); ?></td>
          </tr>
<?php
      if ($HTTP_POST_VARS['message']) {
?>
           <tr>
            <td class="main"><?php echo sprintf(PERSONAL_MESSAGE, $gv_result['customers_firstname']); ?></td>
          </tr>
          <tr>
            <td class="main"><?php echo stripslashes($HTTP_POST_VARS['message']); ?></td>
          </tr>
<?php
      }

      echo tep_draw_hidden_field('send_name', $send_name) . tep_draw_hidden_field('to_name', stripslashes($HTTP_POST_VARS['to_name'])) . tep_draw_hidden_field('email', $HTTP_POST_VARS['email']) . tep_draw_hidden_field('amount', $gv_amount) . tep_draw_hidden_field('message', stripslashes($HTTP_POST_VARS['message']));
?>
          <tr>
            <td class="main"><?php echo tep_image_submit('button_back.gif', IMAGE_BUTTON_BACK, 'name=back') . '</a>'; ?></td>
            <td align="right"><br><?php echo tep_image_submit('button_send.gif', IMAGE_BUTTON_CONTINUE); ?></td>
          </tr>
        </table></form></td>
      </tr>
<?php
  } elseif ($HTTP_GET_VARS['action']=='' || $error) {
?>
      <tr>
        <td class="main"><?php echo HEADING_TEXT; ?></td>
      </tr>
      <tr>
        <td><form action="<?php echo tep_href_link(FILENAME_GV_SEND, 'action=send', 'NONSSL'); ?>" method="post"><table border="0" width="100%" cellspacing="0" cellpadding="2">
          <tr>
            <td class="main"><?php echo ENTRY_NAME; ?><br><?php echo tep_draw_input_field('to_name', stripslashes($HTTP_POST_VARS['to_name']));?></td>
          </tr>
          <tr>
            <td class="main"><?php echo ENTRY_EMAIL; ?><br><?php echo tep_draw_input_field('email', $HTTP_POST_VARS['email']); if ($error) echo $error_email; ?></td>
          </tr>
          <tr>
            <td class="main"><?php echo ENTRY_AMOUNT; ?><br><?php echo tep_draw_input_field('amount', $HTTP_POST_VARS['amount'], '', '', false); if ($error) echo $error_amount; ?></td>
          </tr>
          <tr>
            <td class="main"><?php echo ENTRY_MESSAGE; ?><br><?php echo tep_draw_textarea_field('message', 'soft', 50, 15, stripslashes($HTTP_POST_VARS['message'])); ?></td>
          </tr>
        </table>
        <table border="0" width="100%" cellspacing="0" cellpadding="2">
          <tr>
<?php
    $back = sizeof($navigation->path)-2;
?>
            <td class="main"><?php echo '<a href="' . tep_href_link($navigation->path[$back]['page'], tep_array_to_string($navigation->path[$back]['get'], array('action')), $navigation->path[$back]['mode']) . '">' . tep_image_button('button_back.gif', IMAGE_BUTTON_BACK) . '</a>'; ?></td>
            <td class="main" align="right"><?php echo tep_image_submit('button_continue.gif', IMAGE_BUTTON_CONTINUE); ?></td>
          </tr>
        </table></form></td>
      </tr>
<?php
  }
?>
    </table></td>
<!-- body_text_eof //-->
    <td width="<?php echo BOX_WIDTH; ?>" valign="top"><table border="0" width="<?php echo BOX_WIDTH; ?>" cellspacing="0" cellpadding="2">
<!-- right_navigation //-->
<?php require(DIR_WS_INCLUDES . 'column_right.php'); ?>
<!-- right_navigation_eof //-->
    </table></td>
  </tr>
</table>
<!-- body_eof //-->

<!-- footer //-->
<?php require(DIR_WS_INCLUDES . 'footer.php'); ?>
<!-- footer_eof //-->
<br>
</body>
</html>
<?php require(DIR_WS_INCLUDES . 'application_bottom.php'); ?>

Ce qui en reste dans la racine est :

Code: Tout sélectionner
<?php
/*
  $Id: gv_send.php,v 1.1.2.3 2003/05/12 22:57:20 wilt Exp $

  osCommerce, Open Source E-Commerce Solutions
  http://www.oscommerce.com

  Copyright (c) 2002 - 2003 osCommerce

  Gift Voucher System v1.0
  Copyright (c) 2001, 2002 Ian C Wilson
  http://www.phesis.org

  Released under the GNU General Public License
*/

  require('includes/application_top.php');

  require('includes/classes/http_client.php');

// if the customer is not logged on, redirect them to the login page
  if (!tep_session_is_registered('customer_id')) {
    $navigation->set_snapshot();
    tep_redirect(tep_href_link(FILENAME_LOGIN, '', 'SSL'));
  }

  require(DIR_WS_LANGUAGES . $language . '/' . FILENAME_GV_SEND);

  if (($_POST['back_x']) || ($_POST['back_y'])) {
    $_GET['action'] = '';
  }
  if ($_GET['action'] == 'send') {
    $error = false;
    if (!tep_validate_email(trim($_POST['email']))) {
      $error = true;
      $error_email = ERROR_ENTRY_EMAIL_ADDRESS_CHECK;
    }
    $gv_query = tep_db_query("select amount from " . TABLE_COUPON_GV_CUSTOMER . " where customer_id = '" . $customer_id . "'");
    $gv_result = tep_db_fetch_array($gv_query);
    $customer_amount = $gv_result['amount'];
    $gv_amount = trim($_POST['amount']);
    if (ereg('[^0-9/.]', $gv_amount)) {
      $error = true;
      $error_amount = ERROR_ENTRY_AMOUNT_CHECK;
    }
    if ($gv_amount>$customer_amount || $gv_amount == 0) {
      $error = true;
      $error_amount = ERROR_ENTRY_AMOUNT_CHECK;
    }
  }
  if ($_GET['action'] == 'process') {
    $id1 = create_coupon_code($mail['customers_email_address']);
    $gv_query = tep_db_query("select amount from " . TABLE_COUPON_GV_CUSTOMER . " where customer_id='".$customer_id."'");
    $gv_result=tep_db_fetch_array($gv_query);
    $new_amount=$gv_result['amount']-$_POST['amount'];
    if ($new_amount<0) {
      $error= true;
      $error_amount = ERROR_ENTRY_AMOUNT_CHECK;
      $_GET['action'] = 'send';
    } else {
      $gv_query=tep_db_query("update " . TABLE_COUPON_GV_CUSTOMER . " set amount = '" . $new_amount . "' where customer_id = '" . $customer_id . "'");
      $gv_query=tep_db_query("select customers_firstname, customers_lastname from " . TABLE_CUSTOMERS . " where customers_id = '" . $customer_id . "'");
      $gv_customer=tep_db_fetch_array($gv_query);
      $gv_query=tep_db_query("insert into " . TABLE_COUPONS . " (coupon_type, coupon_code, date_created, coupon_amount) values ('G', '" . $id1 . "', NOW(), '" . $_POST['amount'] . "')");
      $insert_id = tep_db_insert_id($gv_query);
      $gv_query=tep_db_query("insert into " . TABLE_COUPON_EMAIL_TRACK . " (coupon_id, customer_id_sent, sent_firstname, sent_lastname, emailed_to, date_sent) values ('" . $insert_id . "' ,'" . $customer_id . "', '" . addslashes($gv_customer['customers_firstname']) . "', '" . addslashes($gv_customer['customers_lastname']) . "', '" . $_POST['email'] . "', now())");

      $gv_email = STORE_NAME . "n" .
              EMAIL_SEPARATOR . "n" .
              sprintf(EMAIL_GV_TEXT_HEADER, $currencies->format($_POST['amount'])) . "n" .
              EMAIL_SEPARATOR . "n" .
              sprintf(EMAIL_GV_FROM, stripslashes($_POST['send_name'])) . "n";
      if (isset($_POST['message'])) {
        $gv_email .= EMAIL_GV_MESSAGE . "n";
        if (isset($_POST['to_name'])) {
          $gv_email .= sprintf(EMAIL_GV_SEND_TO, stripslashes($_POST['to_name'])) . "nn";
        }
        $gv_email .= stripslashes($_POST['message']) . "nn";
      }
      $gv_email .= sprintf(EMAIL_GV_REDEEM, $id1) . "nn";
      $gv_email .= EMAIL_GV_LINK . tep_href_link(FILENAME_GV_REDEEM, 'gv_no=' . $id1,'NONSSL',false);;
      $gv_email .= "nn"; 
      $gv_email .= EMAIL_GV_FIXED_FOOTER . "nn";
      $gv_email .= EMAIL_GV_SHOP_FOOTER . "nn";;
      $gv_email_subject = sprintf(EMAIL_GV_TEXT_SUBJECT, stripslashes($_POST['send_name']));             
      tep_mail(STORE_OWNER, STORE_OWNER_EMAIL_ADDRESS, $gv_email_subject, nl2br($gv_email), $name, $email);
    }
  }
  $breadcrumb->add(NAVBAR_TITLE, tep_href_link(FILENAME_GV_SEND));

  $page_content = 'gv_send.php';
  require(DIR_WS_TEMPLATES . $template .'/'. TEMPLATE_FILE );
 
  require(DIR_WS_INCLUDES . 'application_bottom.php');
?>

Ce que j'ai créé dans le répertoire /includes/content est :

Code: Tout sélectionner
<?php
/*
  $Id: gv-send.php,v 1.4 2005/10/05 14:51:24 manmachine Exp $
+-----------------------------------------------------------------------+
|                  osCSS Open Source E-commerce                         |
+-----------------------------------------------------------------------+
| Copyright (c) 2005 The osCSS developers                               |
|                                                                       |
| http://www.oscss.org                                       |
|                                                                       |
| Portions Copyright (c) 2003 osCommerce                                |
+-----------------------------------------------------------------------+
| This source file is subject to version 2.0 of the GPL license,        |
| available at the following url:                                       |
| http://www.oscss.org/license/2_0.txt.                      |
+-----------------------------------------------------------------------+
*/
?>
<div id="gv_send">
 
<?php if($messageStack->size('contact') > 0) echo '<div class="messageStack">'.$messageStack->output('contact').'</div>' ;?>

<h1 class="<?php echo $language ;?>"><?php echo HEADING_TITLE; ?></h1>

<?php
  if (isset($_GET['action']) && ($_GET['action'] == 'process')) {
?>
      <p class="infoText"><?php echo TEXT_SUCCESS; ?></p>
      <p><?php echo tep_image(DIR_WS_IMAGES . 'table_background_man_on_board.gif', HEADING_TITLE, '0', '0', 'align="left"') . TEXT_SUCCESS; ?><br><br><?php echo 'gv '.$id1; ?></p>
    <div class="navBt">
     <?php echo '<a class="navBt" href="' . tep_href_link(FILENAME_DEFAULT) . '">' .  IMAGE_BUTTON_CONTINUE . '</a>'; ?>
    </div>

<?php
  } 
  if (isset($_GET['action']) && ($_GET['action'] == 'send') && !$error) {
    // validate entries
      $gv_amount = (double) $gv_amount;
      $gv_query = tep_db_query("select customers_firstname, customers_lastname from " . TABLE_CUSTOMERS . " where customers_id = '" . $customer_id . "'");
      $gv_result = tep_db_fetch_array($gv_query);
      $send_name = $gv_result['customers_firstname'] . ' ' . $gv_result['customers_lastname'];
?>

    <p><?php echo tep_draw_form('gv_send', tep_href_link(FILENAME_GV_SEND, 'action=process')); ?></p>

<?php
      if ($HTTP_POST_VARS['message']) {
?>

<p><?php echo sprintf(PERSONAL_MESSAGE, $gv_result['customers_firstname']); ?></p>
<p><?php echo stripslashes($HTTP_POST_VARS['message']); ?></p>

<?php
      }
      echo tep_draw_hidden_field('send_name', $send_name) . tep_draw_hidden_field('to_name', stripslashes($HTTP_POST_VARS['to_name'])) . tep_draw_hidden_field('email', $HTTP_POST_VARS['email']) . tep_draw_hidden_field('amount', $gv_amount) . tep_draw_hidden_field('message', stripslashes($HTTP_POST_VARS['message']));
?>
       
  </form>   

<?php
  } elseif ($_GET['action'] == '' || $error) {
?>
      <p class="infoText"><?php echo HEADING_TEXT; ?></p>


    <?php echo tep_draw_form('gv_send', tep_href_link(FILENAME_GV_SEND, 'action=send'), 'NONSSL'); ?>
 
  <fieldset class="infos">

   
   <p>
    <label for="to_name"><?php echo ENTRY_NAME; ?></label>
    <?php echo tep_draw_input_field('to_name','to_name'); ?>
   </p>

   <p>
    <label for="email"><?php echo ENTRY_EMAIL; ?></label>
    <?php echo tep_draw_input_field('email','email'); ?>
   </p>
   
   <p>
    <label for="amount"><?php echo ENTRY_AMOUNT; ?></label>
    <?php echo tep_draw_input_field('amount','amount', '', '', false); ?>
   </p>

   <p>
    <label for="message"><?php echo ENTRY_MESSAGE; ?></label>
    <?php echo tep_draw_textarea_field('message','message', '48', '15', stripslashes($HTTP_POST_VARS['message'])); ?>
   </p>

   <p class="submitBt"><input class="submitBt" type="submit" value="<?php echo SEND ; ?>"  /></p>
 
  </fieldset>
       
  </form>
           
<?php
   }
?>

<!-- extra divs to add extra pictures. -->
<div class="extraDiv1"><span></span></div>
<div class="extraDiv2"><span></span></div>
<div class="extraDiv3"><span></span></div>
<div class="extraDiv4"><span></span></div>
<div class="extraDiv5"><span></span></div>

</div>

Est-ce-que quelqu'un à déjà adapté cette contrib et surtout ce fichier en particulier ?
Avez-vous une idée de la modification que je dois appliquer à mes deux fichiers pour que ça puisse fonctionner ?

D'avance merci de votre aide.
Dernière édition par moody_styley le Ven 10 Juil 2009, 10:58, édité 1 fois.
moody_styley
Membre actif
 
Messages: 69
Inscription: Ven 29 Mai 2009, 17:12

Messagepar moody_styley » Mer 08 Juil 2009, 16:40

Salut,

J'ai réussi à modifier gv_send.php pour fonctionner correctement, pour ceux que ça intéresse, voici le code que j'ai modifié, pas tip-top mais au moins ça fonctionne correctement.

Dans la racine :
Code: Tout sélectionner
<?php
/*
  $Id: gv_send.php,v 1.0 2009/08/07 14:50:20 moody_styley Exp $

  osCommerce, Open Source E-Commerce Solutions
  http://www.oscommerce.com

  Copyright (c) 2002 - 2003 osCommerce

  Gift Voucher System v1.0
  Copyright (c) 2001, 2002 Ian C Wilson
  http://www.phesis.org

  Released under the GNU General Public License
*/

  require('includes/application_top.php');

  require('includes/classes/http_client.php');

// if the customer is not logged on, redirect them to the login page
  if (!tep_session_is_registered('customer_id')) {
    $navigation->set_snapshot();
    tep_redirect(tep_href_link(FILENAME_LOGIN, '', 'SSL'));
  }

  require(DIR_WS_LANGUAGES . $language . '/' . FILENAME_GV_SEND);

  if (($_POST['back_x']) || ($_POST['back_y'])) {
    $_GET['action'] = '';
  }
  if ($_GET['action'] == 'send') {
    $error = false;
    if (!tep_validate_email(trim($_POST['email']))) {
      $error = true;
      $error_email = ERROR_ENTRY_EMAIL_ADDRESS_CHECK;
    }
    $gv_query = tep_db_query("select amount from " . TABLE_COUPON_GV_CUSTOMER . " where customer_id = '" . $customer_id . "'");
    $gv_result = tep_db_fetch_array($gv_query);
    $customer_amount = $gv_result['amount'];
    $gv_amount = trim($_POST['amount']);
    if (ereg('[^0-9/.]', $gv_amount)) {
      $error = true;
      $error_amount = ERROR_ENTRY_AMOUNT_CHECK;
    }
    if ($gv_amount>$customer_amount || $gv_amount == 0) {
      $error = true;
      $error_amount = ERROR_ENTRY_AMOUNT_CHECK;
    }
  }
  if ($_GET['action'] == 'process') {
    $id1 = create_coupon_code($mail['customers_email_address']);
    $gv_query = tep_db_query("select amount from " . TABLE_COUPON_GV_CUSTOMER . " where customer_id='".$customer_id."'");
    $gv_result=tep_db_fetch_array($gv_query);
    $new_amount=$gv_result['amount']-$_POST['amount'];
    if ($new_amount<0) {
      $error= true;
      $error_amount = ERROR_ENTRY_AMOUNT_CHECK;
      $_GET['action'] = 'send';
    } else {
      $gv_query=tep_db_query("update " . TABLE_COUPON_GV_CUSTOMER . " set amount = '" . $new_amount . "' where customer_id = '" . $customer_id . "'");
      $gv_query=tep_db_query("select customers_firstname, customers_lastname from " . TABLE_CUSTOMERS . " where customers_id = '" . $customer_id . "'");
      $gv_customer=tep_db_fetch_array($gv_query);
      $gv_query=tep_db_query("insert into " . TABLE_COUPONS . " (coupon_type, coupon_code, date_created, coupon_amount) values ('G', '" . $id1 . "', NOW(), '" . $_POST['amount'] . "')");
      $insert_id = tep_db_insert_id($gv_query);
      $gv_query=tep_db_query("insert into " . TABLE_COUPON_EMAIL_TRACK . " (coupon_id, customer_id_sent, sent_firstname, sent_lastname, emailed_to, date_sent) values ('" . $insert_id . "' ,'" . $customer_id . "', '" . addslashes($gv_customer['customers_firstname']) . "', '" . addslashes($gv_customer['customers_lastname']) . "', '" . $_POST['email'] . "', now())");

      $gv_email = STORE_NAME . "n" .
              EMAIL_SEPARATOR . "n" .
              sprintf(EMAIL_GV_TEXT_HEADER, $currencies->format($_POST['amount'])) . "n" .
              EMAIL_SEPARATOR . "n" .
              sprintf(EMAIL_GV_FROM, stripslashes($_POST['send_name'])) . "n";
      if (isset($_POST['message'])) {
        $gv_email .= EMAIL_GV_MESSAGE . "n";
        if (isset($_POST['to_name'])) {
          $gv_email .= sprintf(EMAIL_GV_SEND_TO, stripslashes($_POST['to_name'])) . "nn";
        }
        $gv_email .= stripslashes($_POST['message']) . "nn";
      }
      $gv_email .= sprintf(EMAIL_GV_REDEEM, $id1) . "nn";
      $gv_email .= EMAIL_GV_LINK . tep_href_link(FILENAME_GV_REDEEM, 'gv_no=' . $id1,'NONSSL',false);;
      $gv_email .= "nn"; 
      $gv_email .= EMAIL_GV_FIXED_FOOTER . "nn";
      $gv_email .= EMAIL_GV_SHOP_FOOTER . "nn";;
      $gv_email_subject = sprintf(EMAIL_GV_TEXT_SUBJECT, stripslashes($_POST['send_name']));
      tep_mail($_POST['name'], $_POST['email'], $gv_email_subject, nl2br($gv_email), STORE_OWNER, STORE_OWNER_EMAIL_ADDRESS);
    }
  }
  $breadcrumb->add(NAVBAR_TITLE, tep_href_link(FILENAME_GV_SEND, '', 'SSL'));

  $page_content = 'gv_send.php';
  require(DIR_WS_TEMPLATES . $template .'/'. TEMPLATE_FILE );
 
  require(DIR_WS_INCLUDES . 'application_bottom.php');
?>

Dans includes/content :

Code: Tout sélectionner
<?php
/*
  $Id: gv_send.php,v 1.0 2009/08/07 14:51:24 moody_styley Exp $
+-----------------------------------------------------------------------+
|                  osCSS Open Source E-commerce                         |
+-----------------------------------------------------------------------+
| Copyright (c) 2005 The osCSS developers                               |
|                                                                       |
| http://www.oscss.org                                       |
|                                                                       |
| Portions Copyright (c) 2003 osCommerce                                |
+-----------------------------------------------------------------------+
| This source file is subject to version 2.0 of the GPL license,        |
| available at the following url:                                       |
| http://www.oscss.org/license/2_0.txt.                      |
+-----------------------------------------------------------------------+
*/
?>
<div id="gv_send">

<?php if($messageStack->size('contact') > 0) echo '<div class="messageStack">'.$messageStack->output('contact').'</div>' ;?>

<h1 class="<?php echo $language ;?>"><?php echo HEADING_TITLE; ?></h1>

<?php
  if ($HTTP_GET_VARS['action'] == 'process') {
?>
      <p class="infoText"><?php echo TEXT_SUCCESS; ?></p>
      <div class="navBt">
        <?php echo '<a class="navBt" href="' . tep_href_link(FILENAME_DEFAULT) . '">' .  IMAGE_BUTTON_CONTINUE . '</a>'; ?>
      </div>

<?php
  } 
  if ($HTTP_GET_VARS['action'] == 'send' && !$error) {
    // validate entries
      $gv_amount = (double) $gv_amount;
      $gv_query = tep_db_query("select customers_firstname, customers_lastname from " . TABLE_CUSTOMERS . " where customers_id = '" . $customer_id . "'");
      $gv_result = tep_db_fetch_array($gv_query);
      $send_name = $gv_result['customers_firstname'] . ' ' . $gv_result['customers_lastname'];
?>
   <?php echo tep_draw_form('gv_process', tep_href_link(FILENAME_GV_SEND, 'action=process')); ?>
     <fieldset class="infos">
       <?php echo sprintf(MAIN_MESSAGE, $currencies->format($HTTP_POST_VARS['amount']),
                          stripslashes($HTTP_POST_VARS['to_name']),
                          $HTTP_POST_VARS['email'],
                          stripslashes($HTTP_POST_VARS['to_name']),
                          $currencies->format($HTTP_POST_VARS['amount']),
                          $send_name); ?>
<?php
      if ($HTTP_POST_VARS['message']) {
?>
       <br><br><?php echo sprintf(PERSONAL_MESSAGE, $gv_result['customers_firstname']); ?>
       <br><br><?php echo stripslashes($HTTP_POST_VARS['message']); ?>
<?php
      }

      echo tep_draw_hidden_field('send_name', $send_name) .
           tep_draw_hidden_field('to_name', stripslashes($HTTP_POST_VARS['to_name'])) .
           tep_draw_hidden_field('email', $HTTP_POST_VARS['email']) .
           tep_draw_hidden_field('amount', $gv_amount) .
           tep_draw_hidden_field('message', stripslashes($HTTP_POST_VARS['message']));
?>
       <p class="submitBt">
         <input class="submitBt" type="submit" value="<?php echo SEND ; ?>"  />
       </p>
     </fieldset>
   </form>
<?php
  } elseif ($HTTP_GET_VARS['action']=='' || $error) {
?>
   <p><?php echo HEADING_TEXT; ?></p>
   <?php echo tep_draw_form('gv_send', tep_href_link(FILENAME_GV_SEND, 'action=send')); ?>
     <fieldset class="infos">
       <p>
         <label for="to_name"><?php echo ENTRY_NAME; ?></label>
         <?php echo tep_draw_input_field('to_name','to_name'); ?>
       </p>
       <p>
         <label for="email"><?php echo ENTRY_EMAIL; ?></label>
         <?php echo tep_draw_input_field('email','email'); ?>
       </p>
       <p>
         <label for="amount"><?php echo ENTRY_AMOUNT; ?></label>
         <?php echo tep_draw_input_field('amount','amount', '', '', false); if ($error) echo $error_amount; ?>
       </p>
       <p>
         <label for="message"><?php echo ENTRY_MESSAGE; ?></label>
         <?php echo tep_draw_textarea_field('message','message', '48', '15', stripslashes($HTTP_POST_VARS['message'])); ?>
       </p>

<?php
    $back = sizeof($navigation->path)-2;
?>

       <p class="submitBt">
         <?php //echo '<a href="' . tep_href_link($navigation->path[$back]['page'], tep_array_to_string($navigation->path[$back]['get'], array('action')), $navigation->path[$back]['mode']) . '">' . tep_image_button('button_back.gif', IMAGE_BUTTON_BACK) . '</a>'; ?>
         <input class="submitBt" type="submit" value="<?php echo IMAGE_BUTTON_CONTINUE ; ?>"  />
       </p>
     </fieldset>
   </form>
<?php
  }
?>
</div>

Par contre, si quelqu'un peut m'indiquer comment réussir à activer le code pour le bouton BACK qui se trouve à la fin du deuxième fichier, ça me tirerait une grosse épingle du pied.
Pour le moment je l'ai mis en commentaire, mais j'aimerai vraiment pouvoir m'en servir.

Si quelqu'un a une idée, ça m'aiderait franchement !
moody_styley
Membre actif
 
Messages: 69
Inscription: Ven 29 Mai 2009, 17:12

Messagepar oscim » Mer 08 Juil 2009, 17:13

Bonjour,

J'ai réussi à modifier gv_send.php pour fonctionner correctement, pour ceux que ça intéresse, voici le code que j'ai modifié, pas tip-top mais au moins ça fonctionne correctement.

Au moins ca fonctionne! c'est le principal.


Par contre, si quelqu'un peut m'indiquer comment réussir à activer le code pour le bouton BACK qui se trouve à la fin du deuxième fichier, ça me tirerait une grosse épingle du pied.
Pour le moment je l'ai mis en commentaire, mais j'aimerai vraiment pouvoir m'en servir.

Je ne comprend pas ?

Cette ligne dans le fichier est commenté, donc elle ne peut etre traiter pour decommenter , supprimer le // après <?php .
Pour un web au normes du W3C, pour un web plus propre !

- Download osCSS Toutes versions
- stable osCSS 2.1.0 (help|info|new dev) Official help|wiki|Tuto for osCSS 2 | doc doxygen
- Utiliser le tracker pour suivre les évolutions et développements
- Inscrivez vos sites sur oscss pour présenter vos réalisations
Avatar de l’utilisateur
oscim
Site Admin
 
Messages: 1643
Inscription: Mar 25 Sep 2007, 11:33

Messagepar moody_styley » Mer 08 Juil 2009, 17:36

Salut OSCIM,

Je sais qu'elle est en commentaire, justement, elle l'est car elle ne fonctionne pas, c'est moa qui l'est commentée.

Je l'ai reprise du code du fichier d'origine gv_send.php qui se trouve dans la dernière mouture de la contrib CCGV, mais elle fait planter l'affichage de la page si je la dé-commente.

Aurais-tu une idée du pourquoi elle ne fonctionne pas comme prévu et as-tu une idée de comment la faire marcher ? :/

Merci de ton aide.
moody_styley
Membre actif
 
Messages: 69
Inscription: Ven 29 Mai 2009, 17:12

Messagepar oscim » Mer 08 Juil 2009, 18:09

Le liens sur oscss pour la cancel:

ex:
Code: Tout sélectionner
<?php echo '<a href="' . tep_href_link(FILENAME_PRODUCTS_ATTRIBUTES, '&option_page=' . $option_page ) . '">'.tep_image_button('button_cancel.gif', IMAGE_CANCEL); ?></a>

Si tu a renseigné correctement le filename.php, tu devrais pouvoir remplacer
FILENAME_PRODUCTS_ATTRIBUTES par FILENAME_GV_SEND
Ensuite il te suffit de remplacer les arguments GET par ce dont tu à besoin, ou aucun si il y a lieux.

Si je me souviens je croix que la function tep_array_to_string() n'existe plsu dans oscss. Dans ce cas c'est elle qui fait planter ta page.

Si tu est en local tu peut toujours essayer d'activer E_ALL pour obtenir plus de retoru d'erreur.
Pour un web au normes du W3C, pour un web plus propre !

- Download osCSS Toutes versions
- stable osCSS 2.1.0 (help|info|new dev) Official help|wiki|Tuto for osCSS 2 | doc doxygen
- Utiliser le tracker pour suivre les évolutions et développements
- Inscrivez vos sites sur oscss pour présenter vos réalisations
Avatar de l’utilisateur
oscim
Site Admin
 
Messages: 1643
Inscription: Mar 25 Sep 2007, 11:33

Messagepar moody_styley » Ven 10 Juil 2009, 10:58

Salut OSCIM,

Merci beaucoup pour ton aide !

Le code pour le bouton BACK qui ne marchait pas la veille c'est mis a marcher correctement hier, je pense que c'est lié à Firefox qui plante un peu à force de recharger la page pour faire les tests.

J'ai adapté ton exemple de code à ma sauce pour faire apparaître un zoli bouton Retour dans la page, le code est le suivant :

Code: Tout sélectionner
<?php
    $back = sizeof($navigation->path)-2;
?>

       <p class="submitBt">
         <?php
             $back_link=tep_href_link($navigation->path[$back]['page'], tep_array_to_string($navigation->path[$back]['get'], array('action')), $navigation->path[$back]['mode']);
         ?>
         <input class="submitBt" type="button" value="<?php echo IMAGE_BUTTON_BACK ; ?>" onclick="window.location.href='<?php echo $back_link; ?>'" />
         <input class="submitBt" type="submit" value="<?php echo IMAGE_BUTTON_CONTINUE ; ?>"  />
       </p>
     </fieldset>
   </form>
<?php
  }
?>

Comme ça, je conserve la construction du lien sur la page de retour et je préfère ça à un simple history.back() en java qui ne me renvoie pas toujours où je le veux.

Pour info, la fonction tep_array_to_string() existe encore dans osCSS version 1.2.1.

Merci encore pour tout ! :D
Je marque cette discussion comme résolue.
moody_styley
Membre actif
 
Messages: 69
Inscription: Ven 29 Mai 2009, 17:12


Retourner vers Plugin

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité

cron