J’ai un site où plusieurs groupes ont leurs propres catégories, et l’idée est d’habiller ces catégories avec le logo du propriétaire du groupe.
Pour chaque catégorie, il y a un code comme celui-ci :
.category-org .d-header {
color: white !important;
background-color: white !important;
background-image: none !important;
background:white !important;
}
.category-org #site-text-logo {
content: url("/uploads/default/original/1X/a9d7d4f215f2013907002ffe13456d3f90a7f108.png") !important;
display: inline-block;
height: 50px;
font-size: 0;
margin-top: 5px;
margin-bottom: 0px;
}
Le problème est que lorsque vous cliquez sur le logo, vous êtes redirigé vers l’accueil du site plutôt que vers la catégorie. Cela est (pour la plupart) résolu par le code suivant :
<script type="text/javascript">
$(document).ready(function() {
$(".title #site-text-logo").click(function(event){
// Ne pas naviguer vers l'URL de base
event.preventDefault();
// Récupérer la catégorie active depuis l'ID du div
div = $("body[class*='category-']")[0];
// Extraire le slug depuis la classe commençant par category-
var classes = $(div).attr('class');
var slug = classes.match(/category\-.+/g)[0].replace("category-","").split(" ")[0];
// Définir le href comme étant l'URL du slug
document.location = "/c/" + slug + "/";
})
});
</script>
Si vous cliquez sur le logo depuis une page de catégorie ou une page de sujet, vous allez bien vers la page de catégorie. Hourra !
MAIS si vous cliquez dans le tout petit espace entre le logo et le bas de l’en-tête, vous êtes redirigé vers l’accueil du site au lieu de la page de catégorie. Il est presque impossible de distinguer à l’avance quelle action sera déclenchée. Lorsque vous survolez l’URL en bas de Chrome, l’URL affichée est celle de l’accueil du site et non celle de la catégorie, peu importe l’action attendue.
(J’ai utilisé Custom Header Links pour ajouter un lien vers l’accueil. Je ne pense pas que cela soit lié au comportement décrit ci-dessus.)
Et je ne peux pas partager le site car les catégories par unité sont visibles uniquement par les membres du groupe.