php class
This commit is contained in:
@@ -81,64 +81,7 @@ jQuery(function ($) {
|
||||
settings: { adaptiveHeight: true }
|
||||
}]
|
||||
});
|
||||
|
||||
// Classes media → .wrapper-ressource
|
||||
$(".wrapper-ressource").each(function () {
|
||||
const media = $(this).find(".field--name-field-type-de-media").text().trim();
|
||||
const className = media
|
||||
.toLowerCase()
|
||||
.normalize("NFD").replace(/[\u0300-\u036f]/g, "")
|
||||
.replace(/[^a-z0-9]+/g, '-')
|
||||
.replace(/(^-|-$)/g, '');
|
||||
$(this).addClass('type-media-' + className);
|
||||
});
|
||||
console.log("classses media");
|
||||
|
||||
// SLIDES RECONSTRUCTION LORS DU CHARGEMENT COMPLET
|
||||
$(window).on('load', function () {
|
||||
const $viewContent = $('.path-ressources .view-content').first();
|
||||
if ($viewContent.length === 0) return;
|
||||
$viewContent.addClass('view-ressources-hidden');
|
||||
console.log($viewContent);
|
||||
|
||||
|
||||
const allowedTypes = [
|
||||
'type-publication-issue-du-programme-eqld',
|
||||
'type-paroles-de-laureats',
|
||||
'type-les-projets-en-images',
|
||||
'type-presse'
|
||||
];
|
||||
|
||||
// const $viewContent = $('.view-content');
|
||||
const allRows = $('.path-ressources .view-base-de-donnees .views-row').detach();
|
||||
function toLabel(str) {
|
||||
return str.replace('type-', '').replace(/-/g, ' ').replace(/\b\w/g, l => l.toUpperCase());
|
||||
}
|
||||
allowedTypes.forEach(type => {
|
||||
const label = toLabel(type);
|
||||
const $slide = $(`
|
||||
<div class="view-type-slide ${type}">
|
||||
<h3 class="${type}">${label}</h3>
|
||||
<div class="views-row-wrapper"></div>
|
||||
</div>
|
||||
`);
|
||||
$viewContent.append($slide);
|
||||
console.log(allowedTypes);
|
||||
|
||||
});
|
||||
|
||||
allRows.each(function () {
|
||||
const $row = $(this);
|
||||
const classList = $row.attr('class').split(/\s+/);
|
||||
classList.forEach(cls => {
|
||||
if (allowedTypes.includes(cls)) {
|
||||
$(`.view-type-slide.${cls} .views-row-wrapper`).append($row.clone(true, true));
|
||||
}
|
||||
});
|
||||
console.log(classList);
|
||||
|
||||
});
|
||||
|
||||
|
||||
$('.path-ressources .view:not(.view-partenaires) .view-content .view-type-slide .views-row-wrapper').slick({
|
||||
slidesToShow: 3,
|
||||
dots: false,
|
||||
@@ -155,19 +98,47 @@ jQuery(function ($) {
|
||||
}
|
||||
}]
|
||||
});
|
||||
// Supprimer les .view-type-slide originales générées par Drupal (vides ou non autorisées)
|
||||
$('.path-ressources .view-base-de-donnees .view-type-slide').each(function () {
|
||||
const classes = $(this).attr('class').split(/\s+/);
|
||||
const isCustom = classes.some(cls => allowedTypes.includes(cls));
|
||||
if (!isCustom) {
|
||||
$(this).remove();
|
||||
}
|
||||
console.log(classes);
|
||||
});
|
||||
|
||||
$viewContent.removeClass('view-ressources-hidden');
|
||||
|
||||
|
||||
///// fusion views-type-slide de class identique ////////////
|
||||
|
||||
const seen = new Set();
|
||||
|
||||
$('.view-type-slide').each(function () {
|
||||
const $slide = $(this);
|
||||
const classes = $slide.attr('class').split(/\s+/);
|
||||
const typeClass = classes.find(cls => cls.startsWith('type-'));
|
||||
|
||||
if (typeClass) {
|
||||
if (seen.has(typeClass)) {
|
||||
// Trouver le premier slide avec cette classe
|
||||
const $target = $('.view-type-slide.' + typeClass).first();
|
||||
|
||||
// Déplacer les rows de la slide actuelle vers la première
|
||||
$slide.find('.views-row').appendTo($target.find('.views-row-wrapper'));
|
||||
|
||||
// Supprimer la slide en double
|
||||
$slide.remove();
|
||||
} else {
|
||||
seen.add(typeClass);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
// Classes media → .wrapper-ressource
|
||||
$(".wrapper-ressource").each(function () {
|
||||
const media = $(this).find(".field--name-field-type-de-media").text().trim();
|
||||
const className = media
|
||||
.toLowerCase()
|
||||
.normalize("NFD").replace(/[\u0300-\u036f]/g, "")
|
||||
.replace(/[^a-z0-9]+/g, '-')
|
||||
.replace(/(^-|-$)/g, '');
|
||||
$(this).addClass('type-media-' + className);
|
||||
});
|
||||
console.log("classses media");
|
||||
|
||||
|
||||
|
||||
// Ouvrir les liens externes dans un nouvel onglet
|
||||
document.querySelectorAll('a[href^="http"]').forEach(link => {
|
||||
|
||||
Reference in New Issue
Block a user