本文整理汇总了PHP中PropelCollection::add方法的典型用法代码示例。如果您正苦于以下问题:PHP PropelCollection::add方法的具体用法?PHP PropelCollection::add怎么用?PHP PropelCollection::add使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类PropelCollection
的用法示例。
在下文中一共展示了PropelCollection::add方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: testAdd
/**
* Test that PropelCollection->add() prevents duplicates of objects strictly identical
*
*/
public function testAdd()
{
Propel::disableInstancePooling();
$eleve1 = EleveQuery::create()->findOneByLogin('Florence Michu');
$eleve1->setNom('test_different');
$eleve_col = new PropelCollection();
$eleve_col->add($eleve1);
$eleve1idem = EleveQuery::create()->findOneByLogin('Florence Michu');
$this->assertFalse($eleve_col->contains($eleve1idem));
$eleve_col->add($eleve1idem);
$this->assertEquals(2, count($eleve_col));
Propel::enableInstancePooling();
$eleve1 = EleveQuery::create()->findOneByLogin('Florence Michu');
$eleve_col = new PropelCollection();
$eleve_col->add($eleve1);
$eleve_col->add($eleve1);
$this->assertEquals(1, count($eleve_col));
}
示例2: getDescription
/**
*
* Renvoi une description intelligible du traitement
*
* @return String description
*
*/
public function getDescription() {
if (!isset($description) || $description === null) {
$desc = 'n° '.$this->getId();
$desc .= ' créé le ';
$desc .= strftime("%a %d/%m/%Y", $this->getUpdatedAt('U'));
$eleve_col = new PropelCollection();
foreach ($this->getAbsenceEleveSaisies() as $abs_saisie) {
if ($abs_saisie->getEleve() != null) {
$eleve_col->add($abs_saisie->getEleve());
}
}
foreach ($eleve_col as $eleve) {
if ($eleve_col->isFirst()) {
$desc .= '; ';
}
$desc .= $eleve->getNom().' '.$eleve->getPrenom();
if (!$eleve_col->isLast()) {
$desc .= ', ';
}
}
if ($this->getAbsenceEleveType() != null) {
$desc .= "; type : ".$this->getAbsenceEleveType()->getNom();
}
if ($this->getAbsenceEleveMotif() != null) {
$desc .= "; motif : ".$this->getAbsenceEleveMotif()->getNom();
}
if ($this->getAbsenceEleveJustification() != null) {
$desc .= "; justification : ".$this->getAbsenceEleveJustification()->getNom();
}
$notif = false;
foreach ($this->getAbsenceEleveNotifications() as $notification) {
if ($notification->getStatutEnvoi() == AbsenceEleveNotificationPeer::STATUT_ENVOI_SUCCES
|| $notification->getStatutEnvoi() == AbsenceEleveNotificationPeer::STATUT_ENVOI_SUCCES_AVEC_ACCUSE_DE_RECEPTION) {
$notif = true;
break;
}
}
if ($notif) {
$desc .= "; Notifié";
}
if ($this->getCommentaire() != null && $this->getCommentaire() != '') {
$desc .= "; Commentaire : ".$this->getCommentaire();
}
$description = $desc;
}
return $description;
}
示例3: PropelCollection
}
}
if ($notification->getModifiable()) {
echo '<div>';
echo '<form method="post" action="enregistrement_modif_notification.php">';
echo '<input type="hidden" name="menu" value="'.$menu.'"/>';
echo '<p>';
echo '<input type="hidden" name="id_notification" value="'.$notification->getPrimaryKey().'"/>';
echo '<input type="hidden" name="modif" value="adresse"/>';
echo ("<select name=\"adr_id\" onchange='submit()'>");
$adresse_col = new PropelCollection();
if ($notification->getAbsenceEleveTraitement() != null) {
foreach ($notification->getAbsenceEleveTraitement()->getResponsablesInformationsSaisies() as $responsable_information) {
if ($responsable_information->getResponsableEleve() != null && $responsable_information->getResponsableEleve()->getAdresse() != null) {
$adresse_col->add($responsable_information->getResponsableEleve()->getAdresse());
}
}
}
foreach ($adresse_col as $responsable_addresse) {
//$responsable_addresse = new Adresse();
echo '<option value="'.$responsable_addresse->getPrimaryKey().'"';
if ($notification->getAdresse() != null &&
$responsable_addresse->getPrimaryKey() == $notification->getAdresse()->getPrimaryKey()) {
echo " selected='selected' ";
}
echo ">";
if ($responsable_addresse->getAdr1() != null && $responsable_addresse->getAdr1() != '') {
echo $responsable_addresse->getAdr1();
echo ' ';
}
示例4: traiteEleve
/**
* Récupère les données d'un élève à afficher
* @param objet $eleve Un élève issu de getEleves()
* @param date $date_debut
* @param date $date_fin
* @param objet $justifie_col Collection Propel avec les justifications
* @param bool $donneeBrut
* @return array Une ligne du tableau à afficher
* @see getEleves()
*/
function traiteEleve($eleve,$date_debut, $date_fin, $justifie_col, $donneeBrut, $erreur=FALSE) {
$eleve_id = $eleve->getId();
$donnees= array();
$donnees[$eleve_id] = array();
$propel_eleve = EleveQuery::create()->filterById($eleve_id)->findOne();
$eleveNbAbs['demi_journees'] = $propel_eleve->getDemiJourneesAbsence($date_debut, $date_fin)->count();
$eleveNbAbs['retards'] = $propel_eleve->getRetards($date_debut, $date_fin)->count();
if ($eleveNbAbs['demi_journees'] > 0 || $eleveNbAbs['retards'] > 0 ) {
$eleveNbAbs['non_justifiees'] = $propel_eleve->getDemiJourneesNonJustifieesAbsence($date_debut, $date_fin)->count();
$eleveNbAbs['justifiees'] = $eleveNbAbs['demi_journees'] - $eleveNbAbs['non_justifiees'];
$donnees[$eleve_id]['nom'] = $eleve->getNom();
$donnees[$eleve_id]['prenom'] = $eleve->getPrenom();
$donnees[$eleve_id]['classe'] = $eleve->getClasse();
$donnees[$eleve_id]['classe'] = $eleve->getClasseNom();
$donnees[$eleve_id]['nbre_lignes_total'] = 0;
$donnees[$eleve_id]['demi_journees'] = $eleveNbAbs['demi_journees'];
$donnees[$eleve_id]['justifiees'] = $eleveNbAbs['justifiees'];
$donnees[$eleve_id]['non_justifiees'] = $eleveNbAbs['non_justifiees'];
$donnees[$eleve_id]['retards'] = $eleveNbAbs['retards'];
//Récupérer le décompte des traitements pour chaque élève
$totalDemi=0;
foreach ($justifie_col as $justifie) {
// Décompte en données brutes
if ($donneeBrut == TRUE) {
$propel_traitEleve = AbsenceEleveTraitementQuery::create()->filterByAJustificationId($justifie->getid())
->useJTraitementSaisieEleveQuery()
->useAbsenceEleveSaisieQuery()
->filterByEleveId($eleve_id)
->filterByPlageTemps($date_debut,$date_fin )
->endUse()
->endUse() ;
$traiteEleve_col = $propel_traitEleve;
$donnees[$eleve_id]['traitement'][] = $traiteEleve_col->distinct()->count();
} else {
// Décompte en 1/2 journées
$abs_saisie_col_filtrees = $eleve->getAbsenceEleveSaisiesDecompteDemiJournees($date_debut, $date_fin);
$justif_collection = new PropelCollection();
foreach ($abs_saisie_col_filtrees as $saisie) {
foreach ($saisie->getAbsenceEleveTraitements() as $traitement) {
if ($traitement->getAJustificationId() == $justifie->getid()) {
$justif_collection->add($saisie);
}
}
}
require_once(dirname(__FILE__)."/../orm//helpers/AbsencesEleveSaisieHelper.php");
$dm = AbsencesEleveSaisieHelper::compte_demi_journee($justif_collection, $date_debut, $date_fin);
$donnees[$eleve_id]['traitement'][] = $dm->count();
$totalDemi += $dm->count();
}
}
$donnees[$eleve_id]['totalDemi']=$totalDemi;
}
unset ($eleveNbAbs, $traiteEleve_col, $propel_eleve, $propel_traitEleveDemi, $traiteEleveDemi, $traiteEleveDemi_col, $propel_traitEleve);
if ($erreur && isset ($donnees[$eleve_id]['justifiees']) && ($donnees[$eleve_id]['justifiees']==$donnees[$eleve_id]['totalDemi'])) {
$donnees[$eleve_id] = array();
}
return $donnees;
}
示例5: MergeNotification
/**
* Merge une notification avec son modele
*
* @param AbsenceEleveNotification $notification
* @param String $modele chemin du modele tbs
* @return clsTinyButStrong $TBS deroulante des types d'absences
*/
public static function MergeNotification($notification, $modele){
//on charge le modele et on merge les données de l'établissement
$TBS=self::MergeInfosEtab($modele);
$TBS->MergeField('notif_id',$notification->getId());
//on récupère la liste des noms d'eleves
$eleve_col = new PropelCollection();
if ($notification->getAbsenceEleveTraitement() != null) {
foreach ($notification->getAbsenceEleveTraitement()->getAbsenceEleveSaisies() as $saisie) {
$eleve_col->add($saisie->getEleve());
}
}
//merge des saisies pour modèles du type 1.5.3
$TBS->MergeBlock('el_col',$eleve_col);
foreach ($eleve_col as $eleve) {
$saisies_string_col = new PropelCollection();
$saisies_col = AbsenceEleveSaisieQuery::create()->filterByEleveId($eleve->getId())
->useJTraitementSaisieEleveQuery()
->filterByATraitementId($notification->getAbsenceEleveTraitement()->getId())->endUse()
->orderBy("DebutAbs", Criteria::ASC)
->find();
foreach ($saisies_col as $saisie) {
$str = $saisie->getDateDescription();
if($saisie->getGroupeNameAvecClasses()!=''){
$str.= ', cours de '.$saisie->getGroupeNameAvecClasses();
}
$saisies_string_col->append($str);
}
$TBS->MergeBlock('saisies_string_eleve_id_'.$eleve->getId(), $saisies_string_col);
}
$heure_demi_journee = 11;
$minute_demi_journee = 50;
if (getSettingValue("abs2_heure_demi_journee") != null) {
try {
$dt_demi_journee = new DateTime(getSettingValue("abs2_heure_demi_journee"));
$heure_demi_journee = $dt_demi_journee->format('H');
$minute_demi_journee = $dt_demi_journee->format('i');
} catch (Exception $x) {
}
}
$temps_demi_journee = $heure_demi_journee.$minute_demi_journee;
foreach($eleve_col as $eleve) {
$demi_journee_string_col = new PropelCollection();array ();
$abs_col = AbsenceEleveSaisieQuery::create()->filterByEleve($eleve)
->useJTraitementSaisieEleveQuery()
->filterByATraitementId($notification->getAbsenceEleveTraitement()->getId())->endUse()
->orderBy("DebutAbs", Criteria::ASC)
->find();
require_once("helpers/AbsencesEleveSaisieHelper.php");
$demi_j = AbsencesEleveSaisieHelper::compte_demi_journee($abs_col);
foreach($demi_j as $date) {
$str = 'Le ';
$str .= (strftime("%a %d/%m/%Y", $date->format('U')));
if ($date->format('H') < 12) {
$next_date = $demi_j->getNext();
if ($next_date != null && $next_date->format('Y-m-d') == $date->format('Y-m-d')) {
$str .= ' la journée';
} else {
$str .= ' le matin';
//on recule le pointeur car on l'a avancé avec $demi_j->getNext()
$demi_j->getPrevious();
}
} else {
$str .= ' l\'après midi';
}
$demi_journee_string_col->append($str);
}
//var_dump($demi_journee_string_col);die;
//if (count($demi_journee_string_col) == 0) die;
$TBS->MergeBlock('demi_j_string_eleve_id_'.$eleve->getId(), $demi_journee_string_col);
}
if ($notification->getTypeNotification() == AbsenceEleveNotificationPeer::TYPE_NOTIFICATION_COURRIER) {
//on va mettre les champs dans des variables simple
//on fait un petit traitement pour bien formatter ça si on a un ou deux responsables, avec le même nom de famille ou pas.
if ($notification->getAdresse() != null && $notification->getResponsableEleves()->count() == 1) {
$responsable = $notification->getResponsableEleves()->getFirst();
$destinataire = $responsable->getCivilite().' '.strtoupper($responsable->getNom()).' '.strtoupper($responsable->getPrenom());
} elseif ($notification->getAdresse() != null&& $notification->getResponsableEleves()->count() == 2) {
$responsable1 = $notification->getResponsableEleves()->getFirst();
$responsable2 = $notification->getResponsableEleves()->getNext();
if (strtoupper($responsable1->getNom()) == strtoupper($responsable2->getNom())) {
$destinataire = $responsable1->getCivilite().' et '.$responsable2->getCivilite().' '.strtoupper($responsable1->getNom());
} else {
$destinataire = $responsable1->getCivilite().' '.strtoupper($responsable1->getNom());
$destinataire .= ' et '.$responsable2->getCivilite().' '.strtoupper($responsable2->getNom());
}
} else {
$destinataire = '';
//.........这里部分代码省略.........
示例6: PropelCollection
echo '</tr>';
}
echo '</table></br>';
echo '<a dojoType="dijit.form.Button" onclick="location.href=\'generer_notifications_par_lot.php?envoyer_email=true\';" href="generer_notifications_par_lot.php?envoyer_email=true">Envoyer les emails</a>';
echo '<br/><br/>';
}
//
//on affiche les notifications de type courrier
//
$notif_courrier_a_envoyer_col = new PropelCollection();
$notif_courrier_fini = new PropelCollection();
foreach($notifications_col as $notif) {
if ($notif->getTypeNotification() == AbsenceEleveNotificationPeer::TYPE_NOTIFICATION_COURRIER) {
if ($notif->getStatutEnvoi() == AbsenceEleveNotificationPeer::STATUT_ENVOI_ETAT_INITIAL || $notif->getStatutEnvoi() == AbsenceEleveNotificationPeer::STATUT_ENVOI_PRET_A_ENVOYER) {
$notif_courrier_a_envoyer_col->add($notif);
} else {
$notif_courrier_fini->add($notif);
}
}
}
if (!$notif_courrier_fini->isEmpty()) {$notif = new AbsenceEleveNotification();
echo 'Courriers duplicata';
echo '<table id="table_liste_absents" style="border-spacing:0px;">';
//en tete commentaire
echo '</tr>';
echo '<th>id</th>';
echo '<th></th>';
echo '<th></th>';
echo '<th>responsables</th>';
echo '<th>adresse</th>';
示例7: PropelCollection
<?php
$eleve_col = new PropelCollection();
$elevesLogin=array();
$tableNotifications=array();
foreach ($notifications_col as $notification) {
if ($notification->getTypeNotification() != AbsenceEleveNotificationPeer::TYPE_NOTIFICATION_COURRIER) {
continue;
}
if ($notification->getAbsenceEleveTraitement() != null) {
foreach ($notification->getAbsenceEleveTraitement()->getAbsenceEleveSaisies() as $saisie) {
$eleve_col->add ($saisie->getEleve());
if (!isset ($tableNotifications[$saisie->getEleve()->getLogin()]['notif_id_col'])) {
// première fois qu'on trouve un élève
$tableNotifications[$saisie->getEleve()->getLogin()]['notif_id_col'] = new PropelCollection();
$tableNotifications[$saisie->getEleve()->getLogin()]['notif_col'] = new PropelCollection();
$tableNotifications[$saisie->getEleve()->getLogin()]['notif_id']='';
$tableNotifications[$saisie->getEleve()->getLogin()]['eleve'] = new PropelCollection();
$tableNotifications[$saisie->getEleve()->getLogin()]['saisies'] = new PropelCollection();
// On récupère les infos de l'élève
$tableNotifications[$saisie->getEleve()->getLogin()]['getNom'] = $saisie->getEleve()->getNom();
$tableNotifications[$saisie->getEleve()->getLogin()]['getPrenom'] = $saisie->getEleve()->getPrenom();
$tableNotifications[$saisie->getEleve()->getLogin()]['getClasseNomComplet'] = $saisie->getEleve()->getClasseNomComplet();
$tableNotifications[$saisie->getEleve()->getLogin()]['getId'] = $saisie->getEleve()->getId();
$tableNotifications[$saisie->getEleve()->getLogin()]['responsable'] = $notification->getResponsableEleves();
//on va mettre les champs dans des variables simple
//on fait un petit traitement pour bien formatter ça si on a un ou deux responsables, avec le même nom de famille ou pas.
示例8: filterAbsenceEleveSaisiesEnglobantes
/**
*
* filtre une collection de saisie pour ne retenir que les saisies englobante
*
* @return AbsenceEleveLieu
*
*/
public function filterAbsenceEleveSaisiesEnglobantes(PropelCollection $col) {
$result = new PropelCollection();
foreach ($col as $saisie) {
if ($saisie->getEleveId() == $this->getEleveId() &&
$saisie->getDebutAbs(null) <= $this->getDebutAbs(null) &&
$saisie->getFinAbs(null) >= $this->getFinAbs(null)) {
$result->add($saisie);
}
}
return $result;
}