Bonjour,
En cours de développement d'un composant Joomla 1.5, je me retrouve bloqué sur un problème des plus étranges ...
Depuis ma vue, je récupère des données BDD, ci-dessous la fonction de mon modèle :
Dans ma vue je glisse ces données à mon template, que je récupère avec $this->contacts dans une boucle foreach. Sur une modification d'enregistrement, tout va bien, ma liste de contacts se charge nickel.
En création d'enregistrement par contre, cas où le modèle crée une instance de stdClass() avec des données de base, le foreach boucle 8 fois !
Un count($this->contacts) me renvoi bien 1 ...
Un truc étrange : 8 et le nombre d'enregistrements de la table fonction utilisée pour générer un des SELECT du template ...
Ci-dessous un bout du template en espérant que quelqu'un puisse m'éclairer ... d'avance merci
En cours de développement d'un composant Joomla 1.5, je me retrouve bloqué sur un problème des plus étranges ...
Depuis ma vue, je récupère des données BDD, ci-dessous la fonction de mon modèle :
Code PHP:
function &getContacts()
{
if ( empty( $this->_contacts ) )
{
$query = ' SELECT id_entreprise, id_genre, nom, prenom, tel, mail, interlocuteur, id_fonction'.
' FROM contacts'.
' WHERE id_entreprise = '.$this->_id .
' ORDER BY nom';
$this->_db->setQuery ( $query );
$this->_contacts = $this->_db->loadObjectList();
}
if ( !$this->_contacts )
{
$this->_contacts = new stdClass();
$this->_contacts->id_entreprise = 0;
$this->_contacts->id_fonction = 1;
$this->_contacts->id_genre = 1;
$this->_contacts->nom = '';
$this->_contacts->prenom = '';
$this->_contacts->tel = '';
$this->_contacts->mail = '';
$this->_contacts->interlocuteur = 0;
}
return $this->_contacts;
}
En création d'enregistrement par contre, cas où le modèle crée une instance de stdClass() avec des données de base, le foreach boucle 8 fois !
Un count($this->contacts) me renvoi bien 1 ...
Un truc étrange : 8 et le nombre d'enregistrements de la table fonction utilisée pour générer un des SELECT du template ...
Ci-dessous un bout du template en espérant que quelqu'un puisse m'éclairer ... d'avance merci
Code PHP:
foreach ( $this->contacts as $contact )
{
?>
<tr class='contactGsf'>
<td>
<select id='id_genre' name='id_genre'>
<?php
foreach ( $this->genres as $genre )
{
if ( $genre->id_genre == $contact->id_genre )
{ $sel = 'selected '; }
else
{ $sel = ''; }
?>
<option <?php echo $sel; ?>value="<?php echo $genre->id_genre; ?>">
<?php echo $genre->libelle; ?>
</option>
<?php
}
?>
</select>
</td>
<td>
<input class="inputbox" type="text" name="nom" id="nom" size="35" maxlength="150" value="<?php echo $contact->nom; ?>" />
</td>
<td>
<input class="inputbox" type="text" name="prenom" id="prenom" size="35" maxlength="150" value="<?php echo $contact->prenom; ?>" />
</td>
<td>
<select id='id_fonction' name='id_fonction'>
<?php
foreach ( $this->fonctions as $fonction )
{
if ( $contact->id_fonction == $fonction->id_fonction )
{ $sel = 'selected '; }
else
{ $sel = ''; }
?>
<option <?php echo $sel; ?>value="<?php echo $fonction->id_fonction; ?>">
<?php echo $fonction->libelle; ?>
</option>
<?php
}
?>
</select>
</td>
<td>
<input class="inputbox" type="text" name="tel" id="tel" size="30" maxlength="30" value="<?php echo $contact->tel; ?>" />
</td>
<td>
<input class="inputbox" type="text" name="mail" id="mail" size="35" maxlength="150" value="<?php echo $contact->mail; ?>" />
</td>
<td align="center">
<input type="checkbox" <?php echo $checkM; ?> name="interlocuteur" id="interlocuteur" value="<?php echo $contact->interlocuteur; ?>" />
</td>
</tr>
<?php
}
?>
Commentaire