Location: PHPKode > projects > Php simple acces data mysql > phpsimpledb_v2/manage/projets/objets/xml.php
<?php
	header( 'Content-Type: text/html; charset: UTF-8' );
	include_once( '../../../includes/prepend.php' );
	
	//recuperation de l'action
	$sAction = $_REQUEST[ 'action' ];
	if( is_null( $sAction ) || $sAction == '' )
		exit();
	
	$oData = NULL;
	//connexion à la base de données du projet
	if( isset( $_REQUEST[ 'tag' ] ) && $_REQUEST[ 'tag' ] != '' ){
		$oData = $oFramework->oProjets->getData( $_REQUEST[ 'tag' ] );
		$oFramework->oProjets->sChaineConnexion = "mysql:host=".$oData->bddServer.";port=3306;dbname=".$oData->bddBdd;
		$oFramework->oProjets->sUser = $oData->bddUser;
		$oFramework->oProjets->sPass = $oData->bddPass;
	}
	
	if( $sAction == 'genTables' ){
		//generation ou regeneration de la base des objects
		//recuperation des tables
		$oTables = array();
		if( $_REQUEST[ 'tables' ] == '::all-tables::' )
			$oTables = $oFramework->oProjets->getAllTables();
		else
			$oTables = explode( ';', rtrim( $_REQUEST[ 'tables' ], ';' ) );
		
		//recuperation des objects du projet si il y en a
		$oObjectsPrj = $oFramework->oObjects->getObjects( $_REQUEST[ 'tag' ] );

		//recuperation des données des tables pour les stocker dans les objets associés
		//generation de la nouvelle liste d'objects
		$oNewListesObjects = array();
		$oDeletePrjs = array();
		foreach( $oTables as $sTable ){
			$oObjectBDD = $oFramework->oObjects->getObjectFromTable( $sTable );
			
			//recherche si il existe un object similaire dans le projet
			$bObjectExist = false;
			foreach( $oObjectsPrj as $oObjectPrj ){
				if( $oObjectPrj->sTable == $oObjectBDD->sTable ){
					//pour tous les champs du projet existant
					//si il n'existe pas dans le projet bdd alors ajout dans le projet bdd
					foreach( $oObjectPrj->oFields as $oFieldPrj ){
						$bFieldExist = false;
						foreach( $oObjectBDD->oFields as $oFieldBDD )
							if( $oFieldPrj->sName == $oFieldBDD->sName ){
								$bFieldExist = true;
								break;
							}
						if( !$bFieldExist )
							$oObjectBDD->oFields[] = $oFieldPrj;
					}
					//marque l'objet comme supprime
					$oDeletePrjs[] = $oObjectPrj->sTable;
					break;
				}
			}
			$oNewListesObjects[] = $oObjectBDD;
		}
		foreach( $oObjectsPrj as $oObjectPrj )
			if( !in_array( $oObjectPrj->sTable, $oDeletePrjs ) )
				$oNewListesObjects[] = $oObjectPrj;
		
		//enregistrement du nouveau fichier d'objets
		$oFramework->oObjects->setObjects( $_REQUEST[ 'tag' ], $oNewListesObjects );
		
	}else if( $sAction == 'deleteObject' ){
		
		//supprime un objet du projet
		
		$oFramework->oObjects->deleteObject( $_REQUEST[ 'tag' ], $_REQUEST[ 'object' ] );
		
	}else if( $sAction == 'deleteAllObjects' ){
		
		//supprime tous les objets d'un projet
		
		$oFramework->oObjects->deleteAllObjects( $_REQUEST[ 'tag' ] );
		
	}else if( $sAction == 'getObjects' ){
		
		//recuperation des objects du projet si il y en a
		$oObjectsPrj = $oFramework->oObjects->getObjects( $_REQUEST[ 'tag' ] );
		
		$oTpl_list_objects = new smarty_site();
		$oTpl_list_objects->assign( 'oAllObjects', $oObjectsPrj );
		$oTemplate->clear_cache( 'app/projet/projet-div-list-objects.html' );
		echo $oTpl_list_objects->fetch( 'app/projet/projet-div-list-objects.html' );
		
	}else if( $sAction == 'getDataObject' ){

		$oObject = $oFramework->oObjects->getObject( $_REQUEST[ 'object' ], $_REQUEST[ 'tag' ] );
		
		$oTpl_object = new smarty_site();
		$oTpl_object->assign( 'table', $oObject->sTable );
		$oTpl_object->assign( 'desc', $oObject->sDesc );
		$oTpl_object->assign( 'oFields', $oObject->oFields );
		$oTemplate->clear_cache( 'app/projet/projet-div-object-data.html' );
		echo $oTpl_object->fetch( 'app/projet/projet-div-object-data.html' );
		
	}else if( $sAction == 'getFields' ){
		
		$oField = $oFramework->oObjects->getFieldByObjectProject( $_REQUEST[ 'tag' ], $_REQUEST[ 'object' ], $_REQUEST[ 'field' ] );
		
		$oTpl_field = new smarty_site();
		$oTpl_field->assign( 'typefield', $oField->sTypeField );
		$oTpl_field->assign( 'name', $oField->sName );
		$oTpl_field->assign( 'type', $oField->sType );
		$oTpl_field->assign( 'interclassement', $oField->sInterclassement );
		$oTpl_field->assign( 'attributs', $oField->sAttributs );
		$oTpl_field->assign( 'null', $oField->sNull );
		$oTpl_field->assign( 'key', $oField->sKey );
		$oTpl_field->assign( 'defaut', $oField->sDefaut );
		$oTpl_field->assign( 'extra', $oField->sExtra );
		
		if( $oField->sTypeField == 'object' ){
			
			//recupere tous les objets possedant un id
			$oObjects = $oFramework->oObjects->getObjectsGUID( $_REQUEST[ 'tag' ] );
			$oTpl_field->assign( 'oAllObjects', $oObjects );
			$oTpl_field->assign( 'sSelectObject', $oField->sLinkObject );
		}
		
		$oTemplate->clear_cache( 'app/projet/projet-div-detail-field.html' );
		echo $oTpl_field->fetch( 'app/projet/projet-div-detail-field.html' );
		
	}else if( $sAction == 'updateObjectDetail' ){
		
		$oDetail = array( 'sDesc'=>$_REQUEST[ 'desc' ] );
		$oFramework->oObjects->updateObjectDetail( $_REQUEST[ 'tag' ], $_REQUEST[ 'object' ], $oDetail );
		
	}else if( $sAction == 'getObjectsGUID' ){
		
		//recupere tous les objets possedant un id
		$oObjects = $oFramework->oObjects->getObjectsGUID( $_REQUEST[ 'tag' ] );
		
		$oTpl_list_objects = new smarty_site();
		$oTpl_list_objects->assign( 'oAllObjects', $oObjects );
		$oTemplate->clear_cache( 'app/projet/projet-div-field-list-objects.html' );
		echo $oTpl_list_objects->fetch( 'app/projet/projet-div-field-list-objects.html' );
		
	}else if( $sAction == 'updateFieldType' ){
		
		//mise a jour du type de champ d'un objet
		$oDetail = array( 'sTypeField'=>$_REQUEST[ 'typefield' ],
			'sLinkObject'=>$_REQUEST[ 'value' ] );
		$oFramework->oObjects->updateFieldObject( $_REQUEST[ 'tag' ], $_REQUEST[ 'object' ], $_REQUEST[ 'field' ], $oDetail );
		
	}
?>
Return current item: Php simple acces data mysql