579 |
WHERE instructeur.om_utilisateur='".$utilisateur["om_utilisateur"]."'"; |
WHERE instructeur.om_utilisateur='".$utilisateur["om_utilisateur"]."'"; |
580 |
$res = $this->db->query($sql); |
$res = $this->db->query($sql); |
581 |
$this->addToLog( |
$this->addToLog( |
582 |
"triggerAfterLogin(): db->query(\"".$sql."\");", |
__METHOD__."(): db->query(\"".$sql."\");", |
583 |
VERBOSE_MODE |
VERBOSE_MODE |
584 |
); |
); |
585 |
if (database::isError($res)) { |
if (database::isError($res)) { |
603 |
ORDER BY libelle"; |
ORDER BY libelle"; |
604 |
$resGroupes = $this->db->query($sqlGroupes); |
$resGroupes = $this->db->query($sqlGroupes); |
605 |
$this->addToLog( |
$this->addToLog( |
606 |
"triggerAfterLogin(): db->query(\"".$sqlGroupes."\");", |
__METHOD__."(): db->query(\"".$sqlGroupes."\");", |
607 |
VERBOSE_MODE |
VERBOSE_MODE |
608 |
); |
); |
609 |
if (database::isError($resGroupes)) { |
if (database::isError($resGroupes)) { |
619 |
ORDER BY libelle"; |
ORDER BY libelle"; |
620 |
$resGroupes = $this->db->query($sqlGroupes); |
$resGroupes = $this->db->query($sqlGroupes); |
621 |
$this->addToLog( |
$this->addToLog( |
622 |
"triggerAfterLogin(): db->query(\"".$sqlGroupes."\");", |
__METHOD__."(): db->query(\"".$sqlGroupes."\");", |
623 |
VERBOSE_MODE |
VERBOSE_MODE |
624 |
); |
); |
625 |
if (database::isError($resGroupes)) { |
if (database::isError($resGroupes)) { |
711 |
|
|
712 |
/** |
/** |
713 |
* Formate le champ pour le type Timestamp |
* Formate le champ pour le type Timestamp |
714 |
* @param date $date_str Date |
* @param date $date_str Date |
715 |
* @param boolean $show Format pour l'affichage |
* @param boolean $show Format pour l'affichage |
716 |
* @return mixed False si le traitement échoue ou la date formatée |
* @return mixed False si le traitement échoue ou la date formatée |
717 |
*/ |
*/ |
718 |
function formatTimestamp ($date_str, $show = true) { |
function formatTimestamp ($date_str, $show = true) { |
719 |
|
|
725 |
|
|
726 |
// Date en BDD |
// Date en BDD |
727 |
$date_db = explode ('-', $date[0]); |
$date_db = explode ('-', $date[0]); |
728 |
// Date en affichage |
// Date en affichage |
729 |
$date_show = explode ('/', $date[0]); |
$date_show = explode ('/', $date[0]); |
730 |
|
|
731 |
// Contrôle la composition de la date |
// Contrôle la composition de la date |
1142 |
unset($valF['message']); |
unset($valF['message']); |
1143 |
} |
} |
1144 |
// Ajoute le duplicata |
// Ajoute le duplicata |
1145 |
$clone_obj->ajouter($valF, $this->db, DEBUG); |
$clone_obj->ajouter($valF); |
1146 |
// Si aucune erreur se produit dans la classe instanciée |
// Si aucune erreur se produit dans la classe instanciée |
1147 |
if ($clone_obj->correct === true) { |
if ($clone_obj->correct === true) { |
1148 |
// Récupère l'identifiant de l'objet créé |
// Récupère l'identifiant de l'objet créé |
1206 |
unset($valF['message']); |
unset($valF['message']); |
1207 |
} |
} |
1208 |
// Ajoute le duplicata |
// Ajoute le duplicata |
1209 |
$clone_objsf->ajouter($valF, $this->db, DEBUG); |
$clone_objsf->ajouter($valF); |
1210 |
// Si aucune erreur se produit dans la classe instanciée |
// Si aucune erreur se produit dans la classe instanciée |
1211 |
if ($clone_objsf->correct === true) { |
if ($clone_objsf->correct === true) { |
1212 |
// Récupère l'identifiant de l'objet créé |
// Récupère l'identifiant de l'objet créé |
1770 |
} |
} |
1771 |
|
|
1772 |
/** |
/** |
1773 |
|
* Vérifie que l'option de saisie du numéro de dossier est activée. |
1774 |
|
* |
1775 |
|
* @param integer $om_collectivite Identifiant de la collectivité. |
1776 |
|
* |
1777 |
|
* @return boolean |
1778 |
|
*/ |
1779 |
|
public function is_option_dossier_saisie_numero_enabled($om_collectivite=null) { |
1780 |
|
// |
1781 |
|
$parameters = $this->getCollectivite($om_collectivite); |
1782 |
|
// |
1783 |
|
if (isset($parameters['option_dossier_saisie_numero']) === true |
1784 |
|
&& $parameters['option_dossier_saisie_numero'] === 'true') { |
1785 |
|
// |
1786 |
|
return true; |
1787 |
|
} |
1788 |
|
|
1789 |
|
// |
1790 |
|
return false; |
1791 |
|
} |
1792 |
|
|
1793 |
|
/** |
1794 |
|
* Vérifie que l'option de récupération de la division de l'instructeur |
1795 |
|
* affecté pour la numérotation des dossiers est activée. |
1796 |
|
* |
1797 |
|
* @param integer $om_collectivite Identifiant de la collectivité. |
1798 |
|
* |
1799 |
|
* @return boolean |
1800 |
|
*/ |
1801 |
|
public function is_option_instructeur_division_numero_dossier_enabled($om_collectivite=null) { |
1802 |
|
// |
1803 |
|
$parameters = $this->getCollectivite($om_collectivite); |
1804 |
|
// |
1805 |
|
if (isset($parameters['option_instructeur_division_numero_dossier']) === true |
1806 |
|
&& $parameters['option_instructeur_division_numero_dossier'] === 'true') { |
1807 |
|
// |
1808 |
|
return true; |
1809 |
|
} |
1810 |
|
|
1811 |
|
// |
1812 |
|
return false; |
1813 |
|
} |
1814 |
|
|
1815 |
|
/** |
1816 |
* Vérifie le niveau de la collectivité de l'utilisateur connecté |
* Vérifie le niveau de la collectivité de l'utilisateur connecté |
1817 |
* |
* |
1818 |
* @return boolean |
* @return boolean |
2241 |
$footer[] = array( |
$footer[] = array( |
2242 |
"title" => __("Documentation"), |
"title" => __("Documentation"), |
2243 |
"description" => __("Acceder a l'espace documentation de l'application"), |
"description" => __("Acceder a l'espace documentation de l'application"), |
2244 |
"href" => "http://docs.openmairie.org/?project=openads&version=4.11&format=html&path=manuel_utilisateur", |
"href" => "http://docs.openmairie.org/?project=openads&version=4.12&format=html&path=manuel_utilisateur", |
2245 |
"target" => "_blank", |
"target" => "_blank", |
2246 |
"class" => "footer-documentation", |
"class" => "footer-documentation", |
2247 |
); |
); |
2996 |
$links[] = array( |
$links[] = array( |
2997 |
"href" => "".OM_ROUTE_FORM."&obj=instruction_suivi_envoi_lettre_rar&action=160&idx=0", |
"href" => "".OM_ROUTE_FORM."&obj=instruction_suivi_envoi_lettre_rar&action=160&idx=0", |
2998 |
"class" => "envoi_lettre_rar", |
"class" => "envoi_lettre_rar", |
2999 |
"title" => _("envoi lettre RAR"), |
"title" => _("envoi lettre AR"), |
3000 |
"right" => array("instruction_suivi_envoi_lettre_rar", "instruction_suivi_envoi_lettre_rar_consulter", ), |
"right" => array("instruction_suivi_envoi_lettre_rar", "instruction_suivi_envoi_lettre_rar_consulter", ), |
3001 |
"open" => array("index.php|instruction_suivi_envoi_lettre_rar[module=tab]", "index.php|instruction_suivi_envoi_lettre_rar[module=form]"), |
"open" => array("index.php|instruction_suivi_envoi_lettre_rar[module=tab]", "index.php|instruction_suivi_envoi_lettre_rar[module=form]"), |
3002 |
); |
); |
4119 |
* @param string $query Requête SQL |
* @param string $query Requête SQL |
4120 |
* @param boolean $force_return Force le retour d'un boolean en cas d'erreur |
* @param boolean $force_return Force le retour d'un boolean en cas d'erreur |
4121 |
* |
* |
4122 |
* @return mixed |
* @return array |
4123 |
*/ |
*/ |
4124 |
function get_all_results_from_db_query($query = "", $force_return = false) { |
function get_all_results_from_db_query($query = "", $force_return = false) { |
4125 |
$res = $this->db->query($query); |
$res = $this->db->query($query); |
4144 |
$res->free(); |
$res->free(); |
4145 |
return $result; |
return $result; |
4146 |
} |
} |
|
} |
|
4147 |
|
|
4148 |
|
/** |
4149 |
|
* Récupère un résultat d'une requête SQL. |
4150 |
|
* |
4151 |
|
* @param string $query Requête SQL |
4152 |
|
* @param boolean $force_return Force le retour d'un boolean en cas d'erreur |
4153 |
|
* |
4154 |
|
* @return array |
4155 |
|
*/ |
4156 |
|
function get_one_result_from_db_query($query = "", $force_return = false) { |
4157 |
|
$res = $this->db->getone($query); |
4158 |
|
$this->addToLog( |
4159 |
|
__METHOD__."(): db->getone(\"".$query."\");", |
4160 |
|
VERBOSE_MODE |
4161 |
|
); |
4162 |
|
$result = array( |
4163 |
|
'code' => '', |
4164 |
|
'message' => '', |
4165 |
|
'result' => array(), |
4166 |
|
); |
4167 |
|
if ($this->isDatabaseError($res, $force_return) !== false) { |
4168 |
|
$result['code'] = 'KO'; |
4169 |
|
$result['message'] = __("Erreur de base de donnees. Contactez votre administrateur."); |
4170 |
|
return $result; |
4171 |
|
} |
4172 |
|
$result['code'] = 'OK'; |
4173 |
|
$result['result'] = $res; |
4174 |
|
return $result; |
4175 |
|
} |
4176 |
|
|
4177 |
|
/** |
4178 |
|
* Instanciation de la classe 'edition'. |
4179 |
|
* (surcharge de la fonction pour ajouter la prise en compte |
4180 |
|
* de la surcharge locale de la classe om_edition). |
4181 |
|
* |
4182 |
|
* @param array $args Arguments à passer au constructeur. |
4183 |
|
* @return edition |
4184 |
|
*/ |
4185 |
|
function get_inst__om_edition($args = array()) { |
4186 |
|
if (file_exists("../obj/om_edition.class.php")) { |
4187 |
|
require_once "../obj/om_edition.class.php"; |
4188 |
|
$class_name = "om_edition"; |
4189 |
|
} else { |
4190 |
|
require_once PATH_OPENMAIRIE."om_edition.class.php"; |
4191 |
|
$class_name = "edition"; |
4192 |
|
} |
4193 |
|
return new $class_name(); |
4194 |
|
} |
4195 |
|
|
4196 |
|
/** |
4197 |
|
* Permet d'enregistrer un fichier dans la table 'storage'. |
4198 |
|
* |
4199 |
|
* @return mixed Identifiant du fichier dans la table storage ou false. |
4200 |
|
*/ |
4201 |
|
function store_file($filecontent, $filemetadata, $type, $info = null, $collectivite = null) { |
4202 |
|
if ($collectivite === null) { |
4203 |
|
$get_collectivite = $this->getCollectivite(); |
4204 |
|
$collectivite = $get_collectivite['om_collectivite_idx']; |
4205 |
|
} |
4206 |
|
$uid = $this->storage->create($filecontent, $filemetadata); |
4207 |
|
if ($uid == 'OP_FAILURE') { |
4208 |
|
return false; |
4209 |
|
} |
4210 |
|
$inst_storage = $this->get_inst__om_dbform(array( |
4211 |
|
"obj" => "storage", |
4212 |
|
"idx" => "]", |
4213 |
|
)); |
4214 |
|
$val = array( |
4215 |
|
"storage" => '', |
4216 |
|
"file" => "NEW", |
4217 |
|
"creation_date" => date("Y-m-d"), |
4218 |
|
"creation_time" => date("G:i:s"), |
4219 |
|
"uid" => $uid, |
4220 |
|
"filename" => $filemetadata["filename"], |
4221 |
|
"size" => $filemetadata["size"], |
4222 |
|
"mimetype" => $filemetadata["mimetype"], |
4223 |
|
"type" => $type, |
4224 |
|
"info" => $info, |
4225 |
|
"om_collectivite" => $collectivite, |
4226 |
|
); |
4227 |
|
$ret = $inst_storage->ajouter($val); |
4228 |
|
if ($ret !== true) { |
4229 |
|
return false; |
4230 |
|
} |
4231 |
|
// Récupère l'identifiant dans le storage |
4232 |
|
$id = $inst_storage->get_storage_id_by_uid($uid); |
4233 |
|
// |
4234 |
|
return $id; |
4235 |
|
} |
4236 |
|
|
4237 |
|
/** |
4238 |
|
* Surcharge de la fonction d'affichage pour ajouter |
4239 |
|
* un détecteur de bloqueur de pub (cassant l'application). |
4240 |
|
* |
4241 |
|
* @return void |
4242 |
|
*/ |
4243 |
|
function displayHTMLFooter() { |
4244 |
|
parent::displayHTMLFooter(); |
4245 |
|
if (in_array($this->flag, array("nohtml", "login", "logout", "anonym")) !== true) { |
4246 |
|
$this->ad_blocker_detector(); |
4247 |
|
} |
4248 |
|
} |
4249 |
|
|
4250 |
|
/** |
4251 |
|
* Affiche un bloc de code Javascript |
4252 |
|
* responsable de détecter les bloqueurs de pub |
4253 |
|
* et d'afficher un message le cas échéant. |
4254 |
|
*/ |
4255 |
|
protected function ad_blocker_detector() { |
4256 |
|
|
4257 |
|
printf( |
4258 |
|
'<script type="text/javascript"> |
4259 |
|
var blocked = []; |
4260 |
|
// jquery has not loaded |
4261 |
|
if(typeof($) == "undefined" && typeof(jQuery) == "undefined") { |
4262 |
|
blocked.push("jquery"); |
4263 |
|
} |
4264 |
|
// tinyMCE has not loaded |
4265 |
|
if(typeof(tinyMCE) == "undefined") { |
4266 |
|
blocked.push("tinyMCE"); |
4267 |
|
} |
4268 |
|
// locale has not loaded |
4269 |
|
if(typeof(locale) == "undefined") { |
4270 |
|
blocked.push("locale"); |
4271 |
|
} |
4272 |
|
// om_layout has not loaded |
4273 |
|
if(typeof(om_initialize_content) == "undefined") { |
4274 |
|
blocked.push("om_layout"); |
4275 |
|
} |
4276 |
|
// app script has not loaded |
4277 |
|
if(typeof(app_script_t4Fv4a59uSU7MwpJ59Qp) == "undefined") { |
4278 |
|
blocked.push("app_script"); |
4279 |
|
} |
4280 |
|
|
4281 |
|
// something was blocked |
4282 |
|
if(blocked.length > 0) { |
4283 |
|
|
4284 |
|
// removing every node in the body |
4285 |
|
while(document.body.firstChild) { document.body.removeChild(document.body.firstChild); } |
4286 |
|
|
4287 |
|
// creating the message (node) and its style |
4288 |
|
var msgNode = document.createElement("p"); |
4289 |
|
msgNode.id = "adblocker-detected"; |
4290 |
|
msgNode.style.position = "relative"; |
4291 |
|
msgNode.style.width = "calc(100%% - 60px)"; |
4292 |
|
msgNode.style.margin = "20px auto"; |
4293 |
|
msgNode.style.padding = "20px"; |
4294 |
|
msgNode.style.background = "#FEF8F6"; |
4295 |
|
msgNode.style.color = "#cd0a0a"; |
4296 |
|
msgNode.style.border = "1px solid #cd0a0a"; |
4297 |
|
msgNode.style.borderRadius = "4px"; |
4298 |
|
msgNode.innerHTML = "%s"; |
4299 |
|
|
4300 |
|
// appending the message (node) to the body |
4301 |
|
document.body.insertBefore(msgNode, document.body.firstChild); |
4302 |
|
} |
4303 |
|
</script>', |
4304 |
|
sprintf( |
4305 |
|
'<span>%s</span><br/><br/><span>%s</span><br/><br/><span>%s</span>', |
4306 |
|
__("Un bloqueur de publicité a été détecté, et ceci empêche l'application de fonctionner normalement."), |
4307 |
|
__("Afin de rétablir le bon fonctionnement, il vous est nécessaire d'ajouter l'application à la liste blanche des applications autorisées (<small>pour cela, référez-vous à la documentation de votre extension bloqueuse de publicité</small>)."), |
4308 |
|
__("<em>Pour information, ceci ce produit parce que l'application se nomme openADS, or les bloqueurs de publicité ont tendance à bloquer tout ce qui contient la chaîne de caractères 'ads' (<small>publicité</small> en anglais) comme c'est le cas dans le nom open<strong>ADS</strong>.</em>") |
4309 |
|
) |
4310 |
|
); |
4311 |
|
} |
4312 |
|
|
4313 |
|
} |