Jump to content

Creation d'un module avec table et association shop


Recommended Posts

Je suis en train de créer un module avec onglet, meta etc... dans l'onglet J'ai un admincontroler

 

et j'ai crée deux tables :

- table

- table_shop (avec id_table et id_shop)

 

car les données ont doit pouvoir sélectionner sur quel shop elles s'affichent. Côté formulaire j'ai bien le choix des shops

 

mais sur l'enregistrement, dans par exemple le processUpdate j'ai :

if ($object->id)
					$this->updateAssoShop($object->id);

 

Chouette ca va me faire la liaison ! et ben non

dans updateAssoShop :

$assos_data = $this->getAssoShop($this->table, $id_object);

 

je vais voir getAssoShop et la:

$shop_asso = Shop::getAssoTables();
$group_shop_asso = GroupShop::getAssoTables();
	if (isset($shop_asso[$table]) && $shop_asso[$table]['type'] == 'shop')
		$type = 'shop';
	else if (isset($group_shop_asso[$table]) && $group_shop_asso[$table]['type'] == 'group_shop')
		$type = 'group_shop';
	else
		return;

 

il y a un controle si ma table existe dans Shop::getAssoTables qui elle se réfère à une propriété private : private static $asso_tables = array(

 

donc ma table n'existe pas à l'intérieur donc pas d'association. en private je peux pas l'overridé bref peut rien faire. J'ai pas trouvé non plus de méthode permettant d'ajouter une valeur à ce tableau

 

comment je fais ? obligé de développer soit même pour nos modules la gestion des associations (ce que je trouverai idiot) ? ou il y a une astuce que j'ai pas trouvé ?

 

Merci

 

Ps: suis sur la dernière version svn

  • Like 1
Link to comment
Share on other sites

bon ben voici la solution, j'ai ajouté une méthode dans la class Shop :

 

/**
 * add item to the list of associated tables to shop
 *
 * @return array
 */
public static function addAssoTables($name, $type = 'shop', $primary = false)
{  
	    $table['type'] = $type;
	    if($primary) $table['primary'] = $primary;
	    self::$asso_tables[$name] = $table;

}

 

je vais posté tout ça sur la forge

Link to comment
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
×
×
  • Create New...