introducing gestion page
This commit is contained in:
parent
ebf1b0d41c
commit
1f6e674d52
25
includes/gestion.php
Normal file
25
includes/gestion.php
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
<?php
|
||||
|
||||
add_action('admin_menu', 'add_page_gestion');
|
||||
|
||||
function add_page_gestion()
|
||||
{
|
||||
$svg = '<svg width="80" height="72" viewBox="0 0 80 72" fill="none" xmlns="http://www.w3.org/2000/svg"> <path fill-rule="evenodd" clip-rule="evenodd" d="M69 5C69 2.2 66.8 0 64 0C61.2 0 59 2.2 59 5H53C53 2.2 50.8 0 48 0C45.2 0 43 2.2 43 5H37C37 2.2 34.8 0 32 0C29.2 0 27 2.2 27 5H21C21 2.2 18.8 0 16 0C13.2 0 11 2.2 11 5C4.8 5.6 0 10.7 0 17V60C0 66.6 5.4 72 12 72H68C74.6 72 80 66.6 80 60V17C80 10.7 75.2 5.6 69 5ZM63 5C63 4.4 63.4 4 64 4C64.6 4 65 4.4 65 5V9C65 9.6 64.6 10 64 10C63.4 10 63 9.6 63 9V5ZM47 5C47 4.4 47.4 4 48 4C48.6 4 49 4.4 49 5V9C49 9.6 48.6 10 48 10C47.4 10 47 9.6 47 9V5ZM31 5C31 4.4 31.4 4 32 4C32.6 4 33 4.4 33 5V9C33 9.6 32.6 10 32 10C31.4 10 31 9.6 31 9V5ZM15 5C15 4.4 15.4 4 16 4C16.6 4 17 4.4 17 5V9C17 9.6 16.6 10 16 10C15.4 10 15 9.6 15 9V5ZM26.8 68C27.2 61.2 33 55.7 40 55.7C47 55.7 52.8 61.1 53.2 68H26.8ZM76.3 60C76.3 63.3 74.2 66.2 71.3 67.4V63.7C71.3 60.9 69 58.7 66.2 58.7H64.8L65.7 57.8C67.7 55.9 67.7 52.7 65.7 50.7L58.4 43.5C56.5 41.5 53.3 41.5 51.3 43.5L50.3 44.5V43.1C50.3 40.3 48 38.1 45.2 38.1H35C32.2 38.1 29.9 40.3 29.9 43.1V44.5L28.9 43.5C27 41.5 23.8 41.5 21.8 43.5L14.6 50.7C12.6 52.6 12.6 55.8 14.6 57.8L15.5 58.7H14.1C11.3 58.7 9 60.9 9 63.7V67.4C6.1 66.2 4 63.4 4 60V24H76.3V60Z" fill="black"/></svg>';
|
||||
$icon = 'data:image/svg+xml;base64,' . base64_encode($svg);
|
||||
|
||||
add_menu_page(
|
||||
'Gestion', // Titre de la page
|
||||
'Gestion', // Titre dans le menu
|
||||
'edit_pages',
|
||||
'gestion-artisans', // Slug du menu
|
||||
'afficher_page_gestion_artisans', // Fonction de callback
|
||||
$icon, // Icône
|
||||
2 // Position
|
||||
);
|
||||
}
|
||||
|
||||
function afficher_page_gestion_artisans()
|
||||
{
|
||||
// Charge le template part pour la page d'options
|
||||
get_template_part('template-parts/admin/page', 'options');
|
||||
}
|
||||
75
template-parts/admin/artisans-section-group.php
Normal file
75
template-parts/admin/artisans-section-group.php
Normal file
|
|
@ -0,0 +1,75 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* Template part pour afficher une section d'artisans
|
||||
*
|
||||
* @param string $status - Le statut des artisans à afficher
|
||||
* @param string $title - Le titre de la section
|
||||
* @param int $current_user_id - L'ID de l'utilisateur courant
|
||||
* @param array $additional_query - Paramètres de requête supplémentaires (optionnel)
|
||||
*/
|
||||
|
||||
|
||||
|
||||
$status_class = $args['status_class'] ?? "";
|
||||
$status = $args['status'] ?? null;
|
||||
$title = $args['title'] ?? "";
|
||||
$use_current_user = $args['use_current_user'] ?? false;
|
||||
$current_user_id = $args['current_user_id'] ?? null;
|
||||
$not_found_message = $args['not_found_message'] ?? "";
|
||||
|
||||
|
||||
$queryArgsWithStatus = array(
|
||||
'post_type' => 'artisans',
|
||||
'posts_per_page' => -1,
|
||||
'meta_query' => array(
|
||||
array(
|
||||
'key' => 'mdp_status',
|
||||
'value' => $status,
|
||||
'compare' => '='
|
||||
)
|
||||
)
|
||||
);
|
||||
$queryArgsActionRequired = array(
|
||||
'post_type' => 'artisans',
|
||||
'posts_per_page' => -1,
|
||||
'meta_query' => array(
|
||||
array(
|
||||
'key' => 'required_action',
|
||||
'value' => true,
|
||||
'compare' => '='
|
||||
)
|
||||
)
|
||||
);
|
||||
|
||||
$currentQueryArgs = $status ? $queryArgsWithStatus : $queryArgsActionRequired;
|
||||
|
||||
if ($use_current_user && $current_user_id) {
|
||||
$currentQueryArgs['meta_value'] = $current_user_id;
|
||||
$currentQueryArgs['meta_key'] = 'conseiller';
|
||||
}
|
||||
|
||||
|
||||
|
||||
$artisans = new WP_Query($currentQueryArgs);
|
||||
|
||||
?>
|
||||
|
||||
<div class="group-artisans group-artisans--<?php echo $status_class ?>">
|
||||
<h3 class="group-artisans__title"><?php echo $title ?> <span class="group-artisans__post-count">(<?php echo $artisans->found_posts ?>)</span></h3>
|
||||
<ul class="group-artisans__list">
|
||||
<?php if ($artisans->found_posts === 0) : ?>
|
||||
<p class="group-artisans__no-results"><?php echo $not_found_message ?></p>
|
||||
<?php else : ?>
|
||||
<?php foreach ($artisans->posts as $artisan) : ?>
|
||||
<?php $mdp_status = get_field('mdp_status', $artisan->ID); ?>
|
||||
<li class="group-artisans__list__item">
|
||||
<a href="<?php echo get_edit_post_link($artisan->ID) ?>"><?php echo $artisan->post_title ?></a>
|
||||
<?php if ($mdp_status) : ?>
|
||||
<span class="status-state status-state--<?php echo $mdp_status['value'] ?>"><?php echo $mdp_status['label'] ?></span>
|
||||
<?php endif; ?>
|
||||
</li>
|
||||
<?php endforeach; ?>
|
||||
<?php endif; ?>
|
||||
</ul>
|
||||
</div>
|
||||
78
template-parts/admin/page-options.php
Normal file
78
template-parts/admin/page-options.php
Normal file
|
|
@ -0,0 +1,78 @@
|
|||
<?php
|
||||
$current_user = wp_get_current_user();
|
||||
$user_name = $current_user->display_name;
|
||||
?>
|
||||
|
||||
<div class="wrap gestion-artisans">
|
||||
<h1>Gestion</h1>
|
||||
<div class="filter-artisans">
|
||||
|
||||
<input type="radio" name="choice" id="current-user" value="current-user">
|
||||
<label for="current-user">Artisans de <?php echo $user_name ?></label>
|
||||
<input type="radio" name="choice" id="all-users" value="all-users">
|
||||
<label for="all-users">Tous les artisans</label>
|
||||
</div>
|
||||
<h2>Artisans de <?php echo $user_name ?></h2>
|
||||
|
||||
<?php
|
||||
//===== SECTION : ACTION REQUISE =====//
|
||||
get_template_part('template-parts/admin/artisans-section-group', null, array(
|
||||
'type' => 'action-required',
|
||||
'status_class' => 'action-required ',
|
||||
'title' => 'Action requise',
|
||||
'use_current_user' => true,
|
||||
'current_user_id' => $current_user->ID,
|
||||
'not_found_message' => 'Aucun artisan avec une action requise',
|
||||
));
|
||||
|
||||
//===== SECTION : À ACTUALISER =====//
|
||||
get_template_part('template-parts/admin/artisans-section-group', null, array(
|
||||
'status' => 'to_actualize',
|
||||
'status_class' => 'to-actualize',
|
||||
'title' => 'À actualiser',
|
||||
'use_current_user' => true,
|
||||
'current_user_id' => $current_user->ID,
|
||||
'not_found_message' => 'Aucun artisan à actualiser',
|
||||
));
|
||||
|
||||
//===== SECTION : À CONTACTER =====//
|
||||
get_template_part('template-parts/admin/artisans-section-group', null, array(
|
||||
'status' => 'to_contact',
|
||||
'status_class' => 'to-contact',
|
||||
'title' => 'À contacter',
|
||||
'use_current_user' => true,
|
||||
'current_user_id' => $current_user->ID,
|
||||
'not_found_message' => 'Aucun artisan à contacter',
|
||||
));
|
||||
|
||||
//===== SECTION : EN ATTENTE DE RETOUR =====//
|
||||
get_template_part('template-parts/admin/artisans-section-group', null, array(
|
||||
'status' => 'waiting_feedback',
|
||||
'status_class' => 'waiting-feedback',
|
||||
'title' => 'En attente de retour',
|
||||
'use_current_user' => true,
|
||||
'current_user_id' => $current_user->ID,
|
||||
'not_found_message' => 'Aucun artisan en attente de retour',
|
||||
));
|
||||
|
||||
//===== SECTION : EN COURS =====//
|
||||
get_template_part('template-parts/admin/artisans-section-group', null, array(
|
||||
'status' => 'ongoing',
|
||||
'status_class' => 'ongoing',
|
||||
'title' => 'En cours',
|
||||
'use_current_user' => true,
|
||||
'current_user_id' => $current_user->ID,
|
||||
'not_found_message' => 'Aucun artisan en cours',
|
||||
));
|
||||
|
||||
//===== SECTION : OK =====//
|
||||
get_template_part('template-parts/admin/artisans-section-group', null, array(
|
||||
'status' => 'ok',
|
||||
'status_class' => 'ok',
|
||||
'title' => 'OK',
|
||||
'use_current_user' => true,
|
||||
'current_user_id' => $current_user->ID,
|
||||
'not_found_message' => 'Aucun artisan OK',
|
||||
));
|
||||
?>
|
||||
</div>
|
||||
Loading…
Reference in New Issue
Block a user