Editeur Editez un fichier

Edition d'un fichier

Editez le fichier applications/nuasix/entite-single.php
<?php 
//_________________________________________________________________________________
//Récupération de l'entité
$reqOwnEntite           = getQueries("nx_entites LEFT JOIN nx_users ON nx_entites.user_id = nx_users.idUser", 
                                     array("idEntite" => encrypt_decrypt("decrypt", rawurldecode($_GET['element']), $key_user, $iv_user)));
if(!$reqOwnEntite['count'])
redirect("index.php?page_slug=entites");
$entiteInfo             = $reqOwnEntite['result'][0];
//_________________________________________________________________________________
//_________________________________________________________________________________
//Téléchargement de tous les utiisateurs 
$reqAllUsers            = getQueries('nx_users');
$allItems               = $reqAllUsers['result'];

//Tous les utilisateurs que l'entité affiché possède actuellement
$reqUsers               = getQueries('nx_users LEFT JOIN nx_entites_as_users ON nx_users.idUser = nx_entites_as_users.user_id', 
                               array('nx_entites_as_users.entite_id' => $entiteInfo['idEntite']));
$itemsOwns              = $reqUsers['result'];
//Préparation de l'array des items non acquis
//Petit modification de format pour l'array des items acquis
$arrayEarnedItems       = array();
foreach($itemsOwns as $itemInfo) {
    $arrayEarnedItems[$itemInfo['idUser']] = encrypt_decrypt("decrypt", $itemInfo['user_firstname'], $key_user, $iv_user);
}

//Pareil pour l'array de toutes les items 
$arrayAllItems          = array();
foreach($allItems as $itemInfo) {
    $arrayAllItems[$itemInfo['idUser']] = encrypt_decrypt("decrypt", $itemInfo['user_firstname'], $key_user, $iv_user);
}

