Aménagement disposition blog 6.21

This commit is contained in:
Fred Tempez 2022-10-07 20:13:55 +02:00
parent 9ad9a1df64
commit 525f9cf048
6 changed files with 126 additions and 555 deletions

View File

@ -1,448 +0,0 @@
{
"Se déconnecter ?": "",
"Mettre à jour ?": "",
"Confirmez-vous la suppression de cette page ?": "",
"Format incorrect": "",
"Les modifications que vous avez apportées ne seront peut-tre pas enregistrées.": "",
"Oui": "",
"Non": "",
"Identifiant": "",
"Mot de passe": "",
"Confirmation": "",
"Adresse mail": "",
"Prénom": "",
"Nom": "",
"Ne pas charger l'exemple de site (utilisateurs avancés)": "",
"Type de proxy": "",
"Adresse du proxy": "",
"Port du proxy": "",
"Thème": "",
"Installer": "",
"Consulter l'aide en ligne": "",
"favicon.ico": "",
"Pensez à supprimer le cache de votre navigateur si la favicon ne change pas.": "",
"faviconDark.ico": "",
"Sélectionnez une icône adaptée à un thème sombre.<br>Pensez à supprimer le cache de votre navigateur si la favicon ne change pas.": "",
"Fuseau horaire": "",
"Le fuseau horaire est utile au bon référencement": "",
"Message de consentement aux cookies": "",
"Activation obligatoire selon les lois françaises sauf si vous utilisez votre propre système de consentement.": "",
"Apache URL intelligentes": "",
"Supprime le point d'interrogation dans les URL, l'option est indisponible avec les autres serveurs Web": "",
"Rechercher une mise à jour en ligne": "",
"La vérification est quotidienne. Option désactivée si la configuration du serveur ne le permet pas.": "",
"Préserver le fichier htaccess racine": "",
"Lors d'une mise à jour automatique, conserve le fichier htaccess de la racine du site.": "",
"Sauvegarde automatique quotidienne du site": "",
"Une archive contenant le dossier /site/data est copiée dans le dossier /'site/backup'. La sauvegarde est conservée pendant 30 jours.</p><p>Les fichiers du site ne sont pas sauvegardés automatiquement. Activation recommandée.": "",
"Site en maintenance": "",
"Clé de l'API <a href='https://app.screenshotapi.net/' target='_blank'>ScreenShotApi</a>": "",
"Saisir la clé, puis valider le formulaire avant de cliquer sur le bouton de génération": "",
"Autoriser les robots à référencer le site": "",
"Facebook": "",
"Saisissez votre ID : https://www.facebook.com/[ID].": "",
"Instagram": "",
"Saisissez votre ID : https://www.instagram.com/[ID].": "",
"Chaîne Youtube": "",
"ID de la chaîne : https://www.youtube.com/channel/[ID].": "",
"Youtube": "",
"Saisissez votre ID Utilisateur : https://www.youtube.com/user/[ID].": "",
"Twitter": "",
"Saisissez votre ID : https://twitter.com/[ID].": "",
"Pinterest": "",
"Saisissez votre ID : https://pinterest.com/[ID].": "",
"Linkedin": "",
"Saisissez votre ID Linkedin : https://fr.linkedin.com/in/[ID].": "",
"Github": "",
"Saisissez votre ID Github : https://github.com/[ID].": "",
"Dévoiler le mot de passe": "",
"Le survom d'une icône de l'écran de connexion affiche temporairement le mot de passe.": "",
"Déconnexion automatique": "",
"Déconnecte les sessions ouvertes précédemment sur d'autres navigateurs ou terminaux. Activation recommandée.": "",
"Redirection vers la connexion": "",
"Cette redirection ne concerne que les pages d'administration du site.": "",
"Limitation des tentatives": "",
"Blocage après échecs": "",
"Captcha à la connexion": "",
"Captcha complexe": "",
"Option recommandée pour sécuriser la connexion. S'applique à tous les captchas du site. Le captcha simple se limite à une addition de nombres de 0 à 10. Le captcha complexe utilise quatre opérations de nombres de 0 à 20. Activation recommandée.": "",
"Type de captcha": "",
"Activer la journalisation": "",
"Anonymat des adresses IP": "",
"La réglementation française impose un anonymat de niveau 2": "",
"Activer SMTP": "",
"Paramètres à utiliser lorsque votre hébergeur ne propose pas la fonctionnalité d'envoi de mail.": "",
"Adresse SMTP": "",
"Port SMTP": "",
"Authentification": "",
"Nom utilisateur": "",
"Sécurité": "",
"Nouvelle page ou barre latérale": "",
"Éditer la page": "",
"Cloner la page": "",
"Supprimer la page": "",
"Gérer les modules": "",
"Configuration": "",
"Utilisateurs": "",
"Déconnecter": "",
"Éditer": "",
"Supprimer": "",
"Importer des utilisateurs en masse": "",
"Ajouter un utilisateur": "",
"Pseudo": "",
"Signature": "",
"Groupe": "",
"Impossible de modifier votre propre groupe.": "",
"Partage de fichiers autorisé": "",
"Ce membre pourra téléverser ou télécharger des fichiers dans le dossier 'partage' et ses sous-dossiers": "",
"L'identifiant est défini lors de la création du compte, il ne peut pas être modifié.": "",
"Ancien mot de passe": "",
"Nouveau mot de passe": "",
"Séparateur": "",
"Envoyer un message de confirmation": "",
"Prévenir l'utilisateur par mail": "",
"Copie de sites inter-langues": "",
"Titre du site": "",
"Il apparat dans la barre de titre et les partages sur les réseaux sociaux.": "",
"Description du site": "",
"La description d'une page participe à son référencement, chaque page doit disposer d'une description différente.": "",
"Accueil du site": "",
"La première page que vos visiteurs verront.": "",
"Accès interdit, erreur 403": "",
"Cette page ne doit pas apparaître dans l'arborescence du menu. Créez une page orpheline.": "",
"Page inexistante, erreur 404": "",
"Mentions légales": "",
"Les mentions légales sont obligatoires en France. Une option du pied de page ajoute un lien discret vers cette page.": "",
"Recherche dans le site": "",
"Sélectionnez une page contenant le module 'Recherche'. Une option du pied de page ajoute un lien discret vers cette page.": "",
"Rechercher": "",
"Plan du site": "",
"Cookies": "",
"Titre de la fenêtre": "",
"Saisissez le titre de la fenêtre de gestion des cookies.": "",
"Bouton de validation": "",
"Cookies Zwii": "",
"Saisissez le message pour les cookies déposés par ZwiiCMS, nécessaires au fonctionnement et qui ne nécessitent pas de consentement.": "",
"Lien page des mentions légales.": "",
"Saisissez le texte du lien vers les mentions légales,la page doit être définie dans la configuration du site.": "",
"Pages et les modules de": "",
"Vers": "",
"Supprimer le module": "",
"Sauvegarder le module dans le gestionnaire de fichiers": "",
"Sauvegarder et télécharger le module": "",
"Installer depuis le catalogue en ligne": "",
"Installer depuis une archive": "",
"Mettre à jour le module orphelin": "",
"Télécharger le module dans le gestionnaire de fichiers": "",
"Connexion": "",
"Ajouter une fonte": "",
"Fonte en ligne": "",
"Fonte installée": "",
"Identifiant (sans espace ni majuscule)": "",
"Famille": "",
"Url du fichier de fonte": "",
"Réinitialiser avec le thème par défaut": "",
"Arrière plan": "",
"Couleur visible en l'absence d'une image.<br />Le curseur horizontal règle le niveau de transparence.": "",
"Titres": "",
"Texte": "",
"Arrière plan des champs": "",
"Couleur visible en l'absence d'une image.<br />Le curseur horizontal règle le niveau de transparence. La couleur du texte est automatique.": "",
"Bordure des champs": "",
"Bouton Aide": "",
"Bouton retour": "",
"Bouton standard": "",
"Bouton effacement": "",
"Bouton validation": "",
"Police du texte": "",
"Taille": "",
"Police des titres": "",
"Réinitialiser la feuille de style": "",
"Rester connecté sur ce navigateur": "",
"Effacer la page": "",
"Dupliquer la page": "",
"Titre": "",
"Titre court": "",
"Le titre court est affiché dans les menus. Il peut être identique au titre de la page.": "",
"Titre masqué dans la page": "",
"Fil d'Ariane dans le titre": "",
"Affiche le nom de la page parente suivi du nom de la page, le titre ne doit pas être masqué.": "",
"Position": "",
"'Ne pas afficher' crée une page orpheline non accessible par le biais des menus.": "",
"Page parent": "",
"Emplacement :": "",
"Le petit accessoire est aligné à droite de la barre de menu, c'est un emplacement réservé aux drapeaux et au bouton de connexion.": "",
"Page non cliquable": "",
"Option active en mode déconnecté uniquement, les pages enfants sont visibles et accessibles.": "",
"S'ouvre dans un nouvel onglet": "",
"Apparence": "",
"Sélectionnez une image ou une icône de petite dimension": "",
"Masquer les pages enfants dans le menu horizontal": "",
"Masquer la page et les pages enfants dans le menu d'une barre latérale": "",
"La page est affichée dans un menu horizontal mais pas dans le menu vertical d'une barre latérale.": "",
"Module": "",
"En cas de changement de module, les données du module précédent seront supprimées.": "",
"Position du module": "",
"En position libre ajoutez le module en plaçant [MODULE] à l'endroit voulu dans votre page.": "",
"Feuille de style spécifique à la page.": "",
"Instructions JS ou jquery spécifiques à la page.": "",
"Gabarits de page - Barre latérale": "",
"Pour définir la page comme barre latérale, choisissez l'option dans la liste.": "",
"Barre latérale gauche :": "",
"Barre latérale droite :": "",
"Contenu du menu vertical": "",
"Par défaut le menu est affiché APRES le contenu de la page. Pour le positionner à un emplacement précis, insérez [MENU] dans le contenu de la page.": "",
"Groupe requis pour accéder à la page :": "",
"Méta-titre": "",
"Méta-description": "",
"Module de la page": "",
"Paramètres de la sauvegarde": "",
"Sécurité de la connexion": "",
"Journalisation": "",
"Paramètres": "",
"SMTP": "",
"Archive à restaurer": "",
"Mise à jour automatisée": "",
"Capture d'écran Open Graph": "",
"Référencement": "",
"Réseaux sociaux": "",
"Renseignez les champs ci-dessous pour finaliser l'installation.": "",
"Compte administrateur": "",
"Options avancées": "",
"Mise à jour de ZwiiCMS": "",
"vers ZwiiCMS": "",
"Afin d'assurer le bon fonctionnement de Zwii, veuillez ne pas fermer cette page avant la fin de l'opération.": "",
"1/4 : Préparation...": "",
"2/4 : Téléchargement...": "",
"3/4 : Installation...": "",
"4/4 : Configuration...": "",
"Une erreur est survenue lors de l'étape :": "",
"Mise à jour terminée avec succès.": "",
"Notre site est actuellement en maintenance. Nous sommes désolés pour la gêne occasionnée et faisons notre possible pour être rapidement de retour.": "",
"Installer les données d'un module": "",
"Sauvegarde": "",
"Modules orphelins": "",
"Modules configurés": "",
"Modules installés": "",
"Données des modules": "",
"Version n\u00b0": "",
"Du": "",
"Auteur :": "",
"Licence :": "",
"Installer ou mettre à jour un module téléchargé": "",
"Couleurs": "",
"Mise en forme du texte": "",
"Image": "",
"Identité de la fonte": "",
"Disposition": "",
"Contenu personnalisé": "",
"Informations": "",
"Mise en forme du titre": "",
"Papier peint": "",
"Largeur de l'image :": "",
"Hauteur de l'image :": "",
"largeur du site": "",
"Ratio :": "",
"largeur de site :": "",
"Installer un thème archivé (site ou administration)": "",
"Sauvegarde du thème dans le": "",
"gestionnaire de fichiers": "",
"Télécharger le thème": "",
"Contenu": "",
"Mise en forme des titres": "",
"Copie des traductions rédigées": "",
"Traduite ZwiiCMS": "",
"Traduction du contenu": "",
"Identité": "",
"Permissions :": "",
"Accès aux pages privées": "",
"Ajout - Édition - Suppression de fichiers": "",
"Administration complète du site": "",
"Importation de fichier plat CSV": "",
"Confirmer la suppression de cet utilisateur": "",
"Sauvegarde générée avec succès.": "",
"Erreur : sauvegarde non générée !": "",
"Sauvegarder": "",
"La sauvegarde des fichiers peut prendre du temps. Continuer ?": "",
"Supprimer toutes les sauvegardes automatiques ?": "",
"Préparation de la mise à jour": "",
"Téléchargement et validation de l'archive": "",
"Installation": "",
"Confirmer la suppression de la page": "",
"Confirmer la suppression des données du module": "",
"Ne pas afficher": "",
"Au début": "",
"Après": "",
"Confirmer la désinstallation du module": "",
"Confirmer la dissociation du module de cette page": "",
"Sauvegarder les données du site": "",
"Restaurer les données du site": "",
"Vider dossier sauvegardes auto": "",
"Copier sauvegardes auto": "",
"Réinstaller": "",
"Script dans head": "",
"Script dans body": "",
"Générer une capture Open Graph": "",
"Générer sitemap.xml et robots.txt": "",
"Télécharger la liste": "",
"Réinitialiser la liste": "",
"Télécharger le journal": "",
"Réinitialiser le journal": "",
"Fond du sous-menu": "",
"Liens": "",
"Arrière plan des blocs": "",
"Bordure des blocs": "",
"Boutons": "",
"Thème du site": "",
"Thème de l'administration": "",
"Appliquer": "",
"Enregistrer": "",
"Éditeur CSS": "",
"Éditeur JS": "",
"Accueil": "",
"Aide": "",
"Fontes": "",
"Gestion": "",
"Administration": "",
"Langues": "",
"Interface": "",
"Langues du contenu": "",
"Traductions installées": "",
"Langue de l'administration": "",
"Langues installées": "",
"Dans quelle langue utiliserez-vous Zwii ?": "",
"Maintenance": "",
"Scripts externes": "",
"Version": "",
"Catégorie": "",
"Page": "",
"Copie de contenus localisés": "",
"Nouveau contenu localisé": "",
"Sélectionnez une langue": "",
"Langues disponibles": "",
"Sélectionnez la langue à copier vers une langue cible": "",
"De": "",
"vers": "",
"Action non autorisée": "",
"Modifications enregistrées": "",
"URL incorrecte": "",
"Paramètres de la localisation": "",
"Mise à jour": "",
"Gestion des modules": "",
"Installer un module": "",
"Pied de page": "",
"Bannière": "",
"Thèmes": "",
"Menu": "",
"Site": "",
"Gestion des thèmes": "",
"Nouvel utilisateur": "",
"Mot de passe oublié": "",
"Réinitialisation du mot de passe": "",
"Importation d'utilisateurs": "",
"Contenu avancé": "",
"Mise en page": "",
"Permission et référencement": "",
"Texte du bouton": "",
"Dimension de l'aperçu": "",
"Aide dans la zone de saisie": "",
"Masquer le contenu de la page dans les résultats": "",
"Surlignement": "",
"Le curseur horizontal règle le niveau de transparence, le placer tout à la gauche pour un surlignement invisible.": "",
"Contenu multilangues": "",
"Extension": "",
"Permission": "",
"Emplacement dans le menu": "",
"Mots approchants": "",
"Confirmer la suppression de cette traduction du site": "",
"Options de configuration": "",
"Rédiger un article": "",
"Longueur des articles": "",
"Articles par page": "",
"Lien du flux RSS": "",
"Texte de l'étiquette": "",
"Brouillon": "",
"Publier": "",
"Permalink": "",
"Taille optimale de l'image de couverture : 920 x 350 pixels.": "",
"Largeur de l'image": "",
"Le texte de l'article est adapté autour de l'image": "",
"Masquer l'image dans l'article": "",
"Auteur": "",
"Date de publication": "",
"L'article n'est visible qu'après la date de publication prévue.": "",
"Edition - Suppression": "",
"Les utilisateurs des groupes supérieurs accèdent à l'article sans restriction": "",
"Fermer les commentaires": "",
"Approbation par un modérateur": "",
"Caractères par commentaire": "",
"Choix du nombre maximum de caractères pour chaque commentaire de l'article, mise en forme html comprise.": "",
"Notification par email": "",
"Edition - Suppression": "",
"Éditer l'article": "",
"Effacer l'article": "",
"État": "",
"Commentaires": "",
"Masquer l'image de couverture dans l'article": "",
"Éditeurs = éditeurs + administrateurs<br/> Membres = membres + éditeurs + administrateurs": "",
"Rédiger une news": "",
"Flux limité aux articles de la première page.": "",
"Etiquette RSS": "",
"Nombre de colonnes": "",
"Abrégé de l'article": "",
"Bordure": "",
"Épaisseur": "",
"Couleur de la bordure": "",
"Couleur du fond": "",
"La news est consultable à partir du moment ou la date de publication est passée.": "",
"Date de dépublication": "",
"La news est consultable Jusqu'à cette date si elle est spécifiée. Pour annuler la date de dépublication, sélectionnez une date antérieure à la publication.": "",
"Voir et exporter les données du formulaire": "",
"Captcha": "",
"Etiquette du bouton de soumission": "",
"Laissez vide afin de conserver le texte par défaut.": "",
"Redirection après soumission du formulaire": "",
"Page du site :": "",
"Alignement du formulaire": "",
"Décalage à gauche": "",
"Largeur": "",
"Envoyer par mail les données saisies :": "",
"Sélectionnez au moins un groupe, un utilisateur ou saisissez un email. Votre serveur doit autoriser les envois de mail.": "",
"Sujet du mail": "",
"Aux groupes à partir de": "",
"A un membre": "",
"A une adresse email": "",
"Un email ou une liste de diffusion": "",
"Sélectionner le type de signature": "",
"Sélectionnez le logo du site": "",
"Sélectionner la largeur du logo": "",
"Répondre à l'expéditeur depuis le mail de notification": "",
"Cette option permet de réponse directement à l'expéditeur du message si celui-ci a indiqué un email valide.": "",
"Effacer toutes les données": "",
"Exporter toutes les données": "",
"Rédiger un sujet": "",
"Longueur des sujets": "",
"Sujets par page": "",
"Masquer l'index des galeries lorsque le module ne contient qu'une seule galerie": "",
"Cette option est active lorsque le module ne contient qu'une seule galerie, elle permet d'éviter la page listant toutes les galeries et affiche directement la galerie": "",
"Position du bouton de retour à l'index des galeries": "",
"Alignement du bouton de retour": "",
"Hauteur": "",
"Alignement": "",
"Marge": "",
"Le curseur horizontal règle le niveau de transparence.": "",
"Arrondi des angles": "",
"Ombre": "",
"Couleur de l'ombre": "",
"Opacité au survol": "",
"Dossier cible": "",
"Tri des images": "",
"Tri manuel : déplacez le images dans le tableau ci-dessous. L'ordre est sauvegardé automatiquement.": "",
"Mode plein écran automatique": "",
"A l'ouverture de la galerie, la première image est affichée en plein écran.": "",
"Afficher le contenu de la page avec la galerie": "",
"Le contenu de la page est toujours affiché dans la liste des galeries. Quand une seule galerie est disponible, il est possible de l'afficher directement, cette option est utile dans ce cas précis.": "",
"Lien de redirection": "",
"Le lien de redirection peut contenir une URL standard, ou pointer vers l'ancre d'une page du site <em>(/page#ancre)</em> ; <em>(/?page#ancre)</em>": "",
"Nombre de redirections": ""
}

