Compare commits

...

3 Commits

Author SHA1 Message Date
Antoine M
bb5d011d3b FEATURE Adding a cover variant for the card
All checks were successful
continuous-integration/drone/push Build is passing
2025-09-25 15:20:06 +02:00
Antoine M
4f4ae81043 REFACTORING The names 2025-09-25 15:19:48 +02:00
Antoine M
86af3c41f5 REFACTOR multiline to single line 2025-09-25 15:19:23 +02:00
4 changed files with 56 additions and 65 deletions

View File

@ -1,11 +1,11 @@
<?php
/* ----------------------------------------------------------------
##### PAGE D'OPTIONS DU THÈME DYNAMIQUES
##### PAGE D'OPTIONS DE GESTION DES RÉSEAUX SOCIAUX
| ------------------------------------------------------------------*/
// Ajouter la page d'options au menu d'administration
function dynamiques_add_options_page()
function carhop_add_options_page()
{
if (get_current_blog_id() !== 1) return;
@ -13,105 +13,84 @@ function dynamiques_add_options_page()
'Options de réseaux sociaux', // Titre de la page
'Réseaux sociaux', // Titre du menu
'manage_options', // Capacité requise
'dynamiques-options', // Slug de la page
'dynamiques_options_page_html' // Fonction de callback
'carhop-options', // Slug de la page
'carhop_options_page_html' // Fonction de callback
);
}
add_action('admin_menu', 'dynamiques_add_options_page');
add_action('admin_menu', 'carhop_add_options_page');
// Enregistrer les paramètres
function dynamiques_settings_init()
function carhop_settings_init()
{
// Enregistrer un groupe de paramètres
register_setting('dynamiques_options', 'dynamiques_options');
register_setting('carhop_options', 'carhop_options');
// Ajouter une section pour les réseaux sociaux
add_settings_section(
'dynamiques_section_social',
'carhop_section_social',
'Réseaux sociaux',
'dynamiques_section_social_callback',
'dynamiques_options'
);
// Champs de la section générale
add_settings_field(
'site_logo',
'Logo du site',
'dynamiques_field_logo_callback',
'dynamiques_options',
'dynamiques_section_general',
array('label_for' => 'site_logo')
);
add_settings_field(
'footer_text',
'Texte du pied de page',
'dynamiques_field_footer_text_callback',
'dynamiques_options',
'dynamiques_section_general',
array('label_for' => 'footer_text')
'carhop_section_social_callback',
'carhop_options'
);
// Champs pour les réseaux sociaux
add_settings_field(
'facebook_url',
'URL Facebook',
'dynamiques_field_facebook_callback',
'dynamiques_options',
'dynamiques_section_social',
'carhop_field_facebook_callback',
'carhop_options',
'carhop_section_social',
array('label_for' => 'facebook_url')
);
add_settings_field(
'youtube_url',
'URL YouTube',
'dynamiques_field_youtube_callback',
'dynamiques_options',
'dynamiques_section_social',
'carhop_field_youtube_callback',
'carhop_options',
'carhop_section_social',
array('label_for' => 'youtube_url')
);
}
add_action('admin_init', 'dynamiques_settings_init');
add_action('admin_init', 'carhop_settings_init');
// Callback pour la section réseaux sociaux
function dynamiques_section_social_callback()
function carhop_section_social_callback()
{
echo '<p>Configurez les liens vers vos réseaux sociaux.</p>';
}
function dynamiques_field_facebook_callback($args)
function carhop_field_facebook_callback($args)
{
$options = get_option('dynamiques_options');
$options = get_option('carhop_options');
$value = isset($options[$args['label_for']]) ? $options[$args['label_for']] : '';
?>
<input type="url"
id="<?php echo esc_attr($args['label_for']); ?>"
name="dynamiques_options[<?php echo esc_attr($args['label_for']); ?>]"
name="carhop_options[<?php echo esc_attr($args['label_for']); ?>]"
value="<?php echo esc_attr($value); ?>"
class="regular-text"
placeholder="https://facebook.com/votreprofil">
<?php
}
function dynamiques_field_youtube_callback($args)
function carhop_field_youtube_callback($args)
{
$options = get_option('dynamiques_options');
$options = get_option('carhop_options');
$value = isset($options[$args['label_for']]) ? $options[$args['label_for']] : '';
?>
<input type="url"
id="<?php echo esc_attr($args['label_for']); ?>"
name="dynamiques_options[<?php echo esc_attr($args['label_for']); ?>]"
name="carhop_options[<?php echo esc_attr($args['label_for']); ?>]"
value="<?php echo esc_attr($value); ?>"
class="regular-text"
placeholder="https://youtube.com/votrechaine">
<?php
}
// Page HTML de l'interface d'options
function dynamiques_options_page_html()
function carhop_options_page_html()
{
// Vérifier les permissions
if (!current_user_can('manage_options')) {
@ -120,18 +99,18 @@ function dynamiques_options_page_html()
// Traitement des messages
if (isset($_GET['settings-updated'])) {
add_settings_error('dynamiques_messages', 'dynamiques_message', 'Paramètres sauvegardés', 'updated');
add_settings_error('carhop_messages', 'carhop_message', 'Paramètres sauvegardés', 'updated');
}
settings_errors('dynamiques_messages');
settings_errors('carhop_messages');
?>
<div class="wrap">
<h1><?php echo esc_html(get_admin_page_title()); ?></h1>
<form action="options.php" method="post">
<?php
settings_fields('dynamiques_options');
do_settings_sections('dynamiques_options');
settings_fields('carhop_options');
do_settings_sections('carhop_options');
submit_button('Sauvegarder les paramètres');
?>
</form>
@ -139,26 +118,28 @@ function dynamiques_options_page_html()
<div style="margin-top: 20px; padding: 15px; background: #f1f1f1; border-radius: 5px;">
<h3>Comment utiliser ces paramètres :</h3>
<p><strong>Dans vos templates :</strong></p>
<pre><code>$options = get_option('dynamiques_options');
<pre><code>$options = get_option('carhop_options');
echo $options['facebook_url']; // URL Facebook
echo $options['footer_text']; // Texte du footer</code></pre>
echo $options['youtube_url']; // URL YouTube</code></pre>
</div>
</div>
<?php
}
// Fonctions utilitaires pour récupérer les options facilement
function get_dynamiques_option($option_name, $default = '')
function get_carhop_network_links_option($option_name, $default = '')
{
$options = get_option('dynamiques_options');
$options = get_option('carhop_options');
return isset($options[$option_name]) ? $options[$option_name] : $default;
}
// Fonction pour afficher les liens sociaux
function carhop_display_social_links($class = 'social-links')
{
$facebookUrl = get_dynamiques_option('facebook_url');
$youtubeUrl = get_dynamiques_option('youtube_url');
switch_to_blog(1);
$facebookUrl = get_carhop_network_links_option('facebook_url');
$youtubeUrl = get_carhop_network_links_option('youtube_url');
restore_current_blog();
ob_start();
?>

View File

@ -38,6 +38,14 @@
&__tags {
@apply flex flex-wrap gap-4 pt-4;
}
&__cover {
@apply w-48 h-48 absolute border-primary border bottom-12 right-12 hidden lg:block;
transform: rotate(-3deg);
img {
@apply w-full h-full object-cover;
}
}
.cta--go {
@apply text-primary;
}

View File

@ -1,7 +1,8 @@
<?php
$articleID = $args['ID'];
$isSwiperSlide = $args['isSwiperSlide'];
$isSwiperSlide = $args['isSwiperSlide'] ?? false;
$showCover = $args['showCover'] ?? false;
$cover = get_the_post_thumbnail_url($articleID);
?>
<div class="article-card <?php echo $isSwiperSlide ? 'swiper-slide' : ''; ?>">
@ -25,9 +26,15 @@ $isSwiperSlide = $args['isSwiperSlide'];
</ul>
<?php if ($showCover && isset($cover) && $cover) : ?>
<div class="article-card__cover">
<img src="<?php echo $cover; ?>" alt="<?php echo get_the_title($articleID); ?>">
</div>
<?php endif; ?>
<?php get_template_part('template-parts/components/cta--go', null, array(
'url' => get_the_permalink($articleID),
'label' => 'Lire la revue lol',
'label' => 'Lire la revue',
'target' => '_self',
)); ?>

View File

@ -61,12 +61,7 @@
</li>
<li class="socials">
<?php
echo carhop_display_social_links();
?>
<?php echo carhop_display_social_links(); ?>
</li>