//Item non acquis = tous les items - items acquis
foreach($arrayAllItems as $key => $value) {
    if(keyExist($key, $arrayEarnedItems)) {
        //l'id de l'item se trouve déjà dans l'array des items acquis, on supprime donc cet index
        unset($arrayAllItems[$key]);
    }
}
//_________________________________________________________________________________
//_________________________________________________________________________________
//Mise à jour de l'entité 
if(isset($_POST['update-entite'])) {
    
    $form       = array('entite_name'           => htmlspecialchars($_POST['entite_name']), 
                        'user_id'               => $user -> getUserId());
    $selector   = array('idEntite' => $entiteInfo['idEntite']);
    
    $flag       = dbRowUpdate2("nx_entites", $form, $selector);
    
    if($flag) {
        itsLog(array('log_table'        => "nx_entites",
                     'log_operation'    => "Mise à jour de l'entité", 
                     'log_request'      => json_encode($form),
                     'log_response'     => json_encode($flag),
                     'log_selector'     => json_encode($selector),
                     'log_color'        => "success", 
                     'log_display'      => 1,
                     'log_timeout'      => 5000,
                     'id_log'           => $entiteInfo['idEntite'], 
                     'user_id'          => $user -> getUserId()
        ));
    } else {
        itsLog(array('log_table'        => "nx_entites",
                     'log_operation'    => "Erreur durant la mise à jour de l'entité", 
                     'log_request'      => json_encode($form),
                     'log_response'     => json_encode($flag),
                     'log_selector'     => json_encode($selector),
                     'log_color'        => "danger", 
                     'log_display'      => 1,
                     'log_timeout'      => 5000, 
                     'id_log'           => $entiteInfo['idEntite'], 
                     'user_id'          => $user -> getUserId()
        ));
    }
    
    //Refresh
    redirect($_SERVER['REQUEST_URI']);
}
//_________________________________________________________________________________
//_________________________________________________________________________________
if(isset($_POST['update-users'])) {
    //init variables
    $items          = $_POST['items'];
        
    if($items == null || empty($items)) {
        $items = array();
    }

    //Reconfiguration des items

    //On supprime tous les utilisateurs de l'entité selon l'id de l'entité
    dbRowDelete('nx_entites_as_users', 'entite_id = "'.$entiteInfo['idEntite'].'"');

    //On insère tous les nouveaux items 
    foreach($items as $item) {
        $formData = array('user_id' => $item, 'entite_id' => $entiteInfo['idEntite']);
        dbRowInsert2('nx_entites_as_users', $formData);
    }

    //Refresh
    redirect($_SERVER['REQUEST_URI']);
}
//_________________________________________________________________________________
?>                    
                    <div class="content d-flex flex-column flex-column-fluid" id="kt_content">
						<!--begin::Container-->
						<div class="container-xxl" id="kt_content_container">
							<!--begin::Layout-->
							<div class="d-flex flex-column flex-xl-row">
								<!--begin::Sidebar-->
								<div class="flex-column flex-lg-row-auto w-100 w-xl-350px mb-10">
									<!--begin::Card-->
									<div class="card mb-5 mb-xl-8">
										<!--begin::Card body-->
										<div class="card-body">
											<!--begin::Summary-->
											<!--begin::User Info-->
											<div class="d-flex flex-center flex-column py-5">
												<!--begin::Name-->
                                                <span class="fs-3 text-gray-800 fw-bolder mb-3"><?= encrypt_decrypt("decrypt", $userInfo['user_firstname'], $key_user, $iv_user)?></span>
												<!--end::Name-->
											</div>
											<!--end::User Info-->
											<!--end::Summary-->
											<!--begin::Details toggle-->
											<div class="d-flex flex-stack fs-4 py-3">
												<div class="fw-bolder rotate collapsible" data-bs-toggle="collapse" href="#kt_user_view_details" role="button" aria-expanded="false" aria-controls="kt_user_view_details">Détails
												<span class="ms-2 rotate-180">
													<!--begin::Svg Icon | path: icons/duotune/arrows/arr072.svg-->
													<span class="svg-icon svg-icon-3">
														<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none">
															<path d="M11.4343 12.7344L7.25 8.55005C6.83579 8.13583 6.16421 8.13584 5.75 8.55005C5.33579 8.96426 5.33579 9.63583 5.75 10.05L11.2929 15.5929C11.6834 15.9835 12.3166 15.9835 12.7071 15.5929L18.25 10.05C18.6642 9.63584 18.6642 8.96426 18.25 8.55005C17.8358 8.13584 17.1642 8.13584 16.75 8.55005L12.5657 12.7344C12.2533 13.0468 11.7467 13.0468 11.4343 12.7344Z" fill="black" />
														</svg>
													</span>
													<!--end::Svg Icon-->
												</span></div>
											</div>
											<!--end::Details toggle-->
											<div class="separator"></div>
											<!--begin::Details content-->
											<div id="kt_user_view_details" class="collapse show">
												<div class="pb-5 fs-6">
													<!--begin::Details item-->
													<div class="fw-bolder mt-5">Identifiant de l'entité</div>
													<div class="text-gray-600">ID-<?= $entiteInfo['idEntite']?></div>
													<!--begin::Details item-->
													<!--begin::Details item-->
													<div class="fw-bolder mt-5">Nom de l'entité</div>
													<div class="text-gray-600">
                                                        <?= $entiteInfo['entite_name']?>
                                                    </div>
													<!--begin::Details item-->
													<!--begin::Details item-->
													<div class="fw-bolder mt-5">Créateur</div>
													<div class="text-gray-600"><?= encrypt_decrypt("decrypt",  $entiteInfo['user_firstname'], $key_user, $iv_user) . " " . encrypt_decrypt("decrypt", $entiteInfo['user_lastname'], $key_user, $iv_user)?></div>
													<!--begin::Details item-->
												</div>
											</div>
											<!--end::Details content-->
										</div>
										<!--end::Card body-->
									</div>
									<!--end::Card-->
								</div>
								<!--end::Sidebar-->
								<!--begin::Content-->
								<div class="flex-lg-row-fluid ms-lg-15">
									<!--begin:::Tabs-->
									<ul class="nav nav-custom nav-tabs nav-line-tabs nav-line-tabs-2x border-0 fs-4 fw-bold mb-8">
                                        <!--begin:::Tab item-->
										<li class="nav-item">
											<a class="nav-link text-active-primary pb-4 active" data-bs-toggle="tab" href="#users">Utilisateurs</a>
										</li>
										<!--end:::Tab item-->
										<!--begin:::Tab item-->
										<li class="nav-item">
											<a class="nav-link text-active-primary pb-4" data-bs-toggle="tab" href="#edit">Modifier</a>
										</li>
										<!--end:::Tab item-->
										<!--begin:::Tab item-->
										<li class="nav-item ms-auto">
											<!--begin::Action menu-->
											<a href="#" class="btn btn-primary ps-7" data-kt-menu-trigger="click" data-kt-menu-attach="parent" data-kt-menu-placement="bottom-end">Actions
											<!--begin::Svg Icon | path: icons/duotune/arrows/arr072.svg-->
											<span class="svg-icon svg-icon-2 me-0">
												<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none">
													<path d="M11.4343 12.7344L7.25 8.55005C6.83579 8.13583 6.16421 8.13584 5.75 8.55005C5.33579 8.96426 5.33579 9.63583 5.75 10.05L11.2929 15.5929C11.6834 15.9835 12.3166 15.9835 12.7071 15.5929L18.25 10.05C18.6642 9.63584 18.6642 8.96426 18.25 8.55005C17.8358 8.13584 17.1642 8.13584 16.75 8.55005L12.5657 12.7344C12.2533 13.0468 11.7467 13.0468 11.4343 12.7344Z" fill="black" />
												</svg>
											</span>
											<!--end::Svg Icon--></a>
											<!--begin::Menu-->
											<div class="menu menu-sub menu-sub-dropdown menu-column menu-rounded menu-gray-800 menu-state-bg-light-primary fw-bold py-4 w-250px fs-6" data-kt-menu="true">
												<!--begin::Menu item-->
												<div class="menu-item px-5">
													<div class="menu-content text-muted pb-2 px-5 fs-7 text-uppercase">Entité</div>
												</div>
												<!--end::Menu item-->
                                                <!--begin::Menu item-->
												<div class="menu-item px-5">
													<a href="/scripts/post/set_entite.php/?entite_id=<?= rawurlencode(encrypt_decrypt("encrypt", $entiteInfo['idEntite'], $key_user, $iv_user))?>" class="menu-link text-info px-5">Lancer cette entité</a>
												</div>
												<!--end::Menu item-->
												<!--begin::Menu item-->
												<div class="menu-item px-5">
													<a href="#" class="menu-link text-danger px-5" data-action="delete" data-id="<?= encrypt_decrypt("encrypt", $entiteInfo['idEntite'], $key_user, $iv_user)?>" data-method="custom" data-element="<?= encrypt_decrypt("encrypt", "entite", $key_user, $iv_user)?>">Supprimer l'entité</a>
												</div>
												<!--end::Menu item-->
											</div>
											<!--end::Menu-->
											<!--end::Menu-->
										</li>
										<!--end:::Tab item-->
									</ul>
									<!--end:::Tabs-->
									<!--begin:::Tab content-->
									<div class="tab-content" id="myTabContent">
                                        <!--begin:::Tab pane-->
										<div class="tab-pane fade show active" id="users" role="tabpanel">
                                            <form method="post" action="">
                                                <!--begin::Tasks-->
                                                <div class="card card-flush mb-6 mb-xl-9">
                                                    <!--begin::Card header-->
                                                    <div class="card-header mt-6">
                                                        <!--begin::Card title-->
                                                        <div class="card-title flex-column">
                                                            <h2 class="mb-1">Utilisateurs</h2>
                                                            <div class="fs-6 fw-bold text-muted">Choisissez les utilisateurs de l'entité <?= $entiteInfo['entite_name']?></div>
                                                        </div>
                                                        <!--end::Card title-->
                                                    </div>
                                                    <!--end::Card header-->
                                                    <!--begin::Card body-->
                                                    <div class="card-body d-flex flex-column">
                                                        <!--begin::Item-->
                                                        <select multiple="multiple" size="10" name="items[]">
                                                            <?php
                                                            //Boucle print des items acquis
                                                            foreach($arrayEarnedItems as $id => $value) {
                                                                echo '<option value="'.$id.'" selected>'.$value.'</option>';
                                                            }
                                                            //Boucle print des items non-acquis 
                                                            foreach($arrayAllItems as $id => $value) {
                                                                echo '<option value="'.$id.'">'.$value.'</option>';
                                                            }
                                                            ?>
                                                        </select>
                                                        <!--end::Item-->
                                                    </div>
                                                    <!--end::Card body-->
                                                    <!--begin::Card footer-->
                                                    <div class="card-footer border-0 d-flex justify-content-center pt-0">
                                                        <button class="btn btn-sm btn-light-primary" type="submit" name="update-users">Enregistrer</button>
                                                    </div>
                                                    <!--end::Card footer-->
                                                </div>
                                                <!--end::Tasks-->
                                            </form>
										</div>
										<!--end:::Tab pane-->
										<!--begin:::Tab pane-->
										<div class="tab-pane fade" id="edit" role="tabpanel">
                                            <form method="post" action="">
                                                <!--begin::Card-->
                                                <div class="card card-flush mb-6 mb-xl-9">
                                                    <!--begin::Card body-->
                                                    <div class="card-body border-top p-9">
                                                        <!--begin::Input group-->
                                                        <div class="row mb-6">
                                                            <!--begin::Label-->
                                                            <label class="col-lg-4 col-form-label required fw-bold fs-6">Nom de l'entité</label>
                                                            <!--end::Label-->
                                                            <!--begin::Col-->
                                                            <div class="col-lg-8 fv-row">
                                                                <input type="text" class="form-control form-control-lg form-control-solid" value="<?= $entiteInfo['entite_name'] ?>" name="entite_name"/>
                                                            </div>
                                                            <!--end::Col-->
                                                        </div>
                                                        <!--end::Input group-->
                                                    </div>
                                                    <!--end::Card body-->
                                                    <!--begin::Actions-->
                                                    <div class="card-footer d-flex justify-content-end py-6 px-9">
                                                        <button type="submit" class="btn btn-primary" name="update-entite">Enregistrer</button>
                                                    </div>
                                                    <!--end::Actions-->
                                                </div>
							                     <!--end::Card-->
                                            </form>
										</div>
										<!--end:::Tab pane-->
									</div>
									<!--end:::Tab content-->
								</div>
								<!--end::Content-->
							</div>
							<!--end::Layout-->
						</div>
						<!--end::Container-->
					</div>

Conseils et liens

Liens vers des ressources utiles pour l'édition de fichier