Jump to content
Sign in to follow this  
michmuch51

Prestashop 1.6.1.4 et IP.Board 3.4.7

Rate this topic

Recommended Posts

salut le Hub,

 

ça fait un sacré moment que je ne suis passé dans le coin :D

 

il s'est tellement passé de choses depuis... enfin bref...

 

Je viens vers vous car je suis à la recherche d'une solution simple et légère me permettant de faire le lien entre une communauté présente sur un forum IP.Board 3.4.7 et un shop utilisant prestashop  1.6.1.4.

 

dans la version ipb que j'ai il y a une chose que je souhaite creuser c'est le gestionnaire de connexion présent dans outils et paramètres.

 

je retrouve dedans :

 

IPB Converter Logins    
Auth Module for Converted Boards with Different Password Systems        ACTIVÉ        

    IPB Converter Logins    
Auth Module for Converted Boards with Different Password Systems        ACTIVÉ        

    IPB Internal    
The standard method of authentication        ACTIVÉ        
 
    LDAP Authentication    
LDAP / Active Directory Authentication        Désactivé        
 
    External Database    
Authentication via an external database        Désactivé        

    IPS Connect

 

je me demandais si il n'était pas possible d'utiliser le formulaire de connexion prestashop pour se connecter au forum ou vice et versa avec un de ces modules.

 

je suis venu poster ici pour que vous puissiez m'orienter sur une piste sachant que le Hub tourne sous IPB depuis la nuit des temps - n'est-ce pas Dan ;)

 

J'espère que certains d'entre vous auront déjà eu ce type de chose à faire car hélas sur le web j'ai bien creusé et autant il est facile de trouver le nécessaire pour lier prestashop à phpbb autant prestashop à IPB c'est plus dur à trouver !

Share this post


Link to post
Share on other sites

Bonjour,

 

Et oui, le Hub tourne IPB depuis le 18 août 2003 ... bientôt 13 ans !

 

Tu peux utiliser l'authentification par base de données externe.

 

Comme on  est passé à IPB 4.x depuis bien longtemps, je n'ai plus de forum sous IPB 3.x pour te dire où aller régler cela.

 

Share this post


Link to post
Share on other sites

oui j'avais retrouvé un petit bout de code pour récupérer si le membre sortant du forum est identifié ou non avec son e-mail et le reste :

<?php

require_once( $_SERVER['DOCUMENT_ROOT'].'/initdata.php' );
                require_once(  $_SERVER['DOCUMENT_ROOT'].'rep-admin-ici/sources/base/ipsRegistry.php' );
                $registry = ipsRegistry::instance();
                $registry->init(); 

$member = $registry->member()->fetchMemberData();
                
if ( $member['member_id'] ) {


print_r($member);
}
else {

echo "You're not logged in.";

}
                ?>

je pensais peut être par la suite lancer un script pour l'authentifier automatiquement sur presta si il est identifié sur ipb en fonction de le réponse donné à ce code...

 

si je pars sur ce chemin je ne me sers pas des modules existant d'ipb en natif du coup ce sera peut être un peu plus lourd... bon je vais creuser.

Share this post


Link to post
Share on other sites

IPB et prestashop ne peuvent pas se connecter à un SSO ? :whistling:

Share this post


Link to post
Share on other sites

Si, justement mon cher SStephane j'en suis là ;)

 

je n'ai pas encore résolu mon problème mais je creuse du côté de IPS connect.

 

Sur cette page il y ajustement un exemple de script où ipb est master et l'autre esclave.

 

j'ai donc bien joué avec le script esclave d'exemple donné sur la page cet après midi qui tourne à merveille mais hélas maintenant il faut que j'adapte le truc à Prestashop....

 

