se connecter a une autre base dans plugin

  • Posts: 2639
  • Thank you received: 66
  • Hikashop Business
12 years 2 months ago #66712

Il faut que je cree un plugin qui va mettre a jour des données d'Hikashop dans une autre base de donnees sur le meme serveur

quel est la syntaxe de Joomla pour une autre connexion que celle de la config ?

Joomla utilise configuration.php

public $host = 'localhost';
public $user = 'erezrgerg';
public $password = 'gthkrh,';
public $db = 'sgerg';
public $dbprefix = 'grerge_';

me faudrait un genre de $connexion = JFactory::getDBO(server, database, user,password,prefix)

merci

Please Log in or Create an account to join the conversation.

  • Posts: 13201
  • Thank you received: 2322
12 years 2 months ago #66913

Bonjour erickb,

Je pense que ceci relève plutôt du domaine de Joomla plutôt que HikaShop. Il serait préférable de poster sur le forum de Joomla.

A mon avis il faudrait se baser sur la fontcion getDBO de joomla:

	function &getDBO()
	{
		static $instance;

		if (!is_object($instance))
		{
			//get the debug configuration setting
			$conf =& JFactory::getConfig();
			$debug = $conf->getValue('config.debug');

			$instance = JFactory::_createDBO();
			$instance->debug($debug);
		}

		return $instance;
	}
Et au lieu de: "JFactory::getConfig();", faire un appel vers un autre fichier de configuration dans lequel il y aurait vos paramètres.
Mais je ne suis pas sûr de cette réponse.

The following user(s) said Thank You: erickb

Please Log in or Create an account to join the conversation.

  • Posts: 2639
  • Thank you received: 66
  • Hikashop Business
12 years 2 months ago #66917

c'est ce que j'avais trouve aussi
mais sous quelle forme et dans quel ordre cet array $options pour JDatabase::getInstance( $options) ; ?

ligne 249
http://api.joomla.org/11.4/__filesource/fsource_Joomla-Platform_Database_librariesjoomladatabasedatabase.php.html#a249

driver => 'mysql'
database => 'databasename' // je suppose
select => ??

à quel endroit et comment je passe user, password et prefix ?

merci pour l'aide

Please Log in or Create an account to join the conversation.

  • Posts: 13201
  • Thank you received: 2322
12 years 2 months ago #66942

Dans votre plugin, faites de cette sorte:

$db = & $this->getDBO();
	function &getDBO()
	{
		static $instance;

		if (!is_object($instance))
		{
			//get the debug configuration setting
			$conf =& JFactory::getConfig();
			$debug = $conf->getValue('config.debug');

			$instance = $this->_createDBO();
			$instance->debug($debug);
		}

		return $instance;
	}
	function &_createDBO()
	{
		jimport('joomla.database.database');
		jimport( 'joomla.database.table' );

		$conf =& JFactory::getConfig();

		$host 		= //votre valeur
		$user 		= //votre valeur
		$password 	= //votre valeur
		$database	= //votre valeur
		$prefix 	= //votre valeur
		$driver 	= $conf->getValue('config.dbtype');
		$debug 		= $conf->getValue('config.debug');

		$options	= array ( 'driver' => $driver, 'host' => $host, 'user' => $user, 'password' => $password, 'database' => $database, 'prefix' => $prefix );

		$db =& JDatabase::getInstance( $options );

		if ( JError::isError($db) ) {
			header('HTTP/1.1 500 Internal Server Error');
			jexit('Database Error: ' . $db->toString() );
		}

		if ($db->getErrorNum() > 0) {
			JError::raiseError(500 , 'JDatabase::getInstance: Could not connect to database <br />' . 'joomla.library:'.$db->getErrorNum().' - '.$db->getErrorMsg() );
		}

		$db->debug( $debug );
		return $db;
	}

The following user(s) said Thank You: erickb

Please Log in or Create an account to join the conversation.

  • Posts: 2639
  • Thank you received: 66
  • Hikashop Business
12 years 2 months ago #66944

Genial !

merci Xavier , c'est un truc a garder au chaud

Please Log in or Create an account to join the conversation.

Time to create page: 0.069 seconds
Powered by Kunena Forum