View File

@ -15,7 +15,7 @@
class blog extends common {
const VERSION = '6.2';
const VERSION = '6.21';
const REALNAME = 'Blog';
const DELETE = true;
const UPDATE = '0.0';
@ -96,11 +96,11 @@ class blog extends common {
];
public static $articlesLenght = [
0 => 'Intégralité des articles, disposition moderne',
200 => '200 signes',
400 => '400 signes',
600 => '600 signes',
800 => '800 signes'
0 => 'Article complet en pleine page',
200 => 'En tableau, 200 signes',
400 => 'En tableau, 400 signes',
600 => 'En tableau, 600 signes',
800 => 'En tableau, 800 signes'
];
// Permissions d'un article

View File

@ -12,7 +12,8 @@
<div class="row verticalAlignMiddle">
<div class="col12 blogDate">
<!-- bloc signature et date -->
<?php echo $module::$articleSignature . ' - ';?>
<?php echo template::ico('user'); ?>
<?php echo $module::$articleSignature;?>
<?php echo template::ico('calendar-empty'); ?>
<?php $date = mb_detect_encoding(\PHP81_BC\strftime('%d %B %Y', $this->getData(['module', $this->getUrl(0), 'posts', $this->getUrl(1), 'publishedOn'])), 'UTF-8', true)
? \PHP81_BC\strftime('%d %B %Y', $this->getData(['module', $this->getUrl(0), 'posts', $this->getUrl(1), 'publishedOn']))

View File

@ -53,7 +53,7 @@
float: left;
margin-top: 5px;
}
.blogDate {
.blogDate, .blogEdit {
font-size:0.8em;
font-style: italic;
/*

View File

@ -1,154 +1,172 @@
<?php if($module::$articles): ?>
<?php if ($module::$articles) : ?>
<article>
<?php foreach($module::$articles as $articleId => $article): ?>
<?php if ($this->getData(['module', $this->getUrl(0), 'config', 'articlesLenght']) === 0): ?>
<?php foreach ($module::$articles as $articleId => $article) : ?>
<?php if ($this->getData(['module', $this->getUrl(0), 'config', 'articlesLenght']) === 0) : ?>
<div class="row">
<div class="col12">
<h2 class="blogTitle">
<a href="<?php echo helper::baseUrl() . $this->getUrl(0) . '/' . $articleId; ?>">
<?php echo $article['title']; ?>
</a>
<a href="<?php echo helper::baseUrl() . $this->getUrl(0) . '/' . $articleId; ?>">
<?php echo $article['title']; ?>
</a>
</h2>
</div>
</div>
<div class="row">
<div class="col6 blogEdit">
<!-- bloc signature et date -->
<?php echo template::ico('user'); ?>
<?php echo $module->signature($this->getData(['module', $this->getUrl(0), 'posts', $articleId, 'userId'])); ?>
<?php echo template::ico('calendar-empty'); ?>
<?php $date = mb_detect_encoding(\PHP81_BC\strftime('%d %B %Y', $this->getData(['module', $this->getUrl(0), 'posts', $articleId, 'publishedOn'])), 'UTF-8', true)
? \PHP81_BC\strftime('%d %B %Y', $this->getData(['module', $this->getUrl(0), 'posts', $articleId, 'publishedOn']))
: utf8_encode(\PHP81_BC\strftime('%d %B %Y', $this->getData(['module', $this->getUrl(0), 'posts', $articleId, 'publishedOn'])));
$heure = mb_detect_encoding(\PHP81_BC\strftime('%H:%M', $this->getData(['module', $this->getUrl(0), 'posts', $articleId, 'publishedOn'])), 'UTF-8', true)
? \PHP81_BC\strftime('%H:%M', $this->getData(['module', $this->getUrl(0), 'posts', $articleId, 'publishedOn']))
: utf8_encode(\PHP81_BC\strftime('%H:%M', $this->getData(['module', $this->getUrl(0), 'posts', $articleId, 'publishedOn'])));
echo $date . ' à ' . $heure;
?>
</div>
</div>
<div class="row">
<div class="col12">
<?php if ( $this->getData(['module', $this->getUrl(0), 'posts', $articleId, 'picture']) &&
file_exists( self::FILE_DIR.'source/' . $this->getData(['module', $this->getUrl(0), 'posts', $articleId, 'picture'])) ): ?>
<?php $pictureSize = $this->getData(['module', $this->getUrl(0), 'posts', $articleId, 'pictureSize']) === null ? '100' : $this->getData(['module', $this->getUrl(0), 'posts', $articleId, 'pictureSize']); ?>
<?php if ($this->getData(['module', $this->getUrl(0), 'posts', $articleId, 'hidePicture']) == false) {
echo '<img class="blogArticlePicture blogArticlePicture' . $this->getData(['module', $this->getUrl(0), 'posts', $articleId, 'picturePosition']) .
' pict' . $pictureSize . '" src="' . helper::baseUrl(false) . self::FILE_DIR.'source/' . $this->getData(['module', $this->getUrl(0), 'posts', $articleId, 'picture']) .
<?php if (
$this->getData(['module', $this->getUrl(0), 'posts', $articleId, 'picture']) &&
file_exists(self::FILE_DIR . 'source/' . $this->getData(['module', $this->getUrl(0), 'posts', $articleId, 'picture']))
) : ?>
<?php $pictureSize = $this->getData(['module', $this->getUrl(0), 'posts', $articleId, 'pictureSize']) === null ? '100' : $this->getData(['module', $this->getUrl(0), 'posts', $articleId, 'pictureSize']); ?>
<?php if ($this->getData(['module', $this->getUrl(0), 'posts', $articleId, 'hidePicture']) == false) {
echo '<img class="blogArticlePicture blogArticlePicture' . $this->getData(['module', $this->getUrl(0), 'posts', $articleId, 'picturePosition']) .
' pict' . $pictureSize . '" src="' . helper::baseUrl(false) . self::FILE_DIR . 'source/' . $this->getData(['module', $this->getUrl(0), 'posts', $articleId, 'picture']) .
'" alt="' . $this->getData(['module', $this->getUrl(0), 'posts', $articleId, 'picture']) . '">';
} ?>
} ?>
<?php endif; ?>
<?php echo $this->getData(['module', $this->getUrl(0),'posts', $articleId, 'content']); ?>
<?php echo $this->getData(['module', $this->getUrl(0), 'posts', $articleId, 'content']); ?>
</div>
</div>
<div class="row verticalAlignMiddle">
<div class="col6 blogDate">
<!-- bloc signature et date -->
<?php echo $module->signature($this->getData(['module', $this->getUrl(0), 'posts', $articleId, 'userId']));?>
<?php echo template::ico('calendar-empty'); ?>
<?php $date = mb_detect_encoding(\PHP81_BC\strftime('%d %B %Y', $this->getData(['module', $this->getUrl(0), 'posts', $articleId, 'publishedOn'])), 'UTF-8', true)
? \PHP81_BC\strftime('%d %B %Y', $this->getData(['module', $this->getUrl(0), 'posts', $articleId, 'publishedOn']))
: utf8_encode(\PHP81_BC\strftime('%d %B %Y', $this->getData(['module', $this->getUrl(0), 'posts', $articleId, 'publishedOn'])));
$heure = mb_detect_encoding(\PHP81_BC\strftime('%H:%M', $this->getData(['module', $this->getUrl(0), 'posts', $articleId, 'publishedOn'])), 'UTF-8', true)
? \PHP81_BC\strftime('%H:%M', $this->getData(['module', $this->getUrl(0), 'posts', $articleId, 'publishedOn']))
: utf8_encode(\PHP81_BC\strftime('%H:%M', $this->getData(['module', $this->getUrl(0), 'posts', $articleId, 'publishedOn'])));
echo $date . ' à ' . $heure;
?>
<div class="col6 blogEdit">
<!-- Bloc edition -->
<?php if (
$this->getUser('password') === $this->getInput('ZWII_USER_PASSWORD')
AND
and
( // Propriétaire
(
$this->getData(['module', $this->getUrl(0), 'posts', $articleId,'editConsent']) === $module::EDIT_OWNER
AND ( $this->getData(['module', $this->getUrl(0), 'posts', $articleId,'userId']) === $this->getUser('id')
OR $this->getUser('group') === self::GROUP_ADMIN )
)
OR (
($this->getData(['module', $this->getUrl(0), 'posts', $articleId, 'editConsent']) === $module::EDIT_OWNER
and ($this->getData(['module', $this->getUrl(0), 'posts', $articleId, 'userId']) === $this->getUser('id')
or $this->getUser('group') === self::GROUP_ADMIN)
)
or (
// Groupe
( $this->getData(['module', $this->getUrl(0), 'posts', $articleId,'editConsent']) === self::GROUP_ADMIN
OR $this->getData(['module', $this->getUrl(0), 'posts', $articleId,'editConsent']) === self::GROUP_MODERATOR)
AND $this->getUser('group') >= $this->getData(['module',$this->getUrl(0), 'posts', $articleId,'editConsent'])
)
OR (
($this->getData(['module', $this->getUrl(0), 'posts', $articleId, 'editConsent']) === self::GROUP_ADMIN
or $this->getData(['module', $this->getUrl(0), 'posts', $articleId, 'editConsent']) === self::GROUP_MODERATOR)
and $this->getUser('group') >= $this->getData(['module', $this->getUrl(0), 'posts', $articleId, 'editConsent'])
)
or (
// Tout le monde
$this->getData(['module', $this->getUrl(0), 'posts', $articleId,'editConsent']) === $module::EDIT_ALL
AND $this->getUser('group') >= $module::$actions['config']
$this->getData(['module', $this->getUrl(0), 'posts', $articleId, 'editConsent']) === $module::EDIT_ALL
and $this->getUser('group') >= $module::$actions['config']
)
)
): ?>
<a href ="<?php echo helper::baseUrl() . $this->getUrl(0) . '/edit/' .$articleId . '/' . $_SESSION['csrf'];?>">
<?php echo template::ico('pencil');?> Éditer
</a>
) : ?>
<a href="<?php echo helper::baseUrl() . $this->getUrl(0) . '/edit/' . $articleId . '/' . $_SESSION['csrf']; ?>">
<?php echo template::ico('pencil'); ?> Éditer
</a>
<?php endif; ?>
</div>
<div class="col6 textAlignRight" id="comment">
<?php if($this->getData(['module', $this->getUrl(0), 'posts', $articleId, 'commentClose'])): ?>
<?php if ($this->getData(['module', $this->getUrl(0), 'posts', $articleId, 'commentClose'])) : ?>
<p>Cet article ne reçoit pas de commentaire.</p>
<?php else: ?>
<?php else : ?>
<p>
<?php echo template::ico('comment', ['margin' => 'right']); ?>
<?php
if ($module::$comments[$articleId] > 0) {
echo '<a href="'. helper::baseUrl() . $this->getUrl(0) . '/' . $articleId .'">';
echo $module::$comments[$articleId] . ' commentaire' . ($module::$comments[$articleId] > 1 ? 's' : '');
echo '</a>';
} else {
echo 'Pas encore de commentaire';
}
if ($module::$comments[$articleId] > 0) {
echo '<a href="' . helper::baseUrl() . $this->getUrl(0) . '/' . $articleId . '">';
echo $module::$comments[$articleId] . ' commentaire' . ($module::$comments[$articleId] > 1 ? 's' : '');
echo '</a>';
} else {
echo 'Pas encore de commentaire';
}
?>
</p>
<?php endif; ?>
</div>
</div>
<?php else: ?>
<?php else : ?>
<div class="row rowArticle">
<?php if ( $article['picture'] &&
file_exists( self::FILE_DIR . 'source/' . $article['picture']) ):?>
<?php if (
$article['picture'] &&
file_exists(self::FILE_DIR . 'source/' . $article['picture'])
) : ?>
<div class="col3">
<?php // Déterminer le nom de la miniature
$parts = explode('/',$article['picture']);
$thumb = str_replace ($parts[(count($parts)-1)],'mini_' . $parts[(count($parts)-1)], $article['picture']);
// Créer la miniature si manquante
if (!file_exists( self::FILE_DIR . 'thumb/' . $thumb) ) {
$this->makeThumb( self::FILE_DIR . 'source/' . $article['picture'],
self::FILE_DIR . 'thumb/' . $thumb,
self::THUMBS_WIDTH);
}
$parts = explode('/', $article['picture']);
$thumb = str_replace($parts[(count($parts) - 1)], 'mini_' . $parts[(count($parts) - 1)], $article['picture']);
// Créer la miniature si manquante
if (!file_exists(self::FILE_DIR . 'thumb/' . $thumb)) {
$this->makeThumb(
self::FILE_DIR . 'source/' . $article['picture'],
self::FILE_DIR . 'thumb/' . $thumb,
self::THUMBS_WIDTH
);
}
?>
<a href="<?php echo helper::baseUrl() . $this->getUrl(0) . '/' . $articleId; ?>" class="blogPicture">
<img src="<?php echo helper::baseUrl(false) . self::FILE_DIR . 'thumb/' . $thumb; ?>" alt="<?php echo $article['picture']; ?>">
</a>
</div>
<div class="col9">
<?php else:?>
<div class="col12">
<?php endif;?>
<h2 class="blogTitle">
<a href="<?php echo helper::baseUrl() . $this->getUrl(0) . '/' . $articleId; ?>">
<?php echo $article['title']; ?>
</a>
</h2>
<div class="blogComment">
<a href="<?php echo helper::baseUrl() . $this->getUrl(0) . '/' . $articleId; ?>#comment">
<?php if ($article['comment']): ?>
<?php echo count($article['comment']); ?>
<?php endif; ?>
</a>
<?php echo template::ico('comment', ['margin' => 'left']); ?>
</div>
<div class="blogDate">
<?php else : ?>
<div class="col12">
<?php endif; ?>
<h2 class="blogTitle">
<a href="<?php echo helper::baseUrl() . $this->getUrl(0) . '/' . $articleId; ?>">
<?php echo $article['title']; ?>
</a>
</h2>
<div class="blogComment">
<a href="<?php echo helper::baseUrl() . $this->getUrl(0) . '/' . $articleId; ?>#comment">
<?php if ($article['comment']) : ?>
<?php echo count($article['comment']); ?>
<?php endif; ?>
</a>
<?php echo template::ico('comment', ['margin' => 'left']); ?>
</div>
<div class="blogDate">
<!-- bloc signature et date -->
<?php echo template::ico('user'); ?>
<?php echo $module->signature($this->getData(['module', $this->getUrl(0), 'posts', $articleId, 'userId']));?>
<?php echo template::ico('calendar-empty'); ?>
<?php echo mb_detect_encoding(\PHP81_BC\strftime('%d %B %Y - %H:%M', $article['publishedOn']), 'UTF-8', true)
? \PHP81_BC\strftime('%d %B %Y', $article['publishedOn'])
: utf8_encode(\PHP81_BC\strftime('%d %B %Y', $article['publishedOn'])); ?>
</div>
<p class="blogContent">
<?php $lenght = $this->getData(['module',$this->getUrl(0), 'config', 'articlesLenght']) !== 0 ? $this->getData(['module',$this->getUrl(0), 'config', 'articlesLenght']) : 500 ?>
<?php echo helper::subword(strip_tags($article['content'],'<br><p>'), 0, $lenght); ?>...
<?php $date = mb_detect_encoding(\PHP81_BC\strftime('%d %B %Y', $this->getData(['module', $this->getUrl(0), 'posts', $this->getUrl(1), 'publishedOn'])), 'UTF-8', true)
? \PHP81_BC\strftime('%d %B %Y', $this->getData(['module', $this->getUrl(0), 'posts', $this->getUrl(1), 'publishedOn']))
: utf8_encode(\PHP81_BC\strftime('%d %B %Y', $this->getData(['module', $this->getUrl(0), 'posts', $this->getUrl(1), 'publishedOn'])));
$heure = mb_detect_encoding(\PHP81_BC\strftime('%H:%M', $this->getData(['module', $this->getUrl(0), 'posts', $this->getUrl(1), 'publishedOn'])), 'UTF-8', true)
? \PHP81_BC\strftime('%H:%M', $this->getData(['module', $this->getUrl(0), 'posts', $this->getUrl(1), 'publishedOn']))
: utf8_encode(\PHP81_BC\strftime('%H:%M', $this->getData(['module', $this->getUrl(0), 'posts', $this->getUrl(1), 'publishedOn'])));
echo $date . ' à ' . $heure;
?>
</div>
<p class="blogContent">
<?php $lenght = $this->getData(['module', $this->getUrl(0), 'config', 'articlesLenght']) !== 0 ? $this->getData(['module', $this->getUrl(0), 'config', 'articlesLenght']) : 500 ?>
<?php echo helper::subword(strip_tags($article['content'], '<br><p>'), 0, $lenght); ?>...
<a href="<?php echo helper::baseUrl() . $this->getUrl(0) . '/' . $articleId; ?>">Lire la suite</a>
</p>
</div>
</div>
<?php endif; ?>
<?php endforeach; ?>
</div>
</div>
<?php endif; ?>
<?php endforeach; ?>
</article>
<?php echo $module::$pages; ?>
<?php if ($this->getData(['module',$this->getUrl(0), 'config', 'feeds'])): ?>
<?php if ($this->getData(['module', $this->getUrl(0), 'config', 'feeds'])) : ?>
<div id="rssFeed">
<a type="application/rss+xml" href="<?php echo helper::baseUrl() . $this->getUrl(0) . '/rss'; ?>" target="_blank">
<img src='module/blog/ressource/feed-icon-16.gif' />
<img src='module/blog/ressource/feed-icon-16.gif' />
<?php
echo '<p>' . $this->getData(['module',$this->getUrl(0), 'config', 'feedsLabel']) . '</p>' ;
echo '<p>' . $this->getData(['module', $this->getUrl(0), 'config', 'feedsLabel']) . '</p>';
?>
</a>
</div>
<?php endif; ?>
<?php else: ?>
<?php else : ?>
<?php echo template::speech('Aucun article.'); ?>
<?php endif; ?>
<?php endif; ?>

View File

@ -14,11 +14,11 @@
<div class="row">
<div class="col12">
<div class="block">
<h4>Disposition de la liste des articles</h4>
<h4>Index des articles</h4>
<div class="row">
<div class="col6">
<?php echo template::select('blogOptionArticlesLenght', $module::$articlesLenght, [
'label' => 'Longueur des articles',
'label' => 'Disposition',
'selected' => $this->getData(['module', $this->getUrl(0), 'config', 'articlesLenght'])
]); ?>
</div>