Eclydre Web Manager > Développeur > Les markers > Les markers de bloc

Les markers de bloc

Les markers de bloc sont les fichiers du type bloc_CODECONTENU.php qui permettent d'étendre les possibilités de la fonction displayBloc().

DisplayBloc() est appelé pour l'affichage d'un bloc de contenu contribué dans la partie Administration.

Par défaut displayBloc() affiche un bloc avec titre, sous-titre, media, texte, lien + liste de liens + liste de fichiers à télécharger. Si le bloc à afficher ne correspond pas à ce modèle ou fait appel à des informations contenus dans des tables  spécifiques, il faut personnaliser le bloc de contenu en créant un marker de bloc.

  1. créer un fichier bloc_CODECONTENU.php dans /modules/xx/marker ou /marker
  2. ré-enregistrer la liste des extensions pour que le cms détecte ce nouveau fichier
Un type de contenu peut appeler le marker de bloc d'un autre type de contenu, pour cela spécifier :
bloc_include:bloc_CODECONTENU.php
dans les params du bloc de contenu.

La construction HTML d'un bloc par défaut

On appelle bloc par défaut ce que displayBloc() produit avec le type de contenu CORETEXT (texte standard)

HTML généré

< div class="blocewm bloc_coretext media_in_droite  liens_" id="b33587">
< h2>titre du bloc< /h2>
< div class="content  img_240_">
< div class="media">
< img height="180" width="240" alt="" src="/ewm/userdata/c_bloc/33/33587/240_33587_vignette_photo-007.jpg">
< /div>
< div class="info">
< div>
< h3 class="soustitre">sous-titre du bloc< /h3>
texte du bloc < br> sur plusieurs lignes < br>
< /div>
< ul class="bloc_lien_int">
< li class="item1 last-item">< a target="_self" href="http://www.eclydre.fr">< span>lien 1< /span>< /a>< /li>
< /ul>
< ul class="bloc_corefiles">
< li class="pdf last-item">< a target="_blank" href="/ewm/userdata/c_bloc_file/0/1/1_fichier_ap-3es-gpeicadem3-synth-505-0-fr.pdf">fichier à télécharger< /a> (< span class="file_extension">pdf < /span> - < span class="file_size">0.1 Mo< /span>)< span class="">< /span>< /li>
< /ul>
< /div>
< div class="clear">< /div>
< /div>
< div class="clear">< /div>
< /div>
 class bloc_coretext
 on pose une classe bloc_codecontenu pour pouvoir personnalisé l'affichage de ce type de contenu
 class media_in_droite
 on pose une classe qui indique la position de l'image dans le texte
id b33587
l'ID de la DIV principale vaut bIDBLOC
class content img_240_
Dans la div contenant le media et/ou le texte on indique le format de média demandé pour caler les css
ul bloc_lien_int
liste des liens
ul bloc_corefiles
listes des fichiers à télécharger
Le code HTML diffère légèrement selon la position du média, les types des liens (interne/externe) et la position du titre dans le bloc.

DisplayBloc() prend aussi en charge 2 autres div à usage personnalisé, innerBloc dans la div info après le texte et outerBloc après la div info.

Etendre les possibilités de displayBloc()

Pour étendre les possibilités de displayBloc(), on peut :
  • paramétrer le bloc directement dans le type de contenu via l'administration
  • manipuler les variables de displayBloc dans un marker de bloc et laisser displayBloc() faire son traitement par défaut
  • ajouter du traitement qui s'ajoute au traitement par défaut en manipulant la variable $displayBloc qui contient l'HTML généré par la fonction
  • complétement supplanter displayBloc() en forçant la valeur de $displayBloc et en court-circuitant le traitement par défaut de displayBloc()

Les variables disponibles dans un marker de bloc

Les mêmes variables globales que celles disponibles dans un marker de fonctionnalité + les variables de la fonction displayBloc():

 info  l'enregistrement du bloc en cours
 bParams  le tableau de params du bloc en cours
