Transmettre tableau entre classes

DAG -  
 Othee -
Bonjour,
Je suis en train de développer un module pour eGroupware... Pour ceux qui connaissent...
Bref, je commance mal je n'arrive pas à lister le contenu d'une table déjà existante...
Je divise mon développement en trois parties, le model la vue et le controleur.
Il y a trois classes : soproject, boproject, uiproject.
Voici la classe soproject, elle s'occupe de récupérer les données dans la base :
class soproject
{
	var $db;
	function soproject()
	{
		$this->db = clone($GLOBALS['egw']->db);
	} 
	function listproject()
	{
		$data = array();
		$this->db->query("SELECT pm_id, pm_number FROM egw_pm_projects");
		while($this->db->next_record())
		{
			$data[] = $this->db->Record;
		}
		return $data;
	}
}


Voici la classe boproject, elle s'occupe de classer les données récupérées (bon là il n'y a pas grand chose à :
class boproject
{
	var $so;
	function boproject()
	{
		$this->so=&CreateObject('project.soproject');
	}
	function listproject()
	{
		$list = array();
		$project_names = $this->so->listproject();
		foreach ($project_names as $data)
		{
			$list['pm_id'] = $data['pm_id'];
			$list['pm_number'] = $data['pm_number'];
		}
		return $list;
	}
}


Et voici la classe uiproject qui permet l'affichage des données :
class uisuiviTMA
{
	var $public_functions = array('call_project'=>True,);
	var $bo;
 	function uiproject()
	{
		$GLOBALS['egw_info']['flags']['app_header']='project';
		$this->bo=&CreateObject('project.boproject');
		$this->tmpl=&CreateObject('etemplate.etemplate', 'project.print');
		$this->html=&$GLOBALS['egw']->html;
		if(!@is_object($GLOBALS['egw']->js))
		{
			$GLOBALS['egw']->js =& CreateObject('phpgwapi.javascript');
		}  
	} 
	
	function call_project($content=null)
	{
		$projects = $this->bo->listproject();
		
		$content['pm_id']='';
		$content['pm_number']='';
		$content['pm_title']='';
		$content['pm_description']='';
		$content['pm_creator']='';

		$tpl=new etemplate('suiviTMA.project.print');
		$tpl->set_cell_attribute('debuginfos','disabled',!$debug); 
		$tpl->set_cell_attribute('myhrule','disabled',!$separator);	
		$tpl->exec('suiviTMA.uisuiviTMA.call_suiviTMA_project_print',$content,$sel_options); 
	}
}


C'est dans entre ces deux dernieres classe que je n'arrive pas à faire transiter le tableau des données trouvée dans la bdd.
J'ai un peu de mal avec les tableaux, il me faudrait juste transférer les 3 champs, avec autant d'occurence qu'il y en a dans la base, entre les deux classes afin de les affichées !

Si quelqu'un à une idée !...
A voir également:

1 réponse

Othee
 
Je sais pas si ca résout ton problème mais dans ta liste tu mets juste à jour les champs de $list
$i;
foreach ($project_names as $data)
{
$list[$i]['pm_id'] = $data['pm_id'];
$list[$i]['pm_number'] = $data['pm_number'];
$i++;
}

ca te donnera une liste de projets.

J'utilise pas l'objet eTemplate mais y a pas un moment ou tu dois lui dire que tes données sont dans la variable $projects ?
0