UP permet de réaliser de nombreuses actions dans les articles et modules personnalisés.
UP permet d'insérer des éléments comme une vidéo ou des prévisions météo, de modifier le comportement d'une table pour la rendre responsive, d'ajouter du code CSS/JS sans risque de suppression par les éditeurs wysiwyg.
A l'image du couteau suisse, UP très discret si on n'a pas besoin de lui (zéro octet sur la page), servira de chef d'orchestre pour lancer l'action demandée. Seuls les fichiers nécessaires à cette action seront chargés par le navigateur client.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Hanc ergo intuens debet institutum illud quasi signum absolvere. Summus dolor plures dies manere non potest? Tu autem negas fortem esse quemquam posse, qui dolorem malum putet. Duo Reges: constructio interrete.
Ait enim se, si uratur, Quam hoc suave! dicturum. Itaque contra est, ac dicitis; Nondum autem explanatum satis, erat, quid maxime natura vellet. Summus dolor plures dies manere non potest? Venit enim mihi Platonis in mentem, quem accepimus primum hic disputare solitum; Sed mehercule pergrata mihi oratio tua.
Quis animo aequo videt eum, quem inpure ac flagitiose putet vivere? At ille non pertimuit saneque fidenter: Istis quidem ipsis verbis, inquit; Praeclare Laelius, et recte sofñw, illudque vere: O Publi, o gurges, Galloni! es homo miser, inquit. Primum in nostrane potestate est, quid meminerimus? Videmus igitur ut conquiescere ne infantes quidem possint. Portenta haec esse dicit, neque ea ratione ullo modo posse vivi; Quod dicit Epicurus etiam de voluptate, quae minime sint voluptates, eas obscurari saepe et obrui. Virtutis, magnitudinis animi, patientiae, fortitudinis fomentis dolor mitigari solet. Proclivi currit oratio. Cave putes quicquam esse verius. Traditur, inquit, ab Epicuro ratio neglegendi doloris. Ad eas enim res ab Epicuro praecepta dantur.
Quid vero? Ergo, si semel tristior effectus est, hilara vita amissa est? Quas enim kakaw Graeci appellant, vitia malo quam malitias nominare. An nisi populari fama? An haec ab eo non dicuntur? Qui autem de summo bono dissentit de tota philosophiae ratione dissentit. Ut optime, secundum naturam affectum esse possit. Non ego tecum iam ita iocabor, ut isdem his de rebus, cum L. Qui enim existimabit posse se miserum esse beatus non erit. Sit hoc ultimum bonorum, quod nunc a me defenditur;
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Hunc vos beatum; Ad eas enim res ab Epicuro praecepta dantur. Duo Reges: constructio interrete. Illum mallem levares, quo optimum atque humanissimum virum, Cn.
Age nunc isti doceant, vel tu potius quis enim ista melius? Haec et tu ita posuisti, et verba vestra sunt. Vitae autem degendae ratio maxime quidem illis placuit quieta. Itaque ad tempus ad Pisonem omnes. Sed tempus est, si videtur, et recta quidem ad me. Cupiditates non Epicuri divisione finiebat, sed sua satietate. Quamquam tu hanc copiosiorem etiam soles dicere.
Hoc loco tenere se Triarius non potuit. Non enim, si malum est dolor, carere eo malo satis est ad bene vivendum. Quo modo autem optimum, si bonum praeterea nullum est? Primum quid tu dicis breve? Hoc ipsum elegantius poni meliusque potuit. Tu autem negas fortem esse quemquam posse, qui dolorem malum putet. Ipse Epicurus fortasse redderet, ut Sextus Peducaeus, Sex. At ille non pertimuit saneque fidenter: Istis quidem ipsis verbis, inquit; Causa autem fuit huc veniendi ut quosdam hinc libros promerem. Cur igitur, inquam, res tam dissimiles eodem nomine appellas?
Sed haec ab Antiocho, familiari nostro, dicuntur multo melius et fortius, quam a Stasea dicebantur. Nam aliquando posse recte fieri dicunt nulla expectata nec quaesita voluptate. Stoici autem, quod finem bonorum in una virtute ponunt, similes sunt illorum; An hoc usque quaque, aliter in vita? Quamquam tu hanc copiosiorem etiam soles dicere. Quae cum essent dicta, discessimus. Videmusne ut pueri ne verberibus quidem a contemplandis rebus perquirendisque deterreantur? Quo modo?
Lorem ipsum dolor sit amet, consectetur adipiscing elit. At enim hic etiam dolore. Nos paucis ad haec additis finem faciamus aliquando; Utinam quidem dicerent alium alio beatiorem! Iam ruinas videres. Idemne, quod iucunde? Quid ergo hoc loco intellegit honestum? An quod ita callida est, ut optime possit architectari voluptates?
Ergo infelix una molestia, fellx rursus, cum is ipse anulus in praecordiis piscis inventus est? Verba tu fingas et ea dicas, quae non sentias? Quid, quod res alia tota est? Quorum sine causa fieri nihil putandum est. Nam si propter voluptatem, quae est ista laus, quae possit e macello peti? Collatio igitur ista te nihil iuvat. Sic exclusis sententiis reliquorum cum praeterea nulla esse possit, haec antiquorum valeat necesse est.
Nam prius a se poterit quisque discedere quam appetitum earum rerum, quae sibi conducant, amittere. Quamquam in hac divisione rem ipsam prorsus probo, elegantiam desidero. Duo Reges: constructio interrete. Inscite autem medicinae et gubernationis ultimum cum ultimo sapientiae comparatur. Illa argumenta propria videamus, cur omnia sint paria peccata. Diodorus, eius auditor, adiungit ad honestatem vacuitatem doloris. Aliena dixit in physicis nec ea ipsa, quae tibi probarentur; Non pugnem cum homine, cur tantum habeat in natura boni;
At coluit ipse amicitias. Atqui iste locus est, Piso, tibi etiam atque etiam confirmandus, inquam; Naturales divitias dixit parabiles esse, quod parvo esset natura contenta. Scio enim esse quosdam, qui quavis lingua philosophari possint;
3 :
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbo gravissimo affectus, exul, orbus, egens, torqueatur eculeo: quem hunc appellas, Zeno? Duo Reges: constructio interrete. Non risu potius quam oratione eiciendum?
Non potes, nisi retexueris illa. Minime vero istorum quidem, inquit. Cave putes quicquam esse verius. Non est igitur voluptas bonum. Quid autem habent admirationis, cum prope accesseris?
Recte, inquit, intellegis. Nam de isto magna dissensio est. Et quidem, inquit, vehementer errat; Ab his oratores, ab his imperatores ac rerum publicarum principes extiterunt. Nam ista vestra: Si gravis, brevis; Virtutis, magnitudinis animi, patientiae, fortitudinis fomentis dolor mitigari solet.
une vidéo locale
et beaucoup d'autres choses, bidules, trucs ....
🆙 addclass : ajoute une classe à un sélecteur CSS (body par défaut.) ➠ DEMO
Il est possible : - de cibler le parent d'un sélecteur CSS ou être relatif à l'emplacement du shortcode - de créer la règle CSS avec l'option 'css-head=.foo[color:red]' syntaxe {up addclass=nom_classe} Utilisation : changer l'image de fond à partir d'un article
selector = body: balise cible. Ne pas oublier le point pour une classe ou le # pour un ID
parent: 1 si on cible le parent de selector, 2 le grand-père, ...
css-head (base-css): code CSS pour head. Attention utiliser [] au lieu de {}
🆙 addcodehead : ajoute du code libre dans le head. ➠ DEMO
possibilité d'ajouter du code libre dans le head sans risque de nettoyage par un éditeur WYSIWYG syntaxe 1 {up addCodeHead=} syntaxe 2 {up addCodeHead=meta | property=og:title | content=Page title} Attention : l'option XXX doit être remplacée directement dans le shortcode par un nom d'attribut et sa valeur
🆙 addcsshead : ajoute du code ou fichier CSS dans le head. ➠ DEMO
sans risque de nettoyage par un éditeur WYSIWYG syntaxe 1 {up addCssHead=.foo[color:red]} Attention: mettre des [ ] au lieu de {} syntaxe 2 {up addCssHead=chemin_fichier_css} Utilisation : charger un fichier CSS spécifique à une page
addcsshead: code CSS. ATTENTION [ ] à la place des {}
filter: conditions. Voir doc action filter (v1.8)
🆙 addscript : ajoute du code ou un fichier JS ou JQuery ➠ DEMO
Par défaut, le code est ajouté dans le head. Si le paramètre principal est body, le code est inséré à la position du shortcode syntaxe {up addScript=body | jquery }code ou fichier{/up addScript}
addscript = head: ou body pour insérer le code à la position du shortcode
jquery = 0: 1: entoure avec appel jquery (sauf fichier)
filter: conditions. Voir doc action filter (v1.8)
🆙 anim_aos : affiche du contenu avec des animations sur scroll de page (librarie en pure JS) ➠ DEMO
syntaxe 1 : anime le contenu du shortcode {up anim-aos} votre texte {/up anim-aos} syntaxe 2 : anime les tags indiqués dans le contenu {up anim-aos | repeat=liste tags} contenu avec les tags cibles {/up anim-aos} syntaxe 3 : anime tous les tags indiqués à partir de la position du shortcode jusqu'à la fin de l'article {up anim-aos | repeat=liste tags}
type = EAN13: type de code-barres : C39,C39+,C39E,C39E+,C93,S25,S25+,I25,C128,C128A,C128B,EAN2,EAN5,EAN8,EAN13,UCPA,UPCE,MSI,MSI+,POSTNET,PLANET,RMS4CC,KIX,IMB,IMBPRE,CODABOR,CODE11,PHARMA,PHARMA2
format = html: format de sortie
height (h,hauteur) = 30: hauteur du code à barres
width (l,largeur,w) = 1: espacement des barres
color = #000: Couleur du code-barre. En mode PNG, on attend des valeurs RGB séparées par des virgules, sinon la couleur en forme texte.
align = center: alignement code barres et texte (left, center, right)
showtext = 1: montrer le texte ayant permis de générer le code barres
class: Class(s) pour bloc
style: Inline style pour bloc
css-head (base-css): Régles CSS définie par le webmaster (ajoutées dans head)
🆙 bbcode : Saisir du code HTML avec un éditeur WYSIWYG ➠ DEMO
multibox = 3-2-1: nombre de blocs sur la même ligne (desktop-tablet-mobile)
multibox-class = fg-vspace-between-1: classe(s) pour le bloc externe
multibox-style: style CSS pour le bloc externe
class: classe(s) pour la box
style: style inline pour la box
title (titre): titre. Si vide et demandé : on prend le premier hx du contenu
title-tag = h4: balise pour titre
title-class: class user pour titre
title-style: style inline pour titre
title-link-class: class user pour titre avec lien
title-link-style: style inline pour titre avec lien
subtitle: sous-titre
subtitle-tag = h5: mise en forme du sous-titre
subtitle-class: class user pour sous-titre
subtitle-style: style inline pour sous-titre
subtitle-link-class: class user pour sous-titre avec lien
subtitle-link-style: style inline pour sous-titre avec lien
image: image. Si vide et demandée : on prend la première image du contenu
image-alt: texte alternatif pour l'image. Par défaut, le nom du fichier humanisé
image-class: class user pour image
image-style: style inline pour image
image-link-class: class user pour image avec lien
image-link-style: style inline pour image avec lien
action: texte du bouton action
action-tag = div: mise en forme du bouton action
action-class: class user pour action
action-style: style inline pour action
action-link-class: class user pour action avec lien
action-link-style: style inline pour action avec lien
link: lien. . Si vide et demandé : on prend le premier lien sur title ou image
link-target: _blank pour nouvelle fenêtre
head-class: class pour le bloc entête. en général title, subtitle, image
head-style: style pour le bloc entête
body-class: class pour le bloc. en général content et action
body-style: style pour le bloc. en général content et action
css-head (base-css): style CSS inséré dans le HEAD
align-vertical = fg-vspace-between-1: type de repartition verticale en multibox
🆙 cache_cleaner : Efface les fichiers du cache ➠ DEMO
Supprime tous les fichiers PHP du sous-dossier indiqué en option. com_content par défaut syntaxe {up cache-cleaner=com_modules} // defaut : com_content
cache_cleaner = com_content: liste des dossiers du cache (séparateur: point-virgule)
🆙 cell : affiche de 1 à 6 blocs enfants sur une même ligne ➠ DEMO
syntaxe 1 : {up cell=x1-x2}contenu avec 2 blocs enfants{/up cell} syntaxe 2 : {up cell=x1-x2}contenu cell-1 {====} contenu cell-2{/up cell} x1-x2 sont les largeurs sur la base d'une grille de 12 colonnes exemple cell=6-6 pour 2 colonnes égales. On utilise les largeurs de la classe UP-width
@author: LOMART @version: UP-1.6 @license: GNU/GPLv3@tags: Body
corner: texte affiché dans le coin ou ruban
position = top-left: angle sous la forme top-left ou tl
width (l,largeur,w) = 100px: coté du carré
height (h,hauteur) = 100px: coté du carré
angle = 45: angle en valeur absolue
filter: chaine de conditions. Voir documentation filter
shadow = 0: ajoute une ombre 'orientée' au corner. La valeur indiquée est la force de l'ombre
color = #ffffff: couleur du texte
bgcolor = #ff0000: couleur de fond du coin
class: classes pour le coin
style: style CSS pour le coin
url: lien
target = _blank: ou _self pour ouvrir le site dans le même onglet
bloc-class: classe(s) pour bloc
bloc-style: style inline pour bloc
css-head (base-css): règles CSS définies par le webmaster (ajout dans le head)
🆙 countdown : affiche un compte à rebours ou une horloge digitale ➠ DEMO
syntaxe: {up countdown=201801010000} // délai jusqu'à une date {up countdown=120} // compte à rebours en secondes {up countdown} // affiche une horloge
countdown_simple: date cible ou délai si débute par +
intro-text: texte avant les afficheurs
close-text: texte après les afficheurs
prefix: texte avant valeur
suffix = lang[en=years,months,days,hours,minutes,seconds;fr=années,mois,jours,heures,minutes,secondes]: texte après valeur
elapsed-text = lang[en=Too late;fr=Trop tard]: Texte ou bbcode affiché si délai écoulé
model = inline: CSS de base pour la présentation
digit-view = YMDHMS: afficheurs. Mettre un X pour ne pas l'afficher. Pour les premiers non affichés, la valeur sera convertie et ajoutée au premier affiché
digit-class: classe(s) pour les chiffres
zero = 0: ajoute un zéro devant les heures, minutes et secondes
class: classe(s) pour bloc
style: style inline pour bloc
css-head (base-css): règles CSS définies par le webmaster (ajout dans le head)
filter:
🆙 counter : Ajoute un compteur avec prefix et suffix ➠ DEMO
width (l,largeur,w) = 0: largeur minimal (par défaut en pixels)
mono = 1: force la police en monospace
class: classe(s) pour bloc
style: style inline pour bloc
css-head (base-css): règles CSS définies par le webmaster (ajout dans le head)
start = 0: valeur de départ du compteur
end = 100: valeur d'arrivée du compteur
easing = swing: ou linear : effet
duration = 1500: durée du décompte en millisecondes
prefix: texte devant compteur. BBcode autorisé
suffix: texte après compteur. BBcode autorisé
🆙 csv2def : Conversion d'un contenu au format CSV en liste de définition (DL/DT/DD) ➠ DEMO
1/ {up csv2def=emplacement-fichier} // le contenu est lu dans un fichier 2/ {up csv2def} [=item=]definition [=item1; "item;2"; ...=] definition1 {===} definition 2 {/up csv2def}
HTML = b,a,span,strong,i,em,u,mark,small,img,code: 0= aucun traitement, 1=affiche le code, ou liste des tags a garder (strip_tags)
model = stack: nom de la classe modèle dans le fichier csv2list.css
leaders = 0: points de conduite
leaders-color: couleur points de conduite
class: classe(s) pour la balise UL
style: style inline pour la balise UL
col-style-*: style inline pour les nièmes balise SPAN
list-style: code hexadecimal et couleur du caractère (bb,red ou 26BD,#F00)
bgcolor: couleur de fond. #FFF par defaut
header = 0: 0: pas de titre, 1: première ligne contenu, titre colonne
header-class: classe(s) pour la première balise LI si titre
header-style: style pour la première balise LI si titre
header-bgcolor: couleur de fond du titre
footer = 0: 0: pas de pied, 1: dernière ligne contenu, pied colonne
footer-class: classe(s) pour la dernière balise LI si pied
footer-style: style pour la dernière balise LI si pied
footer-bgcolor: couleur de fond de la dernière ligne
css-head (base-css): règles CSS définies par le webmaster (ajout dans le head)
🆙 csv2table : Conversion d'un contenu au format CSV en table ➠ DEMO
1/ le contenu est lu dans un fichier {up csv2table=emplacement-fichier} 2/ le contenu est saisi entre les shortcodes {up csv2table} article 1;5€ "article 2";25€ {/up csv2table}
title-tag = h4: pour utiliser une autre balise pour les titres
title-class: classe pour le titre (onglet)
title-style: style inline pour le titre
content-class: classe pour le contenu
content-style: style inline pour le contenu
css-head (base-css):
🆙 field : Retourne la valeur d'un custom field pour le contenu courant ➠ DEMO
syntaxe {up field=id_or_name_field} // contenu brut du champ {up field=id_or_name_field | model=value} // contenu mis en forme du champ {up field=id_or_name_field | model=label : [b]%id_or_name_field%[/b]} // modèle avec BBCODE
model: modèle BBCODE avec id ou nom des champs entre signes %
separator: sépare les éléments d'un tableau pour rawvalue
tag:
class: classe(s) pour bloc
style: style inline pour bloc
css-head (base-css): style ajouté dans le HEAD de la page
🆙 file : Force le téléchargement d'un fichier ➠ DEMO
Propose un lien sur un fichier. Le fichier peut etre affiché (si prise en charge par navigateur client) ou le téléchargement peut-etre forcé avec changement de nom optionnel Une icône représentative est affichée devant le lien syntaxe {up file=nomfichier.ext | download | icon |target } texte du lien {/up file}
HTML = 0: 0= aucun traitement, 1=affiche le code, ou liste des tags à garder (ex: img,a)
EOL = 0: forcer un retour à la ligne
block (bloc) = div: balise principale
class: classe(s) pour bloc
style: style inline pour bloc
css-head (base-css): règles CSS définies par le webmaster (ajout dans le head)
🆙 filter : affiche du contenu si toutes les conditions sont remplies ➠ DEMO
Reprise du plugin LM-Filter de Lomart {up filter | datemax=20171225} contenu si vrai {====} contenu si faux {/up filter} Le contenu si faux est optionnel. Il doit être après le contenu si vrai et séparé par {===} (au minima 3 signes égal) {up filter | admin} contenu si vrai {====} contenu si faux {/up filter} --> affiche si admin connecté. admin=0 affiche si admin NON connecté
period: vrai entre ces dates AAAAMMJJHHMM-AAAAMMJJHHMM
day: liste des jours autorisés. 1=lundi, 7=dimanche
month: liste des mois autorisés. 1=janvier, ...
hmax: vrai jusqu'à cette heure HHMM
hmin: vrai à partir de cette heure HHMM
hperiod: vrai entre ces heures HHMM-HHMM
guest: vrai si utilisateur invité
admin: vrai si admin connecté
user: liste des userid autorisé. ex: 700,790
username: liste des username autorisé. ex: admin,lomart
group: liste des usergroup autorisé. ex: 8,12
lang: liste des langues autorisées. ex: fr,ca
mobile: vrai si affiché sur un mobile
homepage: vrai si affiché sur la page d'accueil
server-host: vrai si le domaine du serveur contient un des termes de la liste
server-ip: vrai si l'adresse IP du serveur des dans la liste
artid: vrai si l'ID de l'article courant est dans la liste
catid: vrai si l'ID de la catégorie de l'article courant est dans la liste
menuid: vrai si l'ID du menu actif est dans la liste
info = 0: affiche les valeurs actuelles des arguments pour les conditions
return-true = 1: valeur retournée si vrai et pas de contenu
return-false = 0: valeur retournée si faux et pas de contenu
🆙 flexauto : une grille responsive sur plusieurs colonnes ➠ DEMO
syntaxe : {up flexauto=x}contenu{/up flexauto} x=1 à 12 est le nombre de colonnes sur grand écran.
@author: Lomart @version: UP-1.0 - juillet 2017 @license: GNU/GPLv3@tags: layout-static
flexauto = 3: nombre de colonnes sur grand écran ou G-T-M
tablet = 2: nombre de colonnes sur moyen écran
mobile = 1: nombre de colonnes sur petit écran
class: classe(s) ajoutée(s) au bloc parent
style: style inline ajouté au bloc parent
bloc-style: classes et style inline ajoutés au bloc enfant
css-head (base-css):
🆙 flexbox : affiche des blocs enfants dans une grille FLEXBOX responsive ➠ DEMO
syntaxe 1 : {up flexbox=x1-x2}contenu avec plusieurs blocs enfants{/up flexbox} syntaxe 2 : {up flexbox=x1-x2}contenu bloc-1 {====} contenu bloc-2{/up flexbox} x1-x2 sont les largeurs relatives des colonnes exemple : flexbox=4-8 ou flexbox=33-66 pour 2 colonnes (équivalent: span4 et span8) Note : les options class-1 à class-6 et style-1 à style-6 sont à saisir directement dans le shortcode
flexbox: nombre de colonnes ou prefset sous la forme x-x-x-x
tablet: nombre de colonnes sur moyen écran sous la forme x-x-x-x
mobile: nombre de colonnes sur petit écran sous la forme x-x-x-x
class: class bloc principal
style: style inline bloc parent
class-*: class pour tous les blocs colonnes. sinon voir class-1 à class-6
style-*: style inline pour tous les blocs colonnes. sinon voir style-1 à style-6
bloc-style: classe et style inline ajoutés au bloc enfant
css-head (base-css):
🆙 folder_list : retourne la liste mise en forme du contenu d'un dossier sur le serveur ➠ DEMO
syntaxe {up folder_list=path | template=##file## (##size)} ##file## : chemin/nom.extension - pour copier/coller comme argument shortcode ##dirname## : chemin (sans slash final) ##basename## : nom et extension ##filename## : nom sans extension (sans le point) ##extension## : extension ##relpath## : chemin relatif au chemin passé comme principal argument ##size## : taille du fichier ##date## : date dernière modification Motclé disponible pour le dossier en format liste (ul/li) ##foldername## : nom du dossier (sans l'arboresccence) ##folderpath## : chemin et nom du dossier (avec l'arboresccence)
🆙 icon : uniformise l'appel des icônes. Evite de passer en mode code pour la saisie ➠ DEMO
syntaxe 1 : {up icon=nom_icone} syntaxe 2 : {up icon=Ux1F7A7} syntaxe 3 : {up icon=images/icone.png} syntaxe 4 : {up icon=Ux1F7A7,#F00,2rem} Important : indiquer dans prefs.ini le préfixe pour la police d'icones installée sur le site
🆙 image_gallery : Affiche une ou plusieurs images dans une lightbox ➠ DEMO
avec adaptation de la taille image à celle de l'appareil et légendes syntaxe 1 {up image-gallery=chemin_image | alt=texte} syntaxe 2 {up image-gallery=chemin_dossier} syntaxe 3 {up image-gallery}contenu avec des images{/up image-gallery}
options: liste des options supplémentaires . ex: showZoomCtrl:true,compass:true - Attention au min/maj. voir cette page
language: liste motclé (bylineLabel,loadButtonLabel,loadingLabel) + traduction. Exemple:bylineLabel:lang[en=by %s;fr:par %s], loadingLabel:Loading...
fullscreen = 0: 1 pour autoriser la vue plein écran
class: classe(s) ajoutées au bloc principal
style: style inline ajouté au bloc principal
css-head (base-css): règles CSS définies par le webmaster (ajout dans le head)
panorama: chemin image (il est rempli automatiquement)
preview: chemin image preview
type = equirectangular: type de l'image
title (titre): titre. pseudo BBCode et traduction acceptes
author: auteur. pseudo BBCode et traduction acceptes
authorURL: lien vers site auteur
autoLoad = 0: chargement auto de l'image
autoRotate = 0: rotation nombre de degrés par seconde
showControls = 1: 0 pour masquer tous les boutons
showZoomCtrl = 1: 0 pour masquer les boutons +/- du zoom
showFullscreenCtrl = 1: 0 pour masquer le bouton plein écran
hotSpotDebug = 0: 1 pour afficher les coordonnées hotspot dans la console
🆙 image_random : Affiche aléatoirement une des images d'un dossier ➠ DEMO
Le dossier peut être un pattern valide pour la fonction PHP GLOB syntaxe 1 : {up image-random=folder} syntaxe 2 : {up image-random}image 1{===}image 2 avec lien{/up image-random} syntaxe 3 : {up image-random}content 1{===}content 2{/up image-random}
image_secure: chemin relatif vers image jpg ou png
folder-source = images: dossier racine des images originales
folder-strip = images/image-secure: dossier avec les images fractionnées
nb-strip = 5: nombre de bandes
alt: texte alternatif pour image. Si vide: nom du fichier humanisé
quality = 80:
reset = 0: force la génération des images strip
delete-source = 0: supprime l'image source après génération des strips
class: classe(s) pour bloc
style: style inline pour bloc
css-head (base-css): style ajouté dans le HEAD de la page
🆙 imagemap : une image clicable et responsive ➠ DEMO
syntaxe {up imagemap=chemin_image} < area target="" alt="" title="" href="/" coords="" shape="">; < area target="" alt="" title="" href="/" coords="" shape="">; {/up imagemap} utiliser un générateur en ligne pour définir les zones : www.image-map.net
jcategories_list: id catégorie ou vide pour toutes
component = Content: nom de l'extension pour laquelle récupérer les catégories
level: nombre de niveaux. O = tous
main-tag = ul:
item-tag = li:
template (item-template) = ##title-link##[small] (id:##id##) ##access## ##extension## ##language##[/small] ##note##: modèle de mise en page. keywords + bbcode
model-note = [i class="t-blue"]%s[/i]:
style: classes et styles
css-head (base-css):
🆙 jcontent_by_categories (jnews) : liste des articles d'une catégorie ➠ DEMO
syntaxe : {up jcontent-by-categories=id-catégorie(s)} Une action très pratique pour lister les articles de la catégorie en cours, il suffit de taper {up article-category} Les mots-clés : ##title## ##title-link## ##subtitle## ##link## ##intro## ##intro-text## ##intro-text,100## ##content## ##image## ##image-src## ##image-alt## ##date-crea## ##date-modif## ##date-publish## ##author## ##note## ##cat## ##cat-link## ##new## ##featured## ##hits## ##tags-list##
author: filtre sur auteur: liste des id ou article, current
template (item-template): modèle de mise en page. Si vide le modèle est le contenu
main-tag = div: balise pour le bloc englobant tous les articles. 0 pour aucun
main-style: classes et styles inline pour bloc principal
main-class: classe(s) pour bloc principal (obsolète)
item-tag = div: balise pour le bloc d'un article. 0 pour aucun
item-style: classes et styles inline pour un article
item-class: classe(s) pour un article (obsolète)
date-format = %e %B %Y: format pour les dates
date-locale: localisation pour les dates. Par défaut, celle du navigateur client.
new-days = 30: nombre de jours depuis la création de l'article
new-html = [span class="badge bg-red t-white"]nouveau[/span]: code HTML pour badge NEW
featured-html = ⭐: code HTML pour article en vedette
no-content-html = Pas de nouvelles, bonnes nouvelles ...[br]No news, good news ...: texte si aucune correspondance. 0=aucun texte
image-src: lorempixel.com/300/300', // image par défaut
image-alt = news: image, texte alternatif par défaut
tags-list-prefix: texte avant les autres éventuels tags
tags-list-style = badge;margin-right:4px: classe ou style affecté à une balise span par mot-clé
tags-list-separator: séparateur entre mots-clés
css-head (base-css): code CSS dans le head
🆙 jcontent_by_subcat : Les articles par categories et sous-categories ➠ DEMO
syntaxe 1 : {up jcontent-by-subcat=id-categorie} liste des articles d'une catégorie et ses sous-catégories syntaxe 2 : {up jcontent-by-subcat} liste des articles de la catégorie en cours et ses sous-catégories syntaxe 3 : {up jcontent-by-subcat=0} liste des articles de toutes les catégories syntaxe 4 : {up jcontent-by-subcat}##title##{/up jcontent-by-subcat} variante : saisie template pour articles entre shortcodes Les mots-clés article: ##title## ##title-link## ##subtitle## ##link## ##intro## ##intro-text## ##intro-text,100## ##content## ##image## ##image-src## ##image-alt## ##date-crea## ##date-modif## ##date-publish## ##author## ##note## ##cat## ##new## ##featured## ##hits## ##tags-list## Les mots-clés catégorie: ##catpath## : Chemin des categories depuis la categorie racine. ex: si on demande la categorie 2 avec 3 niveaux (subcat=3): 2.1 > 2.1.1 > 2.1.1.1 ##title## ##title-link## ##link## : titre et lien de la categorie ##alias## ##note## ##id## ##count## : nombre d'articles dans la catégorie
tags-list-prefix: texte avant les autres eventuels tags
tags-list-style = badge;margin-right:4px: classe ou style affecte a une balise span par mot-cle
tags-list-separator: separateur entre mots-cles
path-separator = »: caractère ou bbcode pour séparer les items menus ou les catégories
path-current-class = b: style de l'élement terminal d'un chemin
path-parent-class = fs90: style des élements parents
path-order = asc: asc: élément terminal à la fin, desc : au début
path-link = 1: affiche les liens sur les éléments.
css-head (base-css): code CSS dans le head
🆙 jcontent_list (article_category) : liste des articles d'une catégorie ➠ DEMO
syntaxe : {up jcontent-list=id-catégorie(s)} Une action très pratique pour lister les articles de la catégorie en cours, il suffit de taper {up jcontent-list}
listup: style des puces (séparateur point-virgule) par niveaux (markers) (séparateur virgule)
class: classe(s) pour bloc principal
style: class ou style inline pour bloc principal
style-*: class ou style pour les niveaux des puces
start: indice pour début liste numérotée
ul-default = square;t-c1: type liste par défaut
ol-default = decimal;t-c1: type liste numérotée par défaut
valid-type = rounded-alpha,squared-alpha,circled-decimal,rounded-decimal,decimal-leading-zero,lower-alpha,upper-alpha,lower-roman,upper-roman: types de liste (numérotée) autorisés
fonticon = FontAwesome: police d'icônes installée sur le site
css-head (base-css): style ajouté dans le HEAD de la page
. Syntaxe : {up lorem=liste des arguments ci-dessous } - (integer) - Nombre de paragraphes (P) générés. 4 par défaut - short, medium, medium, verylong - La longueur moyenne d'un paragraphe. - decorate - ajoute bold, italic, ... - link - ajoute des liens. - ul - ajoute listes. - ol - ajoute listes ordonnées. - dl - ajoute listes description. - bq - ajoute bloc citation - code - ajoute des exemples de code. - headers - ajoute des titre hx. - allcaps - TOUT EN MAJUSCULES. - prude - version prude. - plaintext - Retourne text sans balise HTML. exemple appel : https://loripsum.net/api/2/code/decorate . Pour avoir un texte sans aucun tag, utilisez : {up lorem=2,plaintext | tag=0}. Même sans balise P, le nombre de paragraphes influe sur la longueur du texte retourné. v1.9.5 : strip_tags si max-char ou max-word
Syntaxe : {up lorempixel=type | width=xx | height=xx } --> type = abstract, animals, business, cats, city, food, nightlife, fashion, people nature, sports, technics, transport . Note : width & height sont les dimensions de l'image retournée par lorempixel. Pour l'afficher en remplissant le bloc parent, il faut ajouter style=width:100%
height (h,hauteur) = 100px: hauteur defaut pour scroll vetical
model = base: style CSS dans .upmq-*style*. aucun=none
out-class: classe(s) pour div out
out-style: style inline pour div out
msg-class: classe(s) pour div msg
msg-style: style inline pour div msg
lbl-class: classe(s) pour div label
lbl-style: style inline pour div label
lbl-pos: position label : left, right, top, bottom, none
lbl-nowrap = 0: 1 = label sur une ligne
direction = left: right, up, down
loop = -1: nombre d'affichage, -1 : infini
scrolldelay = 0: delai en millisecondes
scrollamount = 50: vitesse
circular = 1: mode carousel. si contenu plus large que .str_wrap
drag = 1: deplacement msg avec souris
runshort = 1: scroll si texte court (visible sans scroll)
hoverstop = 1: pause lors survol
inverthover = 0: scroll uniquement lors survol
🆙 media_plyr (vimeo,audio,video) : affiche un lecteur video ou audio qui s'inscrit au maxima dans son bloc parent ➠ DEMO
{up media_plyr=yt | code=bTqVqk7FSmY } {up media_plyr=vimeo | code=bTqVqk7FSmY } media_plyr : précisez yt ou youtube ou vimeo code : il s'agit du code figurant dans l'URL de la vidéo. . {up media_plyr=video | poster=url image | mp4 | webm | vtt | download } media_plyr : video pour indiquer l'URL vers la video. poster : nom de l'image fixe (obligatoire) mp4, webm, vtt, download : si URL non spécifiée, elle sera déduite de celle pour 'poster' . {up media_plyr=audio | mp3=url fichier mp3 | ogg} media_plyr : audio mp3 : url vers fichier MP3 (obligatoire) ogg : si URL non spécifiée, elle sera déduite de celle pour 'MP3' .
@author: DANEEL & LOMART @version: UP-1.1 du 30-09-2017 @license: GNU/GPLv3@tags: Media
media_plyr (vimeo,audio,video): type de lecture : youtube, vimeo, video ou audio
code: code de la video (à la fin de l'url youtube ou vimeo)
poster: URL de l'image (obligatoire)
mp4: URL du fichier MP4. Si vide, on utilise le nom de poster
webm: URL du fichier WEBM. Si vide, on utilise le nom de poster
vtt: URL du fichier VTT pour sous-titrage. Si vide, on utilise le nom de poster
download: URL du fichier téléchargeable. Si vide, on utilise le nom du fichier MP4
mp3: URL du fichier audio mp3. (obligatoire)
ogg: URL du fichier audio ogg. Si vide, on utilise le nom du fichier MP3
class: classe(s) ajoutée(s) au bloc extérieur
style: style inline ajouté au bloc extérieur
🆙 media_vimeo : affiche une video Viméo qui s'inscrit au maxima dans son bloc parent ➠ DEMO
{up media_vimeo=ID [| autoplay | portrait |title |muted |loop | play-on-visible]} ID : il s'agit du code figurant à la fin de l'URL de la vidéo. L'autoplay sous Firefox/Chrome est interdit si la video contient du son. Utilisez muted pour débloquer cela. voir https://vimeo.zendesk.com/hc/en-us/articles/115004485728-Autoplaying-and-looping-embedded-videos Les options title et portrait ne fonctionne que si la video le supporte.
@author: Pascal @version: UP-1.9.5 @license: GNU/GPLv3@tags: Media
media_vimeo: code de la video (à la fin de l'url vimeo)
width (l,largeur,w): largeur de la video en px ou %
autoplay = 0: démarrage automatique
title (titre) = 0: afficher le titre de la vidéo
portrait = 0: afficher l'image de profil de l'auteur (portrait)
loop = 0: boucle en fin de video
muted = 0: coupe le son
play-on-visible = 0: démarre et arrête la video selon sa visibilité sur l'ecran
class: classe pour bloc externe
style: code css libre pour bloc externe
🆙 media_youtube (youtube) : affiche une video Youtube qui s'inscrit au maxima dans son bloc parent ➠ DEMO
{up media-youtube=ID [|autoplay|play-on-visible|muted|loop]} ID : il s'agit du code figurant à la fin de l'URL de la vidéo.
@author: LOMART/ modifié par Pascal @version: UP-0.9 MAJ 21-05-2020 @license: GNU/GPLv3@tags: Media
media_youtube (youtube): code de la video (à la fin de l'url youtube)
width (l,largeur,w): largeur de la video en px ou %
autoplay = 0: demarrage automatique
loop = 0: boucle sur la video
muted = 0: coupe le son
play-on-visible = 0: démarre et arrête la video selon sa visibilité sur l'ecran
class: classe pour bloc externe
style: code css libre pour bloc externe
🆙 meteo_france : affiche le widget de Météo France ➠ DEMO
orientation = v: bloc horizontal (H) ou vertical (V)
block (bloc) = p: balise HTML autour du module météo
class: classe(s) pour bloc parent
style: style inline pour bloc parent
🆙 modal : Affiche du contenu dans une fenêtre modale (popup) ➠ DEMO
les types autorisés sont : inline, iframe, image, video, ajax syntaxe 1 : {up modal=contenu popup | label=texte du lien} syntaxe 2 : {up modal=vide,'html','images' ou contenu | label=texte lien}contenu{/up popup} si vide ou 'html' : le contenu du popup est le code entre les shortcodes si 'img' : chaque image du code entre les shortcodes sera un popup sinon on analyse la valeur du paramètre pour déterminer son type - video vimeo, youtube ou dailymotion {up modal=//youtu.be/H9fa9aWFbLM} - image unique si {up modal=images/xx.jpg} ou png, ... - bloc inline si id de bloc {up modal=#bloc} - iframe si url {up modal=//lomart.fr} ou {up modal=doc/xx.pdf} ou {up modal=?index/...} on peut forcer le type par type=inline, iframe, image, video, ajax
page_search = body: sélecteur CSS du bloc où rechercher. J3=.article-details OU J4=.com-content-article__body
search-top = 80px: position verticale de la zone de recherche. positif: top, négatif: bottom
search-left = 80px: position horizontale de la zone de recherche. positif=left, négatif= right
search-icon = loupe-64-red.png: image pour le bouton. Si le chemin n'est pas indiqué, l'image est dans le dossier de l'action.
search-text = lang[en=Search;fr=Rechercher]: texte indice dans la zone de recherche (Placeholder)
highlight-bg = yellow: couleur de surlignage des mots trouvés
class: classe(s) ajoutées au bloc principal
style: style inline ajouté au bloc principal
css-head (base-css): style ajouté dans le HEAD de la page
🆙 pdf : Affiche un PDF dans le contenu ou génère un bouton pour l'afficher dans une fenêtre ➠ DEMO
Le fichier PDF peut-être hébergé sur le serveur ou ailleurs (url absolue) syntaxe {up pdf=chemin du fichier PDF} integration libraire TurnJs http://turnjs.com/ depuis https://github.com/iberan/pdfjs-flipbook
method (methode) = PDFJS: ou Google, Embed ... ou 0
view = 1: ou Google, Embed ... ou 0
pdfjs-model = web: ou mobile (non opérationnel)
width (l,largeur,w) = 100%: largeur iframe
height (h,hauteur) = 500px:
download = 1: 1 pour afficher lien téléchargement
download-name: nom du fichier téléchargé
download-text = en=Download %s;fr=Telecharger %s: texte pour lien
download-icon: image affichée devant le lien
download-class: class(s) pour bouton lien seul
download-style: style inline pour bouton lien seul
btn (bouton) = 0: 1 pour afficher un bouton
btn-target = _blank: cible : _blank, _parent, popup ou _popup
btn-text = voir %s: texte pour bouton
btn-icon: image affichée devant le texte du bouton
btn-class = btn btn-primary: class(s) pour bouton lien seul
btn-style: style inline pour bouton lien seul
close-left = 0: croix de fermeture en haut à gauche. haut-droite par défaut
flip = 0: activer le mode flipbook uniquement si pdfJs
class: classe(s) pour bloc parent
style: style inline pour bloc parent
background: couleur fond perdu du PDF au format #rrggbb
🆙 pdf_gallery : Affiche une liste des PDF contenus dans un dossier ➠ DEMO
syntaxe {up pdf-gallery=dossier} Template pour définir le rendu ##name## : nom et extension du fichier sans le prefixe date ##full-name## : nom et extension du fichier avec le prefixe date ##human-name## : nom du fichier sans les tirets ##size## : taille du fichier ##date## : date du fichier ou prefixe date du nom de fichier ##info## : fichier .info de même nom que le PDF avec texte descriptif ##image## : fichier jpg ou png de même nom que le PDF ##image-view## : idem ##image## avec lien pour afficher PDF dans fenêtre modale ##btn-view## : lien pour afficher PDF dans fenêtre modale. Texte selon btn-view-text ##btn-download##, ##name-download## : lien pour télécharger le PDF. Texte selon btn-download-text ##preview## : vue du PDF avec la méthode jsviewer de l'action PDF. ATTENTION ##preview## charge tous les fichiers PDF lors de l'affichage de la page
css-head (base-css): style ajouté dans le HEAD de la page
width (l,largeur,w) = 250: largeur du popover
top (t) = false: true : popover au-dessus du trigger, sinon au-dessous
arrow = true: affichage de la fleche
offset = 0: décalage entre trigger et popover
viewportSideMargin = 10: Espace à laisser sur le côté lorsqu'il est contre le bord de la fenêtre (pixels)
fadeInDuration = 65: Durée de l'animation de fondu enchaîné popover (ms)
fadeOutDuration = 65: Durée de l'animation de fondu sortant du popover (ms)
preventHide = true: Empêcher le masquage lors d'un clic dans le popover
onShow: fonction à exécuter lorsque le popover est affiché. c'est l'élément déclencheur et le premier argument passé à la fonction est l'élément popover (tous deux enveloppés dans jQuery).
onHide: Callback à exécuter lorsque le popover est masqué. Identique à onShow.
🆙 printer : Ajoute un bouton pour proposer l'impression d'une partie de la page ➠ DEMO
syntaxe {up printer=texte bouton} le contenu à imprimer {/up printer}
class = uprm-btn: classe(s) pour les boutons. remplace la classe par défaut.
style: style inline pour les boutons
panel-style: classes et style pour le contenu (v2.6)
🆙 sameheight : égalise la hauteur des enfants directs du bloc (p ou div) ➠ DEMO
syntaxe: {up sameheight} < div>...< /div> < div>...< /div> {/up sameheight} note: gestion de la largeur avec l'option "css-head" qui ajoute du code css dans le head exemple: css-head=.sameheight[float:left;width:30%;] Attention: remplacer les {} par []
@author: Lomart @version: UP-1.0 - 07/2017 @license: GNU/GPLv3@credit: un vieux script de mes archives @tags: HTML
sameheight: inutilisé
class:
style:
css-head (base-css): code css libre dans le head. attention: ] au lieu de }
🆙 scroller : Défilement vertical d'une liste d'éléments ➠ DEMO
syntaxe : {up scroller}suite d'éléments{/up scroller} Attention : - définir un style="height:..." aux images (pas de height="...")
paginationSpeed = 0: durée changement en millisecondes
pagination = true: affiche pagination
paginationNumbers = 0: affiche numéros à l'intérieur des boutons de pagination
goToFirst = 1: Retour sur premier élément si lecture automatique à la fin
goToFirstSpeed = 1000: vitesse de l'option goToFirst en millisecondes
navigation = false: affichage boutons "next" et "prev"
navigationText = "prev,next": boutons sans texte: "navigationText: false"
responsive = true:
items = 0: nombre maxi d'éléments affichés en même temps sur la plus grande largeur de navigateur
itemsDesktop = [1199, 4]: cela vous permet de prédéfinir le nombre de diapositives visibles avec une largeur de navigateur particulière. Le format est [x, y] où x = largeur du navigateur et y = nombre de diapositives affichées. Par exemple, [1199,4] signifie que si (window <= 1199) {affiche 4 diapositives par page} Vous pouvez également utiliser "itemsDesktop: false" pour ignorer ces paramètres. Pour bien comprendre comment cela fonctionne, consultez ma démo personnalisée
itemsDesktopSmall = [979, 3]: voir ci-dessus
itemsTablet = [768, 2]: voir ci-dessus
itemsMobile = [479, 1]: voir ci-dessus
🆙 slideshow_billboard : Slideshow responsive d'images avec légendes et liens ➠ DEMO
syntaxe 1: {up slideshow_billboard=chemin_sous_dossier} syntaxe 2: {up slideshow_billboard} < img src="/images/img.jpg" alt="légende"> // image avec légende dans alt < a href="#">< img src="/img.jpg">< /a> // image avec lien {/up slideshow_billboard}
presentation = table: présentation du résultat : list,table,div ou 0
header: 1 ou vide pour utiliser les mots-clés, sinon titres séparés par des points-virgules
sort: type de tri par colonne sous la forme: i,3-f-s. i:int, s:string, f:float. ,3 indique un tri secondaire sur la 3e colonne
sort-first: nom ou position de la colonne triée en premier
col: alignement et largeur des colonnes sous la forme x-D-C5-100 pour rien-droite-centre 5%-100% (voir doc)
template (item-template): modèle mise en page
no-content-html = aucun résultat:
main-class = up: classe(s) pour bloc
main-style: style inline pour bloc
item-class: classe(s) pour ligne
item-style: style inline pour ligne
css-head (base-css): style ajouté dans le HEAD de la page
dbinfos: vide= liste des tables, nom_table=liste des colonnes
🆙 tab : affiche du contenu dans des panneaux avec onglets en haut, à gauche ou à droite. ➠ DEMO
Mode responsive avec gestion de l'espacement vertical {up tab} < h4>texte onglet< /h4> < p>texte du panneau< /p> < img src="/.."> {/up tab} Sur mobile ou sur demande, l'affichage est en mode accordion script JS adapté par Lomart pour gestion répartition verticale
title-tag = h4: balise utilisée pour les titres onglets
style: classe(s) et style(s) bloc principal
class: classe(s) bloc principal (obsolète)
title-style: classe(s) et style inline onglets
title-class: classe(s) onglets (obsolète)
content-style: classe(s) et style inline contenu
content-class: classe(s) contenu (obsolète)
auto: delai en millisecondes pour changement automatique d'onglet
espace-vertical = 1: 0, 1 ou 2 : niveau des éléments à répartir
css-head (base-css): règles CSS mises dans le head
plugin_type: accordion
side: left ou right
active_tab: 1 a N
content_display = block: interne, défini par espace-vertical
🆙 table_by_columns (table_par_colonnes) : tables responsives par empilement des lignes d'une colonne. ➠ DEMO
Syntaxe {up table-par-colonnes} < table> ... < /table> {/up table-par-colonnes} Les lignes sont empilées par colonnes. Très pratique pour des plannings
model = up-stacktable: nom d'un fichier CSS prévu par le webmaster pour toutes les tables de la page
max-height: permet de limiter la place en hauteur par l'affichage d'un ascenseur
key-width = 35%: largeur de la première colonne en vue responsive
title-style: style pour la ligne titre en vue responsive
style: style inline pour balise table
class: classe(s) pour balise table (obsolète)
css-head (base-css): permet d'ajouter des style à la table incluse
🆙 table_by_rows (table_par_lignes) : tables responsives par empilement des colonnes par lignes. ➠ DEMO
{up table-par-lignes} < table> ... < /table> {/up table-par-lignes} les colonnes sont empilées par lignes avec la possibilité de les déplacer, de les fusionner, de supprimer le titre, d'afficher seulement certaines colonnes. https://github.com/codefog/restables/blob/master/README.md . IMPERATIF : Les titres des colonnes doivent être dans une balise HEAD
css-head (base-css): permet d'ajouter des style à la table incluse
style: style inline pour balise table
class: classe(s) pour balise table (obsolète)
merge: fusion de colonnes. 1:[2,3],5:[6] = 2&3 avec 1 et 6 avec 5
move: déplacement colonne. 1:0,6:1 = 1 au debut et 6 en 2eme
skip: non visible. [3,5] = col 3 et 5 non visible
span: [2,4] = valeur sans libellé (eq: colspan)
🆙 table_fixe : tables responsives: ligne entete reste visible ➠ DEMO
{up table-fixe} < table> ... < /table> {/up table-fixe} col-left : nombre de colonnes toujours visible. Une barre de défilement est ajoutée pour les autres colonnes.
Inversion colonnes/lignes. les titres de colonnes deviennent la 1ère colonne et reste visibles. Une barre de défilement est ajoutée pour les autres colonnes. {up table-flip} < table> ... < /table> {/up table-flip}
🆙 upactionslist : Liste des UP actions avec infos et paramètres ➠ DEMO
{up upactionslist} toutes les actions {up upactionslist=action1, action2} une ou plusieurs actions {up upactionslist | md} fichier marknote {up upactionslist | csv} fichier CSV
options-separator = [b class="t-vert"] | [/b]: les underscrores sont remplacés par des espaces
prefset-exclude = icons,options: sections exclues
export-prefs: ou sous-dossier de TMP pour sauver l'arborescence. ex : up-pref-foo
action-class: classes et style pour le bloc d'une action
class: classe(s) pour bloc
style: style inline pour bloc
css-head (base-css): règles CSS définies par le webmaster (ajout dans le head)
🆙 upscsscompiler : Compile tous les fichiers SCSS dans les dossiers des actions ➠ DEMO
syntaxe: {up upscsscompiler} toutes les actions {up upscsscompiler=action1, action2} une ou plusieurs actions note: les fichiers SCSS & CSS sont en racine des dossiers actions
@author: LOMART @version: UP-1.2 @license: GNU/GPLv3@credit: https://github.com/leafo/scssphp @tags: UP
upscsscompiler: liste des actions à recompiler. toutes par défaut. 0 pour inactiver
Les parcours présentés sur le site de perlimpinpin.fr, sont des comptes rendus de randonnées à bicyclette et pédestres présentant un caractère subjectif et grandement conditionné par le niveau technique de leur auteur, sa maîtrise, le type de matériel utilisé ainsi que par les conditions de réalisation. Les renseignements donnés à titre indicatif, peuvent se révéler obsolètes par suite d'une évolution du terrain ou de l'environnement. En aucun cas perlimpinpin.fr n'incite les utilisateurs à fréquenter les randonnées décrites sur le site et ne pourra être tenu pour responsable de l'utilisation des topos, des traces GPS et des éventuels incidents pouvant survenir sur les parcours présentés.