eType
le tableau des enregsitrements des types de contenu déjà chargés dans la page
displayBloc
la variable qui contient l'HTML en cours de génération
nobloc
=1 si on veut empêcher displayBloc d'exécuter son traitement au retour du marker de bloc
media
tableau du media (m_media) du bloc
vignette
tableau (getVignette()) du media du bloc
iLink
lien zoom sur le media
iAlt
alt du media
link
lien (doLink()) du bloc
bLink
=1 si présence d'un lien
tabL
tableau des liens
tabF
tableau des fichiers à télécharger
linkT
lien (doLink()) spécifique sur le titre
geo
tableau de test de géolocalisation sur le bloc (c_bloc uniquement)
doreturn
=1 si on veut que displayBloc() quitte au retour du marker de bloc
markerFollow
=1 si on veut continuer la recherche de marker de bloc
cache_bloc
réservé au fonctionnement du cache
cache_sql
réservé au fonctionnement du cache
formatv
format vignette
title
format titre, 1=caché
postitle
position du titre, BEFORE, TOP, TEXTE
style
classes à ajouter au bloc
typelien
type liste de lien (INT ou EXT)
formatl
format image lien si mode image activé
stylelien
classes à ajouter aux liens
calage
mode de calage media pour getVignette()
table
nom de la table relative au tableau info
forceimg
=1 pour forcer l'affichage d'un spacer si media absent.
innerBloc
permet d'ajouter du code HTML dans la div info après le texte
outerBloc
permet d'ajouter du code HTML après la div info



Les clés du tableau $info prises en charge par displayBloc()


 clé  description  manipulable directement dans un marker de bloc
 nom  titre du bloc
 oui
type
code zone de contenu

zorder
position du bloc

contenu
code du type de contenu
texte
texte du bloc
oui
url
lien sur titre/texte/media
non, utiliser $bLink et $link
target
target lien

pop_w
taille popup lien

pop_h
taille popup lien

c_page_id
ID lien vers page
non, utiliser $bLink et $link
status
état diffusion du bloc

vignette
image du bloc
non, utiliser $vignette
class
classes supplémentaires du bloc

format_vignette
format de l'image
non, utiliser $bLink et $link
format_titre
format titre, 1=caché, 2=h2, etc.
oui
pos_vignette
position vignette dans le bloc :
in_gauche
in_droite
gauche
droite
haut_gauche
haut_droite
haut_centre
bas_gauche
bas_droite
bas_centre
centre_droite
centre_gauche
oui
pos_titre
position titre dans le bloc :
BEFORE : avant la div content
TOP : en 1er dans la div content
TEXTE : juste au dessus du texte dans la div info
oui
margintop
marge haute en px sur le bloc

zoom
lien zoom jquery thickbox sur l'image

legende
légende sur l'image
oui
copyrightcopyright sur l'image
oui
soustitre
sous-titre du bloc
oui
btop
=1, affiche un lien retour haut de page
oui
m_media_id
ID m_media
non
m_file_id
ID m_file
non
nodiv
=yes, ne crée pas le div principal du bloc
oui si appel à displayBloc()
nocache
=1, empêche la création du cache bloc si le cache bloc est activé
oui si appel displayBloc()
type_lien
type des liens : EXT, INT

format_lien
format image lien

style_lien
style sur les liens

calage
mode calage des images:
border
bordertop
borderbottom
padding
paddingright
paddingtop
paddingbottom

table
nom table relative à l'enregistrement info

forceimg
force l'affichage du media même si absent

nolegende
=yes, n'affiche pas la legende

liens
tableau de liens :
url
c_page_id
nom
target
pop_w
pop_h
vignette
non, utiliser $tabL
files
tableau de fichiers à télécharger :
nom
fichier
non, utiliser $tabF
noid
=yes, n'affiche pas id="bID"

styles
ajoute un param styles="xxx" à la div principale

bloc_include
force l'appel au marker de bloc défini dans $info[bloc_include]

wrap
wrap du bloc, affiche les éléments (format marker #[]#) dans le code HTML fourni:
TITLE
MEDIA
TEXTE
FILES
LINKS
URL
/URL
URLNOM
/URLNOM
HREF
HREFNOM
SUBTITLE
LEGENDARY
HEADER
+ les clés de $info
oui
nohead
=yes, n'affiche pas le tag Hx sur le titre
oui
crop_texte
crop le texte
oui
no_titre_link
!=0, n'affiche pas le lien sur le titre
oui
mediawidth_inline
!=0, pose un style width: sur la div media
oui
mediawidth_inline_margin
!=0, ajoute une marge au style width sur la divb media
oui
mediawidth_inline_min
!=0, taille min sur style width sur la divb media oui
no_media_link
!=0, n'affiche pas le lien sur le media oui
no_soustitre_link
!=0, n'affiche pas le lien sur le sous-titre oui
no_texte_link
!=0, n'affiche pas le lien sur le texte oui
alt
alt sur l'image
oui
wrap_files_item
wrap sur fichier à télécharger :
EXT
SIZE
SIZE_KO
SIZE_MO
SIZE_GO
LINK
TEXTE
oui
innerBloc
code HTML supplémentaire dans la div info
oui
outerBloc
code HTML supplémentaire après la div info
oui
contentBloc
code HTML supplémentaire à la fin de la div content
oui