Des boutons de partage social ont été intégrés à votre blog pour permettre aux lecteurs de partager facilement vos articles sur différentes plateformes.
blog/templates/blog/social_share.html - Composant réutilisable de partageblog/templates/read.html - Intégration des boutons de partageLe composant est déjà intégré dans read.html, mais vous pouvez l'utiliser ailleurs :
{% include 'blog/social_share.html' with article_title=item.b_titre article_url=request.build_absolute_uri %}
article_title : Titre de l'article à partagerarticle_url : URL complète de l'articleAssurez-vous que le contexte contient les bonnes informations :
def article_detail(request, slug):
article = get_object_or_404(Blog, b_titre_slgify=slug)
context = {
'article': article,
'article_url': request.build_absolute_uri(),
}
return render(request, 'blog/read.html', context)
Dans social_share.html, modifiez les classes CSS :
.social-btn-twitter {
background: linear-gradient(135deg, #VOTRE_COULEUR_1 0%, #VOTRE_COULEUR_2 100%);
}
Pour ajouter un réseau (exemple: Telegram) :
<a href="https://t.me/share/url?url={{ article_url }}&text={{ article_title|urlencode }}"
target="_blank"
rel="noopener noreferrer"
class="social-btn social-btn-telegram"
title="Partager sur Telegram">
<i class="fab fa-telegram-plane"></i>
<span class="social-btn-text">Telegram</span>
</a>
Et ajoutez le style CSS correspondant :
.social-btn-telegram {
background: linear-gradient(135deg, #0088cc 0%, #006699 100%);
}
Modifier le grid dans le CSS :
.social-share-buttons {
grid-template-columns: repeat(3, 1fr); /* 3 colonnes au lieu de auto */
}
Pour suivre les partages, vous pouvez ajouter des événements JavaScript :
document.querySelectorAll('.social-btn').forEach(btn => {
btn.addEventListener('click', function() {
// Envoyez les stats vers votre backend
fetch('/api/track-share/', {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
article_id: '{{ item.id }}',
platform: this.classList[1].replace('social-btn-', '')
})
});
});
});
Créez un modèle pour stocker les compteurs :
class ArticleShare(models.Model):
article = models.ForeignKey(Blog, on_delete=models.CASCADE)
platform = models.CharField(max_length=50)
count = models.IntegerField(default=0)
class Meta:
unique_together = ['article', 'platform']
Vérifiez que Font Awesome est bien chargé dans base.html :
<script src="https://kit.fontawesome.com/7cf2a101ac.js"></script>
Le bouton nécessite HTTPS en production. En développement (HTTP), la méthode fallback sera utilisée automatiquement.
Vérifiez que le template social_share.html est bien inclus et que les styles sont chargés :
{% include 'blog/social_share.html' with article_title=item.b_titre article_url=request.build_absolute_uri %}
Pour de meilleurs partages, ajoutez ces meta tags dans votre base.html :
<!-- Open Graph / Facebook -->
<meta property="og:type" content="article">
<meta property="og:url" content="{{ request.build_absolute_uri }}">
<meta property="og:title" content="{{ article.b_titre }}">
<meta property="og:description" content="{{ article.b_description }}">
<meta property="og:image" content="{{ article.b_description_img }}">
<!-- Twitter -->
<meta property="twitter:card" content="summary_large_image">
<meta property="twitter:url" content="{{ request.build_absolute_uri }}">
<meta property="twitter:title" content="{{ article.b_titre }}">
<meta property="twitter:description" content="{{ article.b_description }}">
<meta property="twitter:image" content="{{ article.b_description_img }}">
blog/templates/blog/social_share.htmlread.htmlDevrait ouvrir : https://twitter.com/intent/tweet?text=TITRE&url=URL
Devrait ouvrir : https://www.facebook.com/sharer/sharer.php?u=URL
Devrait ouvrir : https://www.linkedin.com/sharing/share-offsite/?url=URL
Devrait ouvrir : https://wa.me/?text=TITRE%20URL
Devrait ouvrir : https://reddit.com/submit?url=URL&title=TITRE
Devrait ouvrir le client email avec sujet et corps pré-remplis
Devrait copier l'URL et afficher une notification pendant 3 secondes
Vos lecteurs peuvent maintenant partager vos articles en un clic sur leurs réseaux sociaux préférés ! Le design moderne et responsive s'adapte automatiquement à tous les appareils.
Positionnement actuel : Entre le contenu de l'article et le bouton d'édition admin
Design : Carte avec dégradé de fond, boutons colorés avec effet hover
Mobile-friendly : Disposition verticale sur petit écran, bouton WhatsApp optimisé