Editeur Editez un fichier

Edition d'un fichier

Editez le fichier applications/nuasix/api_command_layout_out_table.php
<?php 
//_________________________________________________________________________________
//Zone de récupération des données de cette commande
$commandId                  = encrypt_decrypt("decrypt", rawurldecode($_GET['element']), $key_user, $iv_user);
$reqCommand                 = getQueries('api_commands', array('idCommand'  => $commandId));
$command	                = $reqCommand['result'][0];

//Récupération des tables de la commande
$reqTables                  = getQueries("api_commands_tables LEFT JOIN api_infos_tables ON api_commands_tables.table_id = api_infos_tables.idInfoTable", 
                                         array("command_id" => $commandId));
$tables                     = $reqTables['result'];

//LAYOUT DES COLONNES
//Toutes les colonnes que le layout possède actuellement
$reqColumns                 = getQueries('api_commands_layout_out_table', array('command_id' => $commandId, 'ORDER BY' => 'layout_out_table_order'));
$columnsOwns                = $reqColumns['result'];
//_________________________________________________________________________________
//_________________________________________________________________________________
//Création d'une page
if(isset($_POST['update-columns'])) {
    
    //Commence l'ordre à 10
    $order  = 10;
    
    //Suppression des layouts actuels
    dbRowDelete('api_commands_layout_out_table', 'command_id = '.$commandId);
    
    //Parcours du POST 
    foreach ($_POST as $key => $value) {
        
        if(strpos($key, "column_") !== false) {
            
            //Pour chaque colonne, on récupère son id et son nom de modèle
            $idColumn   = substr($key, strpos($key, "_") + 1);
            
            
            //Données du formulaire
            $form       = array('column_id'                 => $idColumn, 
                                'layout_out_table_order'    => $order, 
                                'layout_out_table_name'     => $value, 
                                'command_id'                => $commandId, 
                                'user_id'                   => $user -> getUserId());

            $flag       = dbRowInsert2("api_commands_layout_out_table", $form);
            
            if( $flag ) {
                itsLog(array('log_table'        => "api_commands_layout_out_table",
                             'log_operation'    => "Ajout d'une colonne dans un modèle de sortie", 
                             'log_request'      => json_encode($form),
                             'log_response'     => json_encode($flag),
                             'log_color'        => "success", 
                             'log_display'      => 1,
                             'log_timeout'      => 5000, 
                             'id_log'           => getLastId("api_commands_layout_out_table", 'idApiCommandLayoutOutTable'), 
                             'user_id'          => $user -> getUserId()
                ));
            } else {
                itsLog(array('log_table'        => "api_commands_layout_out_table",
                             'log_operation'    => "Erreur durant l'ajout d'une colonne dans un modèle de sortie", 
                             'log_request'      => json_encode($form),
                             'log_response'     => json_encode($flag),
                             'log_color'        => "danger", 
                             'log_display'      => 1,
                             'log_timeout'      => 5000, 
                             'user_id'          => $user -> getUserId()
                ));
            }
            
            //Incrémentation de 10 de l'ordre
            $order = $order + 10;
        }
    }

    
    //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::Card-->
                            <div class="card pt-4 mb-6 mb-xl-9">
                                <!--begin::Card header-->
                                <div class="card-header border-0">
                                    <!--begin::Card title-->
                                    <div class="card-title">
                                        <h2>Personnalisation du modèle d'affichage</h2>
                                    </div>
                                    <!--end::Card title-->
                                </div>
                                <!--end::Card header-->
                                <!--begin::Card body-->
                                <div class="card-body pt-0 pb-5">
                                    <!--begin::Row-->
                                    <div class="row">
                                        <!--begin::Col-->
                                        <div class="col-lg-4">
                                            <!--begin::Card-->
                                            <div class="card card-bordered">
                                                <!--begin::Card header-->
                                                <div class="card-header">
                                                    <div class="card-title">
                                                        <h3 class="card-label">Colonnes disponibles</h3>
                                                    </div>
                                                </div>
                                                <!--end::Card header-->
                                                <!--begin::Card body-->
                                                <div class="card-body">
                                                    <form method="post" action="">
                                                    <!--begin::Colonnes-->
                                                    <?php
                                                    foreach($tables as $table) {
                                                        //LAYOUT DES COLONNES
                                                        $reqAllColumns              = getQueries('api_commands_columns LEFT JOIN api_infos_tables_columns ON api_commands_columns.column_id = api_infos_tables_columns.idInfoTableColumn', array('api_infos_tables_columns.infoTable_id' => $table['idInfoTable'], "api_commands_columns.command_id" => $commandId));
                                                        $allItems                   = $reqAllColumns['result'];

                                                        //Toutes les colonnes que le layout possède actuellement
                                                        $reqColumns                 = getQueries('api_commands_layout_out_table LEFT JOIN api_commands_columns ON api_commands_layout_out_table.column_id = api_commands_columns.column_id', 
                                                                                       array('api_commands_layout_out_table.command_id' => $commandId, 'ORDER BY' => 'layout_out_table_order'));
                                                        $itemsOwns                  = $reqColumns['result'];
                                                        //var_dump($itemsOwns);
                                                        //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['idCommandColumn']] = $itemInfo['column_id'];
                                                        }
                                                        //Pareil pour l'array de toutes les items 
                                                        $arrayAllItems              = array();
                                                        foreach($allItems as $itemInfo) {
                                                            $arrayAllItems[$itemInfo['idCommandColumn']] = $itemInfo['column_id'];
                                                        }

                                                        //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]);
                                                            }
                                                        }
                                                        ?>
                                                        <!--begin::Card header-->
                                                        <div class="card-header border-0 cursor-pointer" role="button" data-bs-toggle="collapse" data-bs-target="#columns_<?= $table['idInfoTable']?>" aria-expanded="true" aria-controls="columns_<?= $table['idInfoTable']?>">
                                                            <h3 class="card-label"><?= $table['info_table_description']?></h3>>
                                                        </div>
                                                        <!--begin::Card header-->
                                                        <div id="columns_<?= $table['idInfoTable']?>" class="collapse">
                                                            <!--begin::Row-->
                                                            <div class="row row-cols-1 g-10 min-h-200px draggable-zone">
                                                                <?php 
                                                                foreach($arrayAllItems as $idLayoutColumn => $idColumn) {
                                                                    //Récupération des données de cet item
                                                                    $reqColumn  = getQueries("api_infos_tables_columns", array('idInfoTableColumn' => $idColumn));
                                                                    $column     = $reqColumn['result'][0];
                                                                ?>
                                                                <!--begin::Col-->
                                                                <div class="col draggable">
                                                                    <!--begin::Card-->
                                                                    <div class="card bg-light-success">
                                                                        <div class="card-header">
                                                                            <div class="card-title">
                                                                                <h5 class="card-label"><?= $column['info_table_column_description']?></h5>
                                                                            </div>
                                                                            <div class="card-toolbar">
                                                                                <a href="#" class="btn btn-icon btn-hover-light-primary draggable-handle">
                                                                                    <!--begin::Svg Icon | path: icons/duotune/abstract/abs015.svg-->
                                                                                    <span class="svg-icon svg-icon-2x">
                                                                                        <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none">
                                                                                            <path d="M21 7H3C2.4 7 2 6.6 2 6V4C2 3.4 2.4 3 3 3H21C21.6 3 22 3.4 22 4V6C22 6.6 21.6 7 21 7Z" fill="black" />
                                                                                            <path opacity="0.3" d="M21 14H3C2.4 14 2 13.6 2 13V11C2 10.4 2.4 10 3 10H21C21.6 10 22 10.4 22 11V13C22 13.6 21.6 14 21 14ZM22 20V18C22 17.4 21.6 17 21 17H3C2.4 17 2 17.4 2 18V20C2 20.6 2.4 21 3 21H21C21.6 21 22 20.6 22 20Z" fill="black" />
                                                                                        </svg>
                                                                                    </span>
                                                                                    <!--end::Svg Icon-->
                                                                                </a>
                                                                            </div>
                                                                        </div>
                                                                        <div class="card-body">
                                                                            <input type="text" name="column_<?= $column['idInfoTableColumn']?>" class="form-control form-control-solid mb-3 mb-lg-0" value="<?= $column['info_table_column_description']?>"/>
                                                                        </div>
                                                                    </div>
                                                                    <!--end::Card-->
                                                                </div>
                                                                <!--end::Col-->  
                                                                <?php
                                                                }
                                                                ?>
                                                            </div>
                                                            <!--end::Row-->
                                                        </div>
                                                        <?php
                                                        }
                                                        ?>
                                                    </form> 
                                                </div>
                                                <!--end::Card body-->
                                            </div>
                                            <!--end::Card-->
                                        </div>
                                        <!--end::Col-->
                                        <!--begin::Col-->
                                        <div class="col-lg-8">
                                            <form method="post" action="">
                                            <!--begin::Card-->
                                            <div class="card card-bordered">
                                                <!--begin::Card header-->
                                                <div class="card-header">
                                                    <div class="card-title">
                                                        <h3 class="card-label">Affichage du tableau</h3>
                                                    </div>
                                                </div>
                                                <!--end::Card header-->
                                                <!--begin::Card body-->
                                                <div class="card-body">
                                                    <!--begin::Row-->
                                                    <div class="row row-cols-1 g-10 min-h-200px draggable-zone">
                                                        <?php 
                                                        foreach($columnsOwns as $columnOwn) {
                                                            //Récupération des données de cet item
                                                            $reqColumn  = getQueries("api_infos_tables_columns LEFT JOIN api_commands_layout_out_table ON api_infos_tables_columns.idInfoTableColumn = api_commands_layout_out_table.column_id", array('idInfoTableColumn' => $columnOwn['column_id']));
                                                            $column     = $reqColumn['result'][0];?>
                                                        <!--begin::Col-->
                                                        <div class="col draggable">
                                                            <!--begin::Card-->
                                                            <div class="card bg-light-info">
                                                                <div class="card-header">
                                                                    <div class="card-title">
                                                                        <h5 class="card-label"><?= $column['info_table_column_description']?></h5>
                                                                    </div>
                                                                    <div class="card-toolbar">
                                                                        <a href="#" class="btn btn-icon btn-hover-light-primary draggable-handle">
                                                                            <!--begin::Svg Icon | path: icons/duotune/abstract/abs015.svg-->
                                                                            <span class="svg-icon svg-icon-2x">
                                                                                <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none">
                                                                                    <path d="M21 7H3C2.4 7 2 6.6 2 6V4C2 3.4 2.4 3 3 3H21C21.6 3 22 3.4 22 4V6C22 6.6 21.6 7 21 7Z" fill="black" />
                                                                                    <path opacity="0.3" d="M21 14H3C2.4 14 2 13.6 2 13V11C2 10.4 2.4 10 3 10H21C21.6 10 22 10.4 22 11V13C22 13.6 21.6 14 21 14ZM22 20V18C22 17.4 21.6 17 21 17H3C2.4 17 2 17.4 2 18V20C2 20.6 2.4 21 3 21H21C21.6 21 22 20.6 22 20Z" fill="black" />
                                                                                </svg>
                                                                            </span>
                                                                            <!--end::Svg Icon-->
                                                                        </a>
                                                                    </div>
                                                                </div>
                                                                <div class="card-body">
                                                                    <input type="text" name="column_<?= $column['idInfoTableColumn']?>" class="form-control form-control-solid mb-3 mb-lg-0" value="<?= $column['layout_out_table_name']?>"/>
                                                                </div>
                                                            </div>
                                                            <!--end::Card-->
                                                        </div>
                                                        <!--end::Col-->  
                                                        <?php
                                                        }
                                                        ?>
                                                    </div>
                                                    <!--end::Row-->
                                                </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-columns">Enregistrer</button>
                                                </div>
                                                <!--end::Actions-->
                                            </div>
                                            <!--end::Card-->
                                            </form> 
                                        </div>
                                        <!--end::Col-->
                                    </div>
                                </div>
                                <!--end::Card body-->
                            </div>
                            <!--end::Card-->
						</div>
						<!--end::Container-->
					</div>

Conseils et liens

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