function adminUpdateViewsRules($dbConnection, $supportMemberStateID, $userGroupID, $arrayViewsRules, $arrayViewsRulesLabels, $arrayViewsRulesKeys) { récupérer le contenu du fichier DetailsAowAccess.php initier une variable de position de début à 0 une variable de position de fin de la longueur du fichier pour chaque ligne de contenu du fichier DetailsAowAccess { trouver la position de "$ARRAY_VIEWS_RULES" si la position est supérieure à 0 { le début de la partie à récupérer du fichier DetailsAowAccess sera le numéro de cette ligne sortir de la boucle } } extraire de DetailsAowAccess la partie correspondant à ARRAY_VIEWS_RULES créer une variable array qui va contenir tous les profils qui existent dans ARRAY_VIEWS_RULES pour chaque ligne dans le tableau ARRAY_VIEWS_RULES recupéré { recupérer dans la variable array, toutes les chaines designant le début d'une partie correspondant à un profil grâce à "\d{1,2}\s?=>\s?array\(" } ajouter ");" à ce tableau pour chaque ligne dans le tableau ARRAY_VIEWS_RULES recupéré { trouver la position de "$userGroupID => array(" si la position est supérieure à 0 { le début de la partie correspondant au profil à modifier sera le numéro de cette ligne trouver la position de $userGroupID dans la variable tableau trouver l'index de "$userGroupID => array(" dans la variable tableau sortir de la boucle } } le profil suivant commence a index +1 pour chaque ligne dans le tableau ARRAY_VIEWS_RULES recupéré { trouver la position du profil suivant si la position est supérieure à 0 { la fin de la partie du tableau ARRAY_VIEWS_RULES formant le profil à modifier sera à ce numéro de ligne -1 sortir de la boucle } } récupérer du tableau ARRAY_VIEWS_RULES, cette partie de code correspondant au profil à modifier créer une variable tableau qui contiendra la partie modifiée du code du profil en question et qui remplacera la partie extraite précédemment récupérer les nom des champs à afficher depuis l'IHM en utilisant la variable POST si la valeur récuperée depuis l'ihm, du paramètre search mode est "normal" { modifier les paramétres en recupérant les valeurs de l'ihm pour SupportMemberID, AuthorSupportMemberID et ProjectID, recuperer les valeurs du tableau précédant, à remplacer si SupportMemberID, AuthorSupportMemberID ou ProjectID existent dans les paramètres à modifier { pour chaque ligne du tableau { récupérer la position de SupportMemberID si la position de SupportMemberID est supérieure à 0 { contenir la valeur de SupportMemberID obtenue grace a l'expression reguliere:/\bSupportMemberID"\s?=>\s?\K([^\n\r,]*)/g dans une variable ajouter cette variable a la variable de construction de la partie du profil a modifier sortir de la boucle } } pour chaque ligne du tableau { récupérer la position de AuthorSupportMemberID si la position de AuthorSupportMemberID est supérieure à 0 { contenir la valeur de AuthorSupportMemberID obtenue grâce à l'expression regulière:/\bAuthorSupportMemberID"\s?=>\s?\K([^\n\r,]*)/g dans une variable ajouter cette variable à la variable de construction de la partie du profil à modifier sortir de la boucle } } pour chaque ligne du tableau { récupérer la position de ProjectID si la position de SupportMemberID est supérieure à 0 { contenir la valeur de ProjectID obtenue grace a l'expression regulière:/\bProjectID"\s?=>\s?\K([^\n\r,]*)/ dans une variable ajouter cette variable a la variable de construction de la partie du profil a modifier sortir de la boucle } } } }sinon { récupérer les paramètres presents dans la partie à modifier en utilisant 2 expressions regulières une pour trouver le début de du tableau des paramètres "Params => array(" l'autre pour trouver la fin "SearchMode =>" -1 } mettre les resultats dans la variable de construction de la nouvelle partie récupérer en variable POST la valeur de status mode depuis l'IHM, à concaténer avec la variable de construction récupérer en variable POST la valeur de search mode depuis l'IHM, à concaténer avec la variable de construction si elle existe récupérer la valeur de order by et la concaténer avec la variable de construction fermer le tableau construit et concaténer avec la variable de construction remplacer l'ancienne partie par la nouvelle dans toutes la partie contenant le tableay ARRAY_VIEWS_RULES remplacer ARRAY_VIEWS_RULES dans DetailsAowAccess par le nouveau retourner un booléen qui vérifie si le contenu a bien été modifié }