public function afterSave($created, $options = array()) { $this->loadModel('Form.PMFormData'); $sql_field = sprintf(FieldTypes::getSqlTypes($this->data['PMFormField']['field_type']), $this->id); $created = $created || isset($options['forceCreate']) && $options['forceCreate']; $sql = 'ALTER TABLE ' . $this->PMFormData->getTableName() . ($created ? ' ADD ' : ' MODIFY ') . $sql_field; fdebug($sql . "\r\n", 'form_field.log'); $this->query($sql); }
function assertEqual($msg, $sample, $result, $file = '') { if ($sample === $result) { $msg = $msg . ' - OK%s'; } else { $result = var_export($result, true); $sample = var_export($sample, true); $msg = "{$msg} - ERROR!%sResult: `{$result}`%sMust be: `{$sample}`%s"; } if ($file) { fdebug(str_replace('%s', " \r\n", $msg), $file); } else { echo sprintf(str_replace('%s', '<br />', $msg)); } }
public function proxy() { $this->autoRender = false; $this->ProxyUse = $this->loadModel('ProxyUse'); try { $this->ProxyUse->trxBegin(); $this->ProxyUse->query('UPDATE proxy_uses SET active = 0'); $text = 'IP1: ru1.proxik.net порт: 80 IP2: ru2.proxik.net порт: 8080 IP3: ru3.proxik.net порт: 8080 IP4: ru4.proxik.net порт: 8080 IP5: ru5.proxik.net порт: 8080 логин: fyr51412 пароль: Ic6J3kA1c7Ys'; $aProxy = $this->_getProxyInfo($text, 'Site'); $this->ProxyUse->clear(); $this->ProxyUse->saveAll($aProxy); fdebug($aProxy); $text = 'IP1: usa1.proxik.net порт: 80 IP2: usa2.proxik.net порт: 80 IP3: usa3.proxik.net порт: 80 IP4: usa4.proxik.net порт: 80 IP5: usa5.proxik.net порт: 80 логин: fyr51412 пароль: Ic6J3kA1c7Ys'; $aProxy = $this->_getProxyInfo($text, 'Bot'); $this->ProxyUse->clear(); $this->ProxyUse->saveAll($aProxy); fdebug($aProxy); $text = 'IP1: de1.proxik.net порт: 8080 IP2: de2.proxik.net порт: 8080 IP3: de3.proxik.net порт: 8080 IP4: de4.proxik.net порт: 8080 IP5: de5.proxik.net порт: 8888 логин: fyr51412 пароль: Ic6J3kA1c7Ys'; $aProxy = $this->_getProxyInfo($text, 'Bot'); $this->ProxyUse->clear(); $this->ProxyUse->saveAll($aProxy); fdebug($aProxy); $this->ProxyUse->trxCommit(); echo 'SUCCESS'; } catch (Exception $e) { echo 'Error!'; $this->ProxyUse->trxRollback(); echo $e->getMessage(); } }
/** * Calcul la moyenne d'un conteneur * * @param text $login login de l"élève * @param type $id_racine Id racine du conteneur * @param type $id_conteneur Id du conteneur * @see fdebug * @see sous_conteneurs() * @see getSettingValue() * @see number_format() */ function calcule_moyenne($login, $id_racine, $id_conteneur) { fdebug("===================================\n"); fdebug("LANCEMENT DE calcule_moyenne SUR\n"); fdebug("login=$login: id_racine=$id_racine - id_conteneur=$id_conteneur\n"); $total_point = 0; $somme_coef = 0; $exist_dev_fac = ''; // On efface les moyennes de la table $sql="DELETE FROM cn_notes_conteneurs WHERE (login='******' and id_conteneur='$id_conteneur');"; fdebug("$sql\n"); $delete = mysqli_query($GLOBALS["mysqli"], $sql); // Appel des paramètres du conteneur $appel_conteneur = mysqli_query($GLOBALS["mysqli"], "SELECT * FROM cn_conteneurs WHERE id ='$id_conteneur'"); $arrondir = old_mysql_result($appel_conteneur, 0, 'arrondir'); $mode = old_mysql_result($appel_conteneur, 0, 'mode'); $ponderation = old_mysql_result($appel_conteneur, 0, 'ponderation'); fdebug("Conteneur n°$id_conteneur\n"); fdebug("\$arrondir=$arrondir\n"); fdebug("\$mode=$mode\n"); fdebug("\$ponderation=$ponderation\n"); // Détermination des sous-conteneurs à prendre en compte $nom_sous_cont = array(); $id_sous_cont = array(); $coef_sous_cont = array(); $ponderation_sous_cont=array(); $nb_sous_cont = 0; if ($mode==1) { //la moyenne s'effectue sur toutes les notes contenues à la racine ou dans les sous-conteneurs // sans tenir compte des options définies dans cette(ces) boîte(s). // on s'intéresse à tous les conteneurs fils, petit-fils, ... sous_conteneurs($id_conteneur,$nb_sous_cont,$nom_sous_cont,$coef_sous_cont,$id_sous_cont,$display_bulletin_sous_cont,'all',$ponderation_sous_cont); // // On fait la moyenne des devoirs du conteneur et des sous-conteneurs $nb_boucle = $nb_sous_cont+1; $id_cont[0] = $id_conteneur; $i=1; while ($i < $nb_boucle) { $id_cont[$i] = $id_sous_cont[$i-1]; $i++; } } else { //la moyenne s'effectue sur toutes les notes contenues à la racine du conteneur //et sur les moyennes du ou des sous-conteneurs, en tenant compte des options dans ce(s) boîte(s). // On s'intéresse uniquement aux conteneurs fils sous_conteneurs($id_conteneur,$nb_sous_cont,$nom_sous_cont,$coef_sous_cont,$id_sous_cont,$display_bulletin_sous_cont,'',$ponderation_sous_cont); // // on ne fait la moyenne que des devoirs du conteneur $nb_boucle = 1; $id_cont[0] = $id_conteneur; } // // Prise en compte de la pondération // Calcul de l'indice du coefficient à pondérer // if ($ponderation != 0) { $sql="SELECT * FROM cn_devoirs WHERE id_conteneur='$id_conteneur' ORDER BY date,id"; fdebug("$sql\n"); $appel_dev = mysqli_query($GLOBALS["mysqli"], $sql); $nb_dev = mysqli_num_rows($appel_dev); fdebug("\$nb_dev=$nb_dev\n"); $max = 0; $indice_pond = 0; $k = 0; while ($k < $nb_dev) { $id_dev = old_mysql_result($appel_dev, $k, 'id'); $coef[$k] = old_mysql_result($appel_dev, $k, 'coef'); fdebug("\$id_dev=$id_dev : \$coef[$k]=$coef[$k]\n"); $sql="SELECT * FROM cn_notes_devoirs WHERE (login='******' AND id_devoir='$id_dev')"; fdebug("$sql\n"); $note_query = mysqli_query($GLOBALS["mysqli"], $sql); $statut = @old_mysql_result($note_query, 0, "statut"); $note = @old_mysql_result($note_query, 0, "note"); fdebug("\$nb_dev=$nb_dev\n"); if (($statut == '') and ($note!='')) { if (($note > $max) or (($note == $max) and ($coef[$k] > $coef[$indice_pond]))) { $max = $note; $indice_pond = $k; } } $k++; } } if(isset($indice_pond)) { fdebug("\$indice_pond=$indice_pond\n"); fdebug("\$max=$max\n"); } // // Calcul du total des points et de la somme des coefficients // /** * @todo Pour $mode==1, pour les devoirs à Bonus, il faudrait faire la liste de tous les devoirs situés dans le conteneur et les sous-conteneurs triés par date et parcourir ici ces devoirs au lieu de faire une boucle sur la liste des sous-conteneurs (while ($j < $nb_boucle)) */ $j=0; //========================= // AJOUT: boireaus 20080202 $m=0; //========================= while ($j < $nb_boucle) { //========================= // MODIF: boireaus 20080202 $sql="SELECT * FROM cn_devoirs WHERE id_conteneur='$id_cont[$j]' ORDER BY date,id"; fdebug("$sql\n"); $appel_dev = mysqli_query($GLOBALS["mysqli"], $sql); //========================= $nb_dev = mysqli_num_rows($appel_dev); $k = 0; while ($k < $nb_dev) { $id_dev = old_mysql_result($appel_dev, $k, 'id'); fdebug("\n\$id_dev=$id_dev\n"); $coef[$k] = old_mysql_result($appel_dev, $k, 'coef'); fdebug("\$coef[$k]=$coef[$k]\n"); $note_sur[$k] = old_mysql_result($appel_dev, $k, 'note_sur'); fdebug("\$note_sur[$k]=$note_sur[$k]\n"); $ramener_sur_referentiel[$k] = old_mysql_result($appel_dev, $k, 'ramener_sur_referentiel'); fdebug("\$ramener_sur_referentiel[$k]=$ramener_sur_referentiel[$k]\n"); // Prise en compte de la pondération if (($ponderation != 0) and ($j==0) and ($k==$indice_pond)) $coef[$k] = $coef[$k] + $ponderation; fdebug("\$ponderation=$ponderation\n"); $facultatif[$k] = old_mysql_result($appel_dev, $k, 'facultatif'); fdebug("\$facultatif[$k]=$facultatif[$k]\n"); $note_query = mysqli_query($GLOBALS["mysqli"], "SELECT * FROM cn_notes_devoirs WHERE (login='******' AND id_devoir='$id_dev')"); $statut = @old_mysql_result($note_query, 0, "statut"); fdebug("\$statut=$statut\n"); $note = @old_mysql_result($note_query, 0, "note"); fdebug("\$note=$note\n"); if (($statut == '') and ($note!='')) { if ($note_sur[$k] != getSettingValue("referentiel_note")) { if ($ramener_sur_referentiel[$k] != 'V') { //on ramene la note sur le referentiel mais on modifie le coefficient pour prendre en compte le référentiel $note = $note * getSettingValue("referentiel_note") / $note_sur[$k]; $coef[$k] = $coef[$k] * $note_sur[$k] / getSettingValue("referentiel_note"); } else { //on fait comme si c'était une note sur le referentiel avec une regle de trois ;) $note = $note * getSettingValue("referentiel_note") / $note_sur[$k]; } } fdebug("Correction note autre que sur referentiel : \$note=$note\n"); fdebug("Correction note autre que sur referentiel : \$coef[$k]=$coef[$k]\n"); if ($facultatif[$k] == 'O') { // le devoir n'est pas facultatif (Obligatoire) et entre systématiquement dans le calcul de la moyenne si le coef est différent de zéro fdebug("\$total_point = $total_point + $coef[$k] * $note = "); $total_point = $total_point + $coef[$k]*$note; fdebug("$total_point\n"); fdebug("\$somme_coef = $somme_coef + $coef[$k] = "); $somme_coef = $somme_coef + $coef[$k]; fdebug("$somme_coef\n"); } else if ($facultatif[$k] == 'B') { //le devoir est facultatif comme un bonus : seuls les points supérieurs à 10 sont pris en compte dans le calcul de la moyenne. if ($note > ($note_sur[$k]/2)) { $total_point = $total_point + $coef[$k]*$note; $somme_coef = $somme_coef + $coef[$k]; } } else { //$facultatif == 'N' le devoir est facultatif comme une note : Le devoir est pris en compte dans la moyenne uniquement s'il améliore la moyenne de l'élève. $exist_dev_fac = 'yes'; //========================= // MODIF: boireaus 20080202 // On ne compte pas la note dans la moyenne pour le moment. // On regardera plus loin si cela améliore la moyenne ou non. $f_coef[$m]=$coef[$k]; $points[$m] = $f_coef[$m]*$note; fdebug("\$points[$m]=$points[$m]\n"); fdebug("\$f_coef[$m]=$f_coef[$m]\n"); $m++; //========================= } fdebug("\$total_point=$total_point\n"); fdebug("\$somme_coef=$somme_coef\n"); } $k++; } $j++; } // // Prise en comptes des sous-conteneurs si mode=2 // if ($mode == 2) { fdebug("\$mode=$mode\n"); $j=0; while ($j < $nb_sous_cont) { $sql="SELECT coef FROM cn_conteneurs WHERE id='$id_sous_cont[$j]'"; fdebug("$sql\n"); $appel_cont = mysqli_query($GLOBALS["mysqli"], $sql); $coefficient = old_mysql_result($appel_cont, 0, 'coef'); fdebug("\$coefficient=$coefficient\n"); $sql="SELECT * FROM cn_notes_conteneurs WHERE (login='******' AND id_conteneur='$id_sous_cont[$j]')"; fdebug("$sql\n"); $moyenne_query = mysqli_query($GLOBALS["mysqli"], $sql); $statut_moy = @old_mysql_result($moyenne_query, 0, "statut"); fdebug("\$statut_moy=$statut_moy\n"); if ($statut_moy == 'y') { $moy = @old_mysql_result($moyenne_query, 0, "note"); fdebug("\$moy=$moy\n"); fdebug("\$somme_coef = $somme_coef + $coefficient = "); $somme_coef = $somme_coef + $coefficient; fdebug("$somme_coef\n"); fdebug("\$total_point = $total_point + $coefficient * $moy = "); $total_point = $total_point + $coefficient*$moy; fdebug("$total_point\n"); } $j++; } } // // calcul de la moyenne des évaluations // //========================= // A FAIRE: boireaus 20080202 /** * @todo Il faudrait considérer le cas vicieux: présence de note à bonus et pas d'autre note... */ if ($somme_coef != 0) { //========================= fdebug("\$moyenne= = $total_point / $somme_coef = "); $moyenne = $total_point/$somme_coef; fdebug($moyenne."\n"); // // si un des devoirs a l'option "N", on prend la meilleure moyenne : // // Ca ne fonctionne bien que pour $mode==2 /** * @todo Pour $mode==1, il faudrait faire la liste de tous les devoirs situés dans le conteneur et les sous-conteneurs triés par date et parcourir ces devoirs plus haut au lieu de faire une boucle sur la liste des sous-conteneurs */ if ($exist_dev_fac == 'yes') { fdebug("\$exist_dev_fac=".$exist_dev_fac."\n"); $m=0; while ($m<count($points)) { fdebug("count(\$points)=".count($points)."\n"); if((isset($points[$m]))&&(isset($f_coef[$m]))) { fdebug("\$points[$m]=$points[$m] et \$f_coef[$m]=$f_coef[$m]\n"); $tmp_moy=($total_point+$points[$m])/($somme_coef+$f_coef[$m]); fdebug("\$tmp_moy=$tmp_moy et \$moyenne=$moyenne\n"); if($tmp_moy>$moyenne){ $moyenne=$tmp_moy; $total_point=$total_point+$points[$m]; $somme_coef=$somme_coef+$f_coef[$m]; } fdebug("\$moyenne=$moyenne\n"); } $m++; } } fdebug("Moyenne avant arrondi: $moyenne\n"); // // Calcul des arrondis // if ($arrondir == 's1') { // s1 : arrondir au dixième de point supérieur fdebug("Mode s1: \$moyenne=$moyenne 10*\$moyenne=".(10*$moyenne)." ceil(10*\$moyenne)=".ceil(10*$moyenne)." ceil(10*\$moyenne)/10=".(ceil(10*$moyenne)/10)." number_format(ceil(10*\$moyenne)/10,1,'.','')=".number_format(ceil(10*$moyenne)/10,1,'.','')." number_format(ceil(100*\$moyenne)/100,1,'.','')=".number_format(ceil(100*$moyenne)/100,1,'.','')."\n"); //$moyenne = number_format(ceil(10*$moyenne)/10,1,'.',''); $moyenne = number_format(ceil(strval(10*$moyenne))/10,1,'.',''); } else if ($arrondir == 's5') { // s5 : arrondir au demi-point supérieur $moyenne = number_format(ceil(strval(2*$moyenne))/2,1,'.',''); } else if ($arrondir == 'se') { // se : arrondir au point entier supérieur $moyenne = number_format(ceil(strval($moyenne)),1,'.',''); } else if ($arrondir == 'p1') { // s1 : arrondir au dixième le plus proche $moyenne = number_format(round(strval(10*$moyenne))/10,1,'.',''); } else if ($arrondir == 'p5') { // s5 : arrondir au demi-point le plus proche $moyenne = number_format(round(strval(2*$moyenne))/2,1,'.',''); } else if ($arrondir == 'pe') { // se : arrondir au point entier le plus proche $moyenne = number_format(round(strval($moyenne)),1,'.',''); } $sql="INSERT INTO cn_notes_conteneurs SET login='******', id_conteneur='$id_conteneur',note='$moyenne',statut='y',comment='';"; fdebug("$sql\n"); $register = mysqli_query($GLOBALS["mysqli"], $sql); } else { $sql="INSERT INTO cn_notes_conteneurs SET login='******', id_conteneur='$id_conteneur',note='0',statut='',comment='';"; fdebug("$sql\n"); $register = mysqli_query($GLOBALS["mysqli"], $sql); } }
public function paginate($modelName, $filter = array()) { $this->model = $this->_->{$modelName}; $this->_initFields(); $this->_initDefaults(); fdebug($this->paginate); $this->_->paginate[$modelName] = $this->paginate; $aRowset = $this->_->paginate($modelName, $this->getFilter()); $this->_->paginate[$modelName]['_rowset'] = $aRowset; $this->_->set('_paginate', $this->_->paginate); return $aRowset; }