entre temps j'ai même installé ce petit module wordpress dans lequel le forum est en esclave. J'ai donc bien mon wordpress sur le même site qui fonctionne en esclave et c'est vraiment bien fait, mais je dois m'attaquer à prestashop et j'avoue que l'histoire des cookies me fait un peu peur. Mes connaissances en php sont un peu limités pour aller sur des terrains aussi complexes :(

 

je pense que tout doit se jouer sur le fichier include présent dans l'exemple :

 

//-----------------------------------------
	// Connect to database
	//-----------------------------------------

	require_once 'config.php';
	$db = new mysqli( $databaseHost, $databaseUsername, $databasePassword, $databaseDatabase );
	
	//-----------------------------------------
	// Are we logged in?
	//-----------------------------------------
	
	$loggedIn = NULL;
	
	// Only do this if the user has not expressly logged out of the IPS Connect Network
	if ( !isset( $_COOKIE[ 'ipsconnect_' . md5( $masterUrl ) ] ) or $_COOKIE[ 'ipsconnect_' . md5( $masterUrl ) ] )
	{
		// Check local cookies
		if ( isset( $_COOKIE['ipsce_user'] ) )
		{	
			if ( $user = $db->query( "SELECT * FROM members WHERE username='". $db->escape_string( $_COOKIE['ipsce_user'] ) ."'" )->fetch_array() )
			{
				if ( $user['password'] == $_COOKIE['ipsce_pass'] )
				{
					$loggedIn = $user['username'];
				}
			}
		}
		
		// Check IPS Connect
		if ( $loggedIn === NULL and isset( $_COOKIE[ 'ipsconnect_' . md5( $masterUrl ) ] ) and $_COOKIE[ 'ipsconnect_' . md5( $masterUrl ) ] )
		{
			$check = file_get_contents( $masterUrl . '?' . http_build_query( array( 'act' => 'cookies', 'data' => json_encode( $_COOKIE ) ) ) );
			if ( $check = @json_decode( $check, TRUE ) and $check['connect_status'] == 'SUCCESS' )
			{
				// Load local member
				if ( $user = $db->query( "SELECT * FROM members WHERE connect_id=". intval( $check['connect_id'] ) )->fetch_array() )
				{
					// Update local member
					if ( $user['username'] != $check['connect_username'] or $user['email'] != $check['connect_email'] )
					{
						$db->query( "UPDATE members SET username='". $db->escape_string( $check['connect_username'] ) ."', email='". $db->escape_string( $check['connect_email'] ) ."' WHERE connect_id=". intval( $check['connect_id'] ) .";" );
					}
				}
				else
				{
					// Create local member
					$db->query( "INSERT INTO members ( username, email, password, connect_id ) VALUES ( '". $db->escape_string( $check['connect_username'] ) ."', '". $db->escape_string( $check['connect_email'] ) ."', '". md5( rand( 1, 10000 ) ) ."', ". intval( $check['connect_id'] ) ." )" );
					$user = $db->query( "SELECT * FROM members WHERE connect_id=". intval( $check['connect_id'] ) )->fetch_array();
				}
				
				// Log in
				setcookie( 'ipsce_user', $user['username'], time()+60*60*24*30 );
				setcookie( 'ipsce_pass', $user['password'], time()+60*60*24*30 );
				$loggedIn = $user['username'];
			}
		}
	}

j'ai un petit peu peur d'y passer un certain temps :(

slave.zip

Edited by michmuch51
ajout de slave.zip pour illustrer mes propos

Share this post


Link to post
Share on other sites
Le 08/06/2016 at 16:48, Dan a dit :

Bonjour,

 

Et oui, le Hub tourne IPB depuis le 18 août 2003 ... bientôt 13 ans !

 

Tu peux utiliser l'authentification

 

 par base de données externe.

 

Comme on  est passé à IPB 4.x depuis bien longtemps, je n'ai plus de forum sous IPB 3.x pour te dire où aller régler cela.

 

bonjour!  comment resoud t on un problème de virus s'il vous plait, mon PC il ram beaucoup et fait des écrans bleu.

merci!!

Edited by Arlette
Suppression du lien spammeur !

Share this post


Link to post
Share on other sites

Bonjour,

 

On met son anti-virus à jour et on évite de citer dans anciens posts juste pour mettre un lien vers le site que l'on souhaite mettre en avant.  Cette pratique est vieille comme le web et ça se voit comme le nez au milieu de la figure. 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...