osCommerce France : Accueil Forum Portail osCommerce France Réponses aux questions Foire aux contributions

Bienvenue invité ( Connexion | Inscription )

 
Reply to this topicStart new topic
> [RESOLU] Approbation Client, Module pour approuver les clients après leur enregistrement
Xavduck
posté 29 Sep 2015, 14:36
Message #1


Ceinture blanche OSC
Icône de groupe

Groupe : Membres
Messages : 15
Inscrit : 25-September 15
Membre no 32660



Bonjour,

je suis avec la v2.3.4 et je tente d'adapter la contribe [ Member Approval 1.6 ]

J'ai un petit souci avec la page "catalog/login.php" , le code entant bien différent de la contrib à la v2.3.4 .

Y a t' il une bonne âme qui ce serai déjà penché sur le sujet ?


Voici les modifs à apporter :

Code
#### [ OPEN ] ##################################################################
    
    catalog/login.php
    
    ##################################################################
    
    ## Find this: [line 28] ################################
    
        $check_customer_query = tep_db_query("select customers_id, customers_firstname, customers_password, customers_email_address, customers_default_address_id from " . TABLE_CUSTOMERS . " where customers_email_address = '" . tep_db_input($email_address) . "'");
    
    ## Replace with this:  ################################
    
    //+Member Approval v1.5.1
        $check_customer_query = tep_db_query("select customers_id, customers_firstname, customers_password, customers_email_address, customers_default_address_id, member_level  from " . TABLE_CUSTOMERS . " where customers_email_address = '" . tep_db_input($email_address) . "'");
    //-Member Approval v1.5.1
    
    
    
    
    ## and after this [approx line 36]:  ################################
    
          if (!tep_validate_password($password, $check_customer['customers_password'])) {
            $error = true;
          } else {
    
    
    ## insert this: ################################
    
    //+Member Approval v1.5.1
            if ($check_customer['member_level'] == 0 ) {
              $HTTP_GET_VARS['login'] = 'invalid';
              $messageStack->add('login', TEXT_NOT_APPROVED);
            } else {
    //-Member Approval v1.5.1
    
    
    
    ## Find this [approx line 80]:  ################################
    
            } else {
              tep_redirect(tep_href_link(FILENAME_DEFAULT));
            }
          }
        }
      }
      if ($error == true) {
    
    
    ## Replace with this:  ################################
    
    //+Member Approval v1.5.1
            } else {
              tep_redirect(tep_href_link(FILENAME_DEFAULT));
              }
            }
          }
        }
      }
      if ($error == true) {
    //-Member Approval v1.5.1



Et voici la page login.php en question :
Code
<?php
    /*
      $Id$
    
      osCommerce, Open Source E-Commerce Solutions
      http://www.oscommerce.com
    
      Copyright (c) 2014 osCommerce
    
      Released under the GNU General Public License
    */
    
      require('includes/application_top.php');
    
    // redirect the customer to a friendly cookie-must-be-enabled page if cookies are disabled (or the session has not started)
      if ($session_started == false) {
        if ( !isset($HTTP_GET_VARS['cookie_test']) ) {
          $all_get = tep_get_all_get_params();
    
          tep_redirect(tep_href_link(FILENAME_LOGIN, $all_get . (empty($all_get) ? '' : '&') . 'cookie_test=1', 'SSL'));
        }
    
        tep_redirect(tep_href_link(FILENAME_COOKIE_USAGE));
      }
    
    // login content module must return $login_customer_id as an integer after successful customer authentication
      $login_customer_id = false;
    
      $page_content = $oscTemplate->getContent('login');
    
      if ( is_int($login_customer_id) && ($login_customer_id > 0) ) {
        if (SESSION_RECREATE == 'True') {
          tep_session_recreate();
        }
    
        $customer_info_query = tep_db_query("select c.customers_firstname, c.customers_default_address_id, ab.entry_country_id, ab.entry_zone_id from " . TABLE_CUSTOMERS . " c left join " . TABLE_ADDRESS_BOOK . " ab on (c.customers_id = ab.customers_id and c.customers_default_address_id = ab.address_book_id) where c.customers_id = '" . (int)$login_customer_id . "'");
        $customer_info = tep_db_fetch_array($customer_info_query);
    
        $customer_id = $login_customer_id;
        tep_session_register('customer_id');
    
        $customer_default_address_id = $customer_info['customers_default_address_id'];
        tep_session_register('customer_default_address_id');
    
        $customer_first_name = $customer_info['customers_firstname'];
        tep_session_register('customer_first_name');
    
        $customer_country_id = $customer_info['entry_country_id'];
        tep_session_register('customer_country_id');
    
        $customer_zone_id = $customer_info['entry_zone_id'];
        tep_session_register('customer_zone_id');
    
        tep_db_query("update " . TABLE_CUSTOMERS_INFO . " set customers_info_date_of_last_logon = now(), customers_info_number_of_logons = customers_info_number_of_logons+1, password_reset_key = null, password_reset_date = null where customers_info_id = '" . (int)$customer_id . "'");
    
    // reset session token
        $sessiontoken = md5(tep_rand() . tep_rand() . tep_rand() . tep_rand());
    
    // restore cart contents
        $cart->restore_contents();
    
        if (sizeof($navigation->snapshot) > 0) {
          $origin_href = tep_href_link($navigation->snapshot['page'], tep_array_to_string($navigation->snapshot['get'], array(tep_session_name())), $navigation->snapshot['mode']);
          $navigation->clear_snapshot();
          tep_redirect($origin_href);
        }
    
        tep_redirect(tep_href_link(FILENAME_DEFAULT));
      }
    
      require(DIR_WS_LANGUAGES . $language . '/' . FILENAME_LOGIN);
    
      $breadcrumb->add(NAVBAR_TITLE, tep_href_link(FILENAME_LOGIN, '', 'SSL'));
    
      require(DIR_WS_INCLUDES . 'template_top.php');
    ?>
    
    <h1><?php echo HEADING_TITLE; ?></h1>
    
    <?php
      if ($messageStack->size('login') > 0) {
        echo $messageStack->output('login');
      }
    ?>
    
    <div id="loginModules">
      <?php echo $page_content; ?>
    </div>
    
    <script type="text/javascript">
    var login_modules_counter = 0;
    var login_modules_total = $('#loginModules .contentContainer').length;
    
    $('#loginModules .contentContainer').each(function(index, element) {
      login_modules_counter++;
    
      if ( login_modules_counter == 1 ) {
        if ( $(this).hasClass('grid_8') && ((index+1) != login_modules_total) ) {
          $(this).addClass('alpha');
        } else {
          login_modules_counter = 0;
        }
      } else {
        if ( $(this).hasClass('grid_8') ) {
          $(this).addClass('omega');
        }
    
        login_modules_counter = 0;
      }
    });
    </script>
    
    <?php
      require(DIR_WS_INCLUDES . 'template_bottom.php');
      require(DIR_WS_INCLUDES . 'application_bottom.php');
    ?>


Merci d'avance.
A bientôt.

Ce message a été modifié par Xavduck - 14 Oct 2015, 10:18.


--------------------
osCommerce 2.3.4 - Member Approval perso - Limitation des pages pour les non-clients perso - Paiement par chèque ou virement bancaire perso - Site Fr + Eng - Livraison (Collissimo) selon pays perso - Modif apparences facture admin - Theme switcher
Go to the top of the page
 
Xavduck
posté 2 Oct 2015, 10:22
Message #2


Ceinture blanche OSC
Icône de groupe

Groupe : Membres
Messages : 15
Inscrit : 25-September 15
Membre no 32660



Me revoilà,

Après un "petit" moment, j'ai réussi à encoder la page.

J'ai du aussi remonté dans la page le "define" de la langue pour que le message d'erreur puisse s'afficher correctement à la place de la variable "TEXT_NOT_APPROVED".

Voilà le résultat :

Code
<?php
/*
  $Id$

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

  Copyright (c) 2014 osCommerce

  Released under the GNU General Public License
*/

  require('includes/application_top.php');
    
    require(DIR_WS_LANGUAGES . $language . '/' . FILENAME_LOGIN);
    
// redirect the customer to a friendly cookie-must-be-enabled page if cookies are disabled (or the session has not started)
  if ($session_started == false) {
    if ( !isset($HTTP_GET_VARS['cookie_test']) ) {
      $all_get = tep_get_all_get_params();

      tep_redirect(tep_href_link(FILENAME_LOGIN, $all_get . (empty($all_get) ? '' : '&') . 'cookie_test=1', 'SSL'));
    }

    tep_redirect(tep_href_link(FILENAME_COOKIE_USAGE));
  }

// login content module must return $login_customer_id as an integer after successful customer authentication
  $login_customer_id = false;

  $page_content = $oscTemplate->getContent('login');

  if ( is_int($login_customer_id) && ($login_customer_id > 0) ) {
    if (SESSION_RECREATE == 'True') {
      tep_session_recreate();
    }
//+Member Approval v2.3.4
$customer_info_query = tep_db_query("select c.customers_firstname, c.customers_default_address_id, c.member_level, ab.entry_country_id, ab.entry_zone_id from " . TABLE_CUSTOMERS . " c left join " . TABLE_ADDRESS_BOOK . " ab on (c.customers_id = ab.customers_id and c.customers_default_address_id = ab.address_book_id) where c.customers_id = '" . (int)$login_customer_id . "'");

/*
$customer_info_query = tep_db_query("select c.customers_firstname, c.customers_default_address_id, ab.entry_country_id, ab.entry_zone_id from " . TABLE_CUSTOMERS . " c left join " . TABLE_ADDRESS_BOOK . " ab on (c.customers_id = ab.customers_id and c.customers_default_address_id = ab.address_book_id) where c.customers_id = '" . (int)$login_customer_id . "'");
*/
//-Member Approval v2.3.4

    $customer_info = tep_db_fetch_array($customer_info_query);

    $customer_id = $login_customer_id;
    tep_session_register('customer_id');

    $customer_default_address_id = $customer_info['customers_default_address_id'];
    tep_session_register('customer_default_address_id');

    $customer_first_name = $customer_info['customers_firstname'];
    tep_session_register('customer_first_name');

    $customer_country_id = $customer_info['entry_country_id'];
    tep_session_register('customer_country_id');

    $customer_zone_id = $customer_info['entry_zone_id'];
    tep_session_register('customer_zone_id');
    
//+Member Approval v2.3.4
    if ($customer_info['member_level'] == 0 ) {
          $HTTP_GET_VARS['login'] = 'invalid';
          $messageStack->add('login', TEXT_NOT_APPROVED);
        } else {
//-Member Approval v2.3.4    

    tep_db_query("update " . TABLE_CUSTOMERS_INFO . " set customers_info_date_of_last_logon = now(), customers_info_number_of_logons = customers_info_number_of_logons+1, password_reset_key = null, password_reset_date = null where customers_info_id = '" . (int)$customer_id . "'");

// reset session token
    $sessiontoken = md5(tep_rand() . tep_rand() . tep_rand() . tep_rand());

// restore cart contents
    $cart->restore_contents();

    if (sizeof($navigation->snapshot) > 0) {
      $origin_href = tep_href_link($navigation->snapshot['page'], tep_array_to_string($navigation->snapshot['get'], array(tep_session_name())), $navigation->snapshot['mode']);
      $navigation->clear_snapshot();
      tep_redirect($origin_href);
    }

    tep_redirect(tep_href_link(FILENAME_DEFAULT));
  }
  
//+Member Approval v2.3.4
}
//-Member Approval v2.3.4

  

  $breadcrumb->add(NAVBAR_TITLE, tep_href_link(FILENAME_LOGIN, '', 'SSL'));

  require(DIR_WS_INCLUDES . 'template_top.php');
?>

<h1><?php echo HEADING_TITLE; ?></h1>

<?php
  if ($messageStack->size('login') > 0) {
    echo $messageStack->output('login');
  }
?>

<div id="loginModules">
  <?php echo $page_content; ?>
</div>

<script type="text/javascript">
var login_modules_counter = 0;
var login_modules_total = $('#loginModules .contentContainer').length;

$('#loginModules .contentContainer').each(function(index, element) {
  login_modules_counter++;

  if ( login_modules_counter == 1 ) {
    if ( $(this).hasClass('grid_8') && ((index+1) != login_modules_total) ) {
      $(this).addClass('alpha');
    } else {
      login_modules_counter = 0;
    }
  } else {
    if ( $(this).hasClass('grid_8') ) {
      $(this).addClass('omega');
    }

    login_modules_counter = 0;
  }
});
</script>

<?php
  require(DIR_WS_INCLUDES . 'template_bottom.php');
  require(DIR_WS_INCLUDES . 'application_bottom.php');
?>


Par contre maintenant je bute sur la partie "admin/index.php"

Le login ce passe correctement mais la page index bug, l'affichage s’arrête à la barre de menu (admin, catalogue, Site off).

Si quelqu'un est intéressée par cette contribe, nous pourrions avancer ensemble, sinon je vous tiendrais au courant de l'avancement...

@+


--------------------
osCommerce 2.3.4 - Member Approval perso - Limitation des pages pour les non-clients perso - Paiement par chèque ou virement bancaire perso - Site Fr + Eng - Livraison (Collissimo) selon pays perso - Modif apparences facture admin - Theme switcher
Go to the top of the page
 
Bonbec
posté 2 Oct 2015, 14:44
Message #3


Ceinture marron OSC
Icône de groupe

Groupe : Modérateurs
Messages : 1325
Inscrit : 30-May 06
Lieu : Vichy (03)
Membre no 10583



Bonjour,

Il existe déjà une version pour la 2.3.4 ici : http://addons.oscommerce.com/info/1691
Par contre je ne l'ai pas testée.

Ce message a été modifié par Bonbec - 2 Oct 2015, 14:45.


--------------------
Config 1 en live : Osc 2.2 très fortement modifié ... UTF-8 et Php 5.4.
Contribs installées : down_for_maintenance_v 2.3 | Estimated Shipping v1.5 | imprint_1_3_5 | low_stock_report_v2.04 | visible_countries_1.2b | Products Tabs | shoppingCart_cleanup_v1.01.0 | + trop de bidouilles persos pas très OsCommerce (erreurs de jeunesse)
Config 2 en local avec UwAmp : Osc 2.3.4 BS
Go to the top of the page
 
Xavduck
posté 2 Oct 2015, 15:14
Message #4


Ceinture blanche OSC
Icône de groupe

Groupe : Membres
Messages : 15
Inscrit : 25-September 15
Membre no 32660



Merci ,

je vais y jeter un oeil...

Bien que je ne sois pas sur des versions...

Apparemment la version que tu me propose serait pour 2.2 et on pour la 2.3 ....

Ce message a été modifié par Xavduck - 2 Oct 2015, 15:23.


--------------------
osCommerce 2.3.4 - Member Approval perso - Limitation des pages pour les non-clients perso - Paiement par chèque ou virement bancaire perso - Site Fr + Eng - Livraison (Collissimo) selon pays perso - Modif apparences facture admin - Theme switcher
Go to the top of the page
 
Bonbec
posté 2 Oct 2015, 15:43
Message #5


Ceinture marron OSC
Icône de groupe

Groupe : Modérateurs
Messages : 1325
Inscrit : 30-May 06
Lieu : Vichy (03)
Membre no 10583



Re,

Je maintiens que la dernière mise à jour de cette contrib concerne la 2.3.4 smile.gif
Quand tu es sur la page de la contrib, regarde l'onglet "history".

Ce message a été modifié par Bonbec - 2 Oct 2015, 15:44.


--------------------
Config 1 en live : Osc 2.2 très fortement modifié ... UTF-8 et Php 5.4.
Contribs installées : down_for_maintenance_v 2.3 | Estimated Shipping v1.5 | imprint_1_3_5 | low_stock_report_v2.04 | visible_countries_1.2b | Products Tabs | shoppingCart_cleanup_v1.01.0 | + trop de bidouilles persos pas très OsCommerce (erreurs de jeunesse)
Config 2 en local avec UwAmp : Osc 2.3.4 BS
Go to the top of the page
 
Xavduck
posté 6 Oct 2015, 07:13
Message #6


Ceinture blanche OSC
Icône de groupe

Groupe : Membres
Messages : 15
Inscrit : 25-September 15
Membre no 32660



Ca y est !!!

Hourra !!

J'ai enfin trouvé, du coup je maintient que ta contrib n'est pas valide pour la 2.3.4, les codes étant relativement différents et de plus il y à trop de bouts de contribs dans certain fichier qui n'ont rien a voir avec la "member approval".

L’erreur venait du code du fichier "admin/includes/boxes/customers.php"


Le code donné dans le fichier readme était faux :
Code
#### [ OPEN ] ##################################################################

admin/includes/boxes/customers.php

##################################################################

## After this: ################################

      array(
        'code' => FILENAME_CUSTOMERS,
        'title' => BOX_CUSTOMERS_CUSTOMERS,
        'link' => tep_href_link(FILENAME_CUSTOMERS)
      ),
                                  

## Insert this: ################################

//+Member Approval v1.5.1
      array(
        'code' => FILENAME_MEMBERS,
        'title' => BOX_CUSTOMERS_APPROVAL,
        'link' => tep_href_link(FILENAME_MEMBERS)
      ),
//-Member Approval v1.5.1



juste une histoire de virgule : 1 mal placée et 1 en trop, le bon code étant donc :

Code
#### [ OPEN ] ##################################################################

admin/includes/boxes/customers.php

##################################################################

## find this: ################################

      array(
        'code' => FILENAME_CUSTOMERS,
        'title' => BOX_CUSTOMERS_CUSTOMERS,
        'link' => tep_href_link(FILENAME_CUSTOMERS)
      )
                                  

## replace by this: ################################

      array(
        'code' => FILENAME_CUSTOMERS,
        'title' => BOX_CUSTOMERS_CUSTOMERS,
        'link' => tep_href_link(FILENAME_CUSTOMERS)
      ),
//+Member Approval v1.5.1
      
        array(
        'code' => FILENAME_MEMBERS,
        'title' => BOX_CUSTOMERS_APPROVAL,
        'link' => tep_href_link(FILENAME_MEMBERS)
      )
//-Member Approval v1.5.1


Et voilà, ça marche.


--------------------
osCommerce 2.3.4 - Member Approval perso - Limitation des pages pour les non-clients perso - Paiement par chèque ou virement bancaire perso - Site Fr + Eng - Livraison (Collissimo) selon pays perso - Modif apparences facture admin - Theme switcher
Go to the top of the page
 

Reply to this topicStart new topic
1 utilisateur(s) sur ce sujet (1 invité(s) et 0 utilisateur(s) anonyme(s))
0 membre(s) :

 



RSS Version bas débit Nous sommes le : 22nd November 2017 - 17:41
Ce site est déclaré auprès de la commision Nationale
de l'Informatique et des Libertés (déclaration n°: 1043896)