CINXE.COM

Lodel + Solr – Lodel

<!doctype html> <html lang="fr-FR" class="respect-color-scheme-preference"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1" /> <title>Lodel + Solr &#8211; Lodel</title> <meta name='robots' content='max-image-preview:large' /> <link rel="icon" type="image/png" href="https://lodel.hypotheses.org/wp-content/cleo-commons/images/favicon.png" /><link rel='dns-prefetch' href='//lodel.hypotheses.org' /> <link rel="alternate" type="application/rss+xml" title="Lodel &raquo; Flux" href="https://lodel.hypotheses.org/feed" /> <link rel="alternate" type="application/rss+xml" title="Lodel &raquo; Flux des commentaires" href="https://lodel.hypotheses.org/comments/feed" /> <link rel="alternate" type="application/rss+xml" title="Lodel &raquo; Lodel + Solr Flux des commentaires" href="https://lodel.hypotheses.org/242/feed" /> <script> window._wpemojiSettings = {"baseUrl":"https:\/\/s.w.org\/images\/core\/emoji\/15.0.3\/72x72\/","ext":".png","svgUrl":"https:\/\/s.w.org\/images\/core\/emoji\/15.0.3\/svg\/","svgExt":".svg","source":{"concatemoji":"https:\/\/lodel.hypotheses.org\/wp-includes\/js\/wp-emoji-release.min.js?ver=6.6.2"}}; /*! This file is auto-generated */ !function(i,n){var o,s,e;function c(e){try{var t={supportTests:e,timestamp:(new Date).valueOf()};sessionStorage.setItem(o,JSON.stringify(t))}catch(e){}}function p(e,t,n){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);var t=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data),r=(e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(n,0,0),new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data));return t.every(function(e,t){return e===r[t]})}function u(e,t,n){switch(t){case"flag":return n(e,"\ud83c\udff3\ufe0f\u200d\u26a7\ufe0f","\ud83c\udff3\ufe0f\u200b\u26a7\ufe0f")?!1:!n(e,"\ud83c\uddfa\ud83c\uddf3","\ud83c\uddfa\u200b\ud83c\uddf3")&&!n(e,"\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc65\udb40\udc6e\udb40\udc67\udb40\udc7f","\ud83c\udff4\u200b\udb40\udc67\u200b\udb40\udc62\u200b\udb40\udc65\u200b\udb40\udc6e\u200b\udb40\udc67\u200b\udb40\udc7f");case"emoji":return!n(e,"\ud83d\udc26\u200d\u2b1b","\ud83d\udc26\u200b\u2b1b")}return!1}function f(e,t,n){var r="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?new OffscreenCanvas(300,150):i.createElement("canvas"),a=r.getContext("2d",{willReadFrequently:!0}),o=(a.textBaseline="top",a.font="600 32px Arial",{});return e.forEach(function(e){o[e]=t(a,e,n)}),o}function t(e){var t=i.createElement("script");t.src=e,t.defer=!0,i.head.appendChild(t)}"undefined"!=typeof Promise&&(o="wpEmojiSettingsSupports",s=["flag","emoji"],n.supports={everything:!0,everythingExceptFlag:!0},e=new Promise(function(e){i.addEventListener("DOMContentLoaded",e,{once:!0})}),new Promise(function(t){var n=function(){try{var e=JSON.parse(sessionStorage.getItem(o));if("object"==typeof e&&"number"==typeof e.timestamp&&(new Date).valueOf()<e.timestamp+604800&&"object"==typeof e.supportTests)return e.supportTests}catch(e){}return null}();if(!n){if("undefined"!=typeof Worker&&"undefined"!=typeof OffscreenCanvas&&"undefined"!=typeof URL&&URL.createObjectURL&&"undefined"!=typeof Blob)try{var e="postMessage("+f.toString()+"("+[JSON.stringify(s),u.toString(),p.toString()].join(",")+"));",r=new Blob([e],{type:"text/javascript"}),a=new Worker(URL.createObjectURL(r),{name:"wpTestEmojiSupports"});return void(a.onmessage=function(e){c(n=e.data),a.terminate(),t(n)})}catch(e){}c(n=f(s,u,p))}t(n)}).then(function(e){for(var t in e)n.supports[t]=e[t],n.supports.everything=n.supports.everything&&n.supports[t],"flag"!==t&&(n.supports.everythingExceptFlag=n.supports.everythingExceptFlag&&n.supports[t]);n.supports.everythingExceptFlag=n.supports.everythingExceptFlag&&!n.supports.flag,n.DOMReady=!1,n.readyCallback=function(){n.DOMReady=!0}}).then(function(){return e}).then(function(){var e;n.supports.everything||(n.readyCallback(),(e=n.source||{}).concatemoji?t(e.concatemoji):e.wpemoji&&e.twemoji&&(t(e.twemoji),t(e.wpemoji)))}))}((window,document),window._wpemojiSettings); </script> <style id='wp-emoji-styles-inline-css'> img.wp-smiley, img.emoji { display: inline !important; border: none !important; box-shadow: none !important; height: 1em !important; width: 1em !important; margin: 0 0.07em !important; vertical-align: -0.1em !important; background: none !important; padding: 0 !important; } </style> <link rel='stylesheet' id='wp-block-library-css' href='https://lodel.hypotheses.org/wp-includes/css/dist/block-library/style.min.css?ver=6.6.2' media='all' /> <style id='wp-block-library-theme-inline-css'> .wp-block-audio :where(figcaption){color:#555;font-size:13px;text-align:center}.is-dark-theme .wp-block-audio :where(figcaption){color:#ffffffa6}.wp-block-audio{margin:0 0 1em}.wp-block-code{border:1px solid #ccc;border-radius:4px;font-family:Menlo,Consolas,monaco,monospace;padding:.8em 1em}.wp-block-embed :where(figcaption){color:#555;font-size:13px;text-align:center}.is-dark-theme .wp-block-embed :where(figcaption){color:#ffffffa6}.wp-block-embed{margin:0 0 1em}.blocks-gallery-caption{color:#555;font-size:13px;text-align:center}.is-dark-theme .blocks-gallery-caption{color:#ffffffa6}:root :where(.wp-block-image figcaption){color:#555;font-size:13px;text-align:center}.is-dark-theme :root :where(.wp-block-image figcaption){color:#ffffffa6}.wp-block-image{margin:0 0 1em}.wp-block-pullquote{border-bottom:4px solid;border-top:4px solid;color:currentColor;margin-bottom:1.75em}.wp-block-pullquote cite,.wp-block-pullquote footer,.wp-block-pullquote__citation{color:currentColor;font-size:.8125em;font-style:normal;text-transform:uppercase}.wp-block-quote{border-left:.25em solid;margin:0 0 1.75em;padding-left:1em}.wp-block-quote cite,.wp-block-quote footer{color:currentColor;font-size:.8125em;font-style:normal;position:relative}.wp-block-quote.has-text-align-right{border-left:none;border-right:.25em solid;padding-left:0;padding-right:1em}.wp-block-quote.has-text-align-center{border:none;padding-left:0}.wp-block-quote.is-large,.wp-block-quote.is-style-large,.wp-block-quote.is-style-plain{border:none}.wp-block-search .wp-block-search__label{font-weight:700}.wp-block-search__button{border:1px solid #ccc;padding:.375em .625em}:where(.wp-block-group.has-background){padding:1.25em 2.375em}.wp-block-separator.has-css-opacity{opacity:.4}.wp-block-separator{border:none;border-bottom:2px solid;margin-left:auto;margin-right:auto}.wp-block-separator.has-alpha-channel-opacity{opacity:1}.wp-block-separator:not(.is-style-wide):not(.is-style-dots){width:100px}.wp-block-separator.has-background:not(.is-style-dots){border-bottom:none;height:1px}.wp-block-separator.has-background:not(.is-style-wide):not(.is-style-dots){height:2px}.wp-block-table{margin:0 0 1em}.wp-block-table td,.wp-block-table th{word-break:normal}.wp-block-table :where(figcaption){color:#555;font-size:13px;text-align:center}.is-dark-theme .wp-block-table :where(figcaption){color:#ffffffa6}.wp-block-video :where(figcaption){color:#555;font-size:13px;text-align:center}.is-dark-theme .wp-block-video :where(figcaption){color:#ffffffa6}.wp-block-video{margin:0 0 1em}:root :where(.wp-block-template-part.has-background){margin-bottom:0;margin-top:0;padding:1.25em 2.375em} </style> <link rel='stylesheet' id='twenty-twenty-one-custom-color-overrides-css' href='https://lodel.hypotheses.org/wp-content/themes/twentytwentyone/assets/css/custom-color-overrides.css?ver=1.0' media='all' /> <style id='twenty-twenty-one-custom-color-overrides-inline-css'> :root .editor-styles-wrapper{--global--color-background: #ffffff;--global--color-primary: #000;--global--color-secondary: #000;--button--color-background: #000;--button--color-text-hover: #000;} .is-dark-theme.is-dark-theme .editor-styles-wrapper { --global--color-background: var(--global--color-dark-gray); --global--color-primary: var(--global--color-light-gray); --global--color-secondary: var(--global--color-light-gray); --button--color-text: var(--global--color-background); --button--color-text-hover: var(--global--color-secondary); --button--color-text-active: var(--global--color-secondary); --button--color-background: var(--global--color-secondary); --button--color-background-active: var(--global--color-background); --global--color-border: #9ea1a7; --table--stripes-border-color: rgba(240, 240, 240, 0.15); --table--stripes-background-color: rgba(240, 240, 240, 0.15); } </style> <style id='classic-theme-styles-inline-css'> /*! This file is auto-generated */ .wp-block-button__link{color:#fff;background-color:#32373c;border-radius:9999px;box-shadow:none;text-decoration:none;padding:calc(.667em + 2px) calc(1.333em + 2px);font-size:1.125em}.wp-block-file__button{background:#32373c;color:#fff;text-decoration:none} </style> <style id='global-styles-inline-css'> :root{--wp--preset--aspect-ratio--square: 1;--wp--preset--aspect-ratio--4-3: 4/3;--wp--preset--aspect-ratio--3-4: 3/4;--wp--preset--aspect-ratio--3-2: 3/2;--wp--preset--aspect-ratio--2-3: 2/3;--wp--preset--aspect-ratio--16-9: 16/9;--wp--preset--aspect-ratio--9-16: 9/16;--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #FFFFFF;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--color--dark-gray: #28303D;--wp--preset--color--gray: #39414D;--wp--preset--color--green: #D1E4DD;--wp--preset--color--blue: #D1DFE4;--wp--preset--color--purple: #D1D1E4;--wp--preset--color--red: #E4D1D1;--wp--preset--color--orange: #E4DAD1;--wp--preset--color--yellow: #EEEADD;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgba(6,147,227,1) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgba(252,185,0,1) 0%,rgba(255,105,0,1) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgba(255,105,0,1) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--gradient--purple-to-yellow: linear-gradient(160deg, #D1D1E4 0%, #EEEADD 100%);--wp--preset--gradient--yellow-to-purple: linear-gradient(160deg, #EEEADD 0%, #D1D1E4 100%);--wp--preset--gradient--green-to-yellow: linear-gradient(160deg, #D1E4DD 0%, #EEEADD 100%);--wp--preset--gradient--yellow-to-green: linear-gradient(160deg, #EEEADD 0%, #D1E4DD 100%);--wp--preset--gradient--red-to-yellow: linear-gradient(160deg, #E4D1D1 0%, #EEEADD 100%);--wp--preset--gradient--yellow-to-red: linear-gradient(160deg, #EEEADD 0%, #E4D1D1 100%);--wp--preset--gradient--purple-to-red: linear-gradient(160deg, #D1D1E4 0%, #E4D1D1 100%);--wp--preset--gradient--red-to-purple: linear-gradient(160deg, #E4D1D1 0%, #D1D1E4 100%);--wp--preset--font-size--small: 18px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 24px;--wp--preset--font-size--x-large: 42px;--wp--preset--font-size--extra-small: 16px;--wp--preset--font-size--normal: 20px;--wp--preset--font-size--extra-large: 40px;--wp--preset--font-size--huge: 96px;--wp--preset--font-size--gigantic: 144px;--wp--preset--spacing--20: 0.44rem;--wp--preset--spacing--30: 0.67rem;--wp--preset--spacing--40: 1rem;--wp--preset--spacing--50: 1.5rem;--wp--preset--spacing--60: 2.25rem;--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgba(255, 255, 255, 1), 6px 6px rgba(0, 0, 0, 1);--wp--preset--shadow--crisp: 6px 6px 0px rgba(0, 0, 0, 1);}:where(.is-layout-flex){gap: 0.5em;}:where(.is-layout-grid){gap: 0.5em;}body .is-layout-flex{display: flex;}.is-layout-flex{flex-wrap: wrap;align-items: center;}.is-layout-flex > :is(*, div){margin: 0;}body .is-layout-grid{display: grid;}.is-layout-grid > :is(*, div){margin: 0;}:where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;}:where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;} :where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;} :where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;} :root :where(.wp-block-pullquote){font-size: 1.5em;line-height: 1.6;} </style> <link rel='stylesheet' id='wp-hal-style1-css' href='https://lodel.hypotheses.org/wp-content/plugins/hal/css/style.css?ver=6.6.2' media='all' /> <link rel='stylesheet' id='wp-syntax-css-css' href='https://lodel.hypotheses.org/wp-content/plugins/wp-syntax/css/wp-syntax.css?ver=1.2' media='all' /> <link rel='stylesheet' id='twentytwentyone-style-css' href='https://lodel.hypotheses.org/wp-content/themes/twentytwentyone/style.css?ver=6.6.2' media='all' /> <link rel='stylesheet' id='child-style-css' href='https://lodel.hypotheses.org/wp-content/themes/twentytwentyone-child/style.css?ver=1.0' media='all' /> <link rel='stylesheet' id='twenty-twenty-one-style-css' href='https://lodel.hypotheses.org/wp-content/themes/twentytwentyone/style.css?ver=1.0' media='all' /> <style id='twenty-twenty-one-style-inline-css'> :root{--global--color-background: #ffffff;--global--color-primary: #000;--global--color-secondary: #000;--button--color-background: #000;--button--color-text-hover: #000;} </style> <link rel='stylesheet' id='twenty-twenty-one-print-style-css' href='https://lodel.hypotheses.org/wp-content/themes/twentytwentyone/assets/css/print.css?ver=1.0' media='print' /> <link rel='stylesheet' id='tt1-dark-mode-css' href='https://lodel.hypotheses.org/wp-content/themes/twentytwentyone/assets/css/style-dark-mode.css?ver=1.0' media='all' /> <link rel='stylesheet' id='Branda_Signup_Password-css' href='https://lodel.hypotheses.org/wp-content/plugins/ultimate-branding/inc/modules/login-screen/assets/css/signup-password.css?ver=3.4.9.3' media='all' /> <link rel='stylesheet' id='wp-featherlight-css' href='https://lodel.hypotheses.org/wp-content/plugins/wp-featherlight/css/wp-featherlight.min.css?ver=1.3.4' media='all' /> <link rel='stylesheet' id='cmplz-cookie-css' href='https://lodel.hypotheses.org/wp-content/plugins/complianz-gdpr-premium-multisite/assets/css/cookieconsent.min.css?ver=5.4.0.2' media='all' /> <link rel='stylesheet' id='cleo-global-css' href='https://lodel.hypotheses.org/wp-content/cleo-commons/css/openbarre.css?ver=6.6.2' media='screen' /> <link rel='stylesheet' id='cleo-complianz-css' href='https://lodel.hypotheses.org/wp-content/cleo-commons/css/complianz.css?ver=6.6.2' media='screen' /> <link rel='stylesheet' id='print-global-css' href='https://lodel.hypotheses.org/wp-content/cleo-commons/css/print.css?ver=6.6.2' media='print' /> <link rel='stylesheet' id='wp-author-bio-css' href='https://lodel.hypotheses.org/wp-content/plugins/wp-about-author/wp-about-author.css?ver=6.6.2' media='all' /> <script src="https://lodel.hypotheses.org/wp-includes/js/jquery/jquery.min.js?ver=3.7.1" id="jquery-core-js"></script> <script src="https://lodel.hypotheses.org/wp-includes/js/jquery/jquery-migrate.min.js?ver=3.4.1" id="jquery-migrate-js"></script> <script id="twenty-twenty-one-ie11-polyfills-js-after"> ( Element.prototype.matches && Element.prototype.closest && window.NodeList && NodeList.prototype.forEach ) || document.write( '<script src="https://lodel.hypotheses.org/wp-content/themes/twentytwentyone/assets/js/polyfills.js?ver=1.0"></scr' + 'ipt>' ); </script> <script src="https://lodel.hypotheses.org/wp-content/themes/twentytwentyone/assets/js/primary-navigation.js?ver=1.0" id="twenty-twenty-one-primary-navigation-script-js" defer data-wp-strategy="defer"></script> <link rel="https://api.w.org/" href="https://lodel.hypotheses.org/wp-json/" /><link rel="alternate" title="JSON" type="application/json" href="https://lodel.hypotheses.org/wp-json/wp/v2/posts/242" /><link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://lodel.hypotheses.org/xmlrpc.php?rsd" /> <meta name="generator" content="Wordpress 6.6.2 - https://wordpress.org" /> <link rel="canonical" href="https://lodel.hypotheses.org/242" /> <link rel='shortlink' href='https://lodel.hypotheses.org/?p=242' /> <link rel="alternate" title="oEmbed (JSON)" type="application/json+oembed" href="https://lodel.hypotheses.org/wp-json/oembed/1.0/embed?url=https%3A%2F%2Flodel.hypotheses.org%2F242" /> <link rel="alternate" title="oEmbed (XML)" type="text/xml+oembed" href="https://lodel.hypotheses.org/wp-json/oembed/1.0/embed?url=https%3A%2F%2Flodel.hypotheses.org%2F242&#038;format=xml" /> <meta name="twitter:card" content="summary" /> <meta name="twitter:site" content="@hypothesesorg" /> <meta property="fb:app_id" content="1148222708571516" /> <meta property="og:type" content="article" /> <meta property="og:site_name" content="Lodel" /> <meta property="og:url" content="https://lodel.hypotheses.org/242" /> <meta property="og:title" content="Lodel + Solr" /> <meta property="og:description" content="Few months ago, we started a complete rewrite of the new version of Calenda powered by Lodel. The biggest part of the public side of Calenda—programaticaly speaking—is its search engine: this engine is used everywhere, not only on the result pages, but also on the front page and the event page. Our search engine choice&hellip; Poursuivre la lecture Lodel + Solr" /> <meta property="og:image" content="https://lodel.hypotheses.org/wp-content/cleo-commons/images/favicon_150x150.png" /> <style type="text/css"> ul.soc { overflow:hidden; margin:2em auto; padding:0; list-style:none;} ul.soc li { display:inline-block; zoom:1; margin:0 15px 0 0;} svg:not(:host).svg-inline--fa, svg:not(:root).svg-inline--fa {overflow: visible;box-sizing: content-box;} .svg-inline--fa {display: var(--fa-display,inline-block); height: 1.3em; overflow: visible; vertical-align: -0.125em;} a.share-hypotheses { align-items: center; display: flex; flex-direction: row; border-radius: 4px; -webkit-border-radius: 4px; -moz-border-radius: 4px; gap: 0; height: 36px; justify-content: center; padding: 0; transition: all .3s; width: 36px;border:none;} .linkedin { background-color: #0e76a8; color: #fff!important; transition: all .3s;} .linkedin:hover { background-color: #0a5579!important;} .x { background-color: #000; color: #fff!important; transition: all .3s} .x:hover { background-color: #4d4d4d!important} .facebook { background-color: #1778f2; color: #fff!important; transition: all .3s} .facebook:hover {background-color: #0b60cb!important;} .mastodon { background-color: #3088D4; color: #fff!important; transition: all .3s;} .mastodon:hover { background-color: #2778be!important;} </style> <script type="text/javascript"> // Share buttons jQuery(document).ready(function($) { $(".share-hypotheses").click(function(event) { var shareName = $(this).attr("class").split(" ")[0]; //get the first class name of clicked element switch (shareName) { case "facebook": var openLink = "https://www.facebook.com/sharer.php?title=Lodel+%2B+Solr&u=https%3A%2F%2Flodel.hypotheses.org%2F242"; break; case "x": var openLink = "https://twitter.com/share?text=Lodel+%2B+Solr&url=https%3A%2F%2Flodel.hypotheses.org%2F242&via=hypothesesorg"; break; case "linkedin": var openLink = "https://www.linkedin.com/shareArticle?title=Lodel+%2B+Solr&url=https%3A%2F%2Flodel.hypotheses.org%2F242&mini=true"; break; case "mastodon": var openLink = "https://mastodonshare.com?text=Lodel+%2B+Solr&url=https%3A%2F%2Flodel.hypotheses.org%2F242"; break; } //Parameters for the Popup window var winWidth = 650; var winHeight = 450; var winLeft = ($(window).width() - winWidth) / 2; var winTop = ($(window).height() - winHeight) / 2; var winOptions = "width=" + winWidth + ",height=" + winHeight + ",top=" + winTop + ",left=" + winLeft; //open Popup window and redirect user to share website. window.open(openLink,"Share This Link",winOptions); return false; }); }); </script> <script> var _paq = _paq || []; _paq.push(['setCustomVariable', 1, 'Domain', document.domain, 'visit']); _paq.push(['enableCrossDomainLinking']); _paq.push(["setDocumentTitle", " lodel | " + document.title]); _paq.push(['trackPageView']); _paq.push(['enableLinkTracking']); (function() { var u='https://analytics.openedition.org/'; _paq.push(['setTrackerUrl', u+'matomo.php']); _paq.push(['setSiteId', '5504']); var secondaryTrackerUrl = 'https://pk.labocleo.org/matomo.php'; var secondaryWebsiteId = '4'; _paq.push(['addTracker', secondaryTrackerUrl, secondaryWebsiteId]); var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s); })(); </script> <style type="text/css"> div.citation { background-color:rgba(200,200,200,0.3); padding:1em; margin-top:1em; margin-bottom:1em;} div.citation>p { margin:0;} div.citation span.citation-title{font-weight:bold;} </style> <style type="text/css"> ol.footnotes>li {list-style-type:decimal;} ol.footnotes { color:#666666; } ol.footnotes li { font-size:80%; } </style> <link rel="alternate" type="application/rdf+xml" title="RDF Version" href="https://lodel.hypotheses.org/feed/rdf" /> <link rel="alternate" type="application/rdf+xml" title="RDF Version of this post" href="https://lodel.hypotheses.org/242/feed/rdf" /> <link rel="alternate" type="application/rdf+xml" title="RDF Version of the category Lodel 1.0" href="https://lodel.hypotheses.org/category/1-0/feed/rdf" /> <link rel="alternate" type="application/rdf+xml" title="RDF Version of the category Tools" href="https://lodel.hypotheses.org/category/tools3698/feed/rdf" /> <script type="text/javascript" src="https://lodel.hypotheses.org/wp-content/plugins/hypotheses-config//js/hypoc.js"></script><style type="text/css" id="branda-admin-bar-logo"> body #wpadminbar #wp-admin-bar-wp-logo > .ab-item { background-image: url(https://hypotheses.org/files/2016/12/hypologo-flux.png); background-repeat: no-repeat; background-position: 50%; background-size: 80%; } body #wpadminbar #wp-admin-bar-wp-logo > .ab-item .ab-icon:before { content: " "; } </style> <style> .twitter-tweet.cmplz-blocked-content-container { padding: 10px 40px; } </style> <style> .cmplz-placeholder-element > blockquote.fb-xfbml-parse-ignore { margin: 0 20px; } </style> <style> .instagram-media.cmplz-placeholder-element > div { max-width: 100%; } </style> <style type="text/css"> span.icon-hypotheses { background:url(https://lodel.hypotheses.org/wp-content/cleo-commons/images/favicon_18x20.png);width:18px;height:20px;display:inline-block;margin-right:5px; } </style> <style type="text/css"> .openbarre { height: 65px; } </style> <link rel="pingback" href="https://lodel.hypotheses.org/xmlrpc.php"><style id="custom-background-css"> body.custom-background { background-color: #ffffff; } </style> <link rel="dc:identifier" href="https://lodel.hypotheses.org/242" /> <meta property="dc:title" content="Lodel + Solr" /> <meta property="dc:creator" content="santoni" /> <meta property="dcterms:created" content="2011-10-03" /> <meta property="dcterms:abstract" content="Few months ago, we started a complete rewrite of the new version of Calenda powered by Lodel. The biggest part of the public side of Calenda—programaticaly speaking—is its search engine: this engine is used everywhere, not only on the result pages, but also on the front page and the event page. Our search engine choice&hellip; Poursuivre la lecture Lodel + Solr" xml:lang="fr" /> <meta property="dc:subject" content="Lodel 1.0" /> <meta property="dc:subject" content="Tools" /> <meta property="dc:type" content="Billet" /> <meta name="citation_doi" content="10.58079/r0if" /> <meta name="citation_issn" content="2497-3114" /> <link rel="alternate" type="application/opml+xml" title="Outline" href="https://www.openedition.org/opml.php?pubtype=carnet" /></head> <body data-cmplz=1 class="post-template-default single single-post postid-242 single-format-standard custom-background wp-custom-logo wp-embed-responsive wp-featherlight-captions is-light-theme has-background-white no-js singular has-main-navigation"> <div id="ob-header" class="openbarre"> <div class="openbarre__container"> <a class="openbarre__link" href="https://hypotheses.org" title="Home" tabindex="1"> <img class="openbarre__link__logo" src="https://lodel.hypotheses.org/wp-content/cleo-commons/images/logo-ho.svg" /> </a> <div class="openbarre__right"> <button class="openbarre__right__button oesearch__button"> <span class="openbarre__tablet__elm"> OpenEdition Search </span> <img class="openbarre__right__button__icon" src="https://lodel.hypotheses.org/wp-content/cleo-commons/images/loupe_search_grey.svg" /> </button> <button id="all-oe-button" class="openbarre__right__button"> <span class="openbarre__tablet__elm"> Tout OpenEdition </span> <img class="openbarre__right__button__icon" src="https://lodel.hypotheses.org/wp-content/cleo-commons/images/tout_openedition_gray.svg" /> </button> <div class="openbarre__right__all__menu" id="all-oe-menu"> <span class="openbarre__right__all__menu__title openbarre__right__all__menu__title--first"> Ressources numériques en sciences humaines et sociales </span> <a class="openbarre__right__all__menu__link" href="https://openedition.org"> OpenEdition </a> <span class="openbarre__right__all__menu__title"> Nos plateformes </span> <a class="openbarre__right__all__menu__link" href="https://books.openedition.org"> OpenEdition Books </a> <a class="openbarre__right__all__menu__link" href="https://journals.openedition.org"> OpenEdition Journals </a> <a class="openbarre__right__all__menu__link" href="https://hypotheses.org"> Hypothèses </a> <a class="openbarre__right__all__menu__link" href="https://calenda.org"> Calenda </a> <span class="openbarre__right__all__menu__title"> Bibliothèques </span> <a class="openbarre__right__all__menu__link" href="https://www.openedition.org/14043"> OpenEdition Freemium </a> <span class="openbarre__right__all__menu__title"> Suivez-nous </span> <div class="openbarre__right__all__menu__networks"> <a class="footer__networks__icon" href="https://www.facebook.com/openedition" title="Facebook"> <img class="openbarre__right__button__icon" src="https://lodel.hypotheses.org/wp-content/cleo-commons/images/facebook-f-brands-solid.svg" /> </a> <a class="footer__networks__icon" href="https://x.com/OpenEditionActu" title="X"> <img class="openbarre__right__button__icon" src="https://lodel.hypotheses.org/wp-content/cleo-commons/images/x-twitter-brands-solid.svg" /> </a> </div> </div> </div> <div class="openbarre__modal__background" id="oesearch-modal-bg" hidden></div> <div class="openbarre__modal openbarre__modal--search" id="oesearch-modal" hidden> <div class="openbarre__modal__header openbarre__modal__header--search"> <img class="openbarre__modal__header__logo" src="https://lodel.hypotheses.org/wp-content/cleo-commons/images/oe-search-white.svg" alt="OpenEdition Search logo" loading="lazy" /> <button class="openbarre__modal__header__close openbarre__modal__header__close--search" id="oesearch-modal-close" aria-label="Fermer"> <img class="openbarre__right__button__icon" src="https://lodel.hypotheses.org/wp-content/cleo-commons/images/xmark-solid.svg" /> </button> </div> <div class="openbarre__modal__body openbarre__modal__body--search"> <form class="openbarre__modal__body__form" action="https://search.openedition.org/results"> <div class="openbarre__modal__body__form__searchbar"> <span class="openbarre__modal__body__form__searchbar__accroche"> Redirection vers OpenEdition Search </span> <input name="q" id="oesearch_searchbar" type="search" aria-label="OpenEdition Search text input" placeholder="Expression ou mot-clé (tag)" required> </div> <div class="openbarre__modal__body__form__radio"> <div class="openbarre__modal__body__form__radio__item"> <input type="radio" name="s" id="oesearch_openedition" value="" checked> <label for="oesearch_openedition"> Dans tout OpenEdition </label> </div> <div class="openbarre__modal__body__form__radio__item"> <input type="radio" name="s" id="oesearch_site" value="Lodel"> <label for="oesearch_site">Dans "Lodel"</label> </div> </div> <input name="pf" id="pf" type="hidden" value="HO"> <button id="oesearch_submit" type="submit" class="openbarre__modal__body__form__submit"> Rechercher </button> </form> </div> </div> </div> </div> <div id="page" class="site"> <a class="skip-link screen-reader-text" href="#content"> Aller au contenu </a> <header id="masthead" class="site-header has-logo has-title-and-tagline has-menu"> <div class="site-logo"><a href="https://lodel.hypotheses.org/" class="custom-logo-link" rel="home"><img width="1069" height="727" src="https://lodel.hypotheses.org/files/2022/10/cropped-lodel_couleur.png" class="custom-logo" alt="Lodel" decoding="async" fetchpriority="high" srcset="https://lodel.hypotheses.org/files/2022/10/cropped-lodel_couleur.png 1069w, https://lodel.hypotheses.org/files/2022/10/cropped-lodel_couleur-300x204.png 300w, https://lodel.hypotheses.org/files/2022/10/cropped-lodel_couleur-500x340.png 500w, https://lodel.hypotheses.org/files/2022/10/cropped-lodel_couleur-768x522.png 768w" sizes="(max-width: 1069px) 100vw, 1069px" /></a></div> <div class="site-branding"> <p class="site-title"><a href="https://lodel.hypotheses.org/">Lodel</a></p> <p class="site-description"> Logiciel d&#039;édition d&#039;électronique </p> </div><!-- .site-branding --> <nav id="site-navigation" class="primary-navigation" aria-label="Menu principal"> <div class="menu-button-container"> <button id="primary-mobile-menu" class="button" aria-controls="primary-menu-list" aria-expanded="false"> <span class="dropdown-icon open">Menu <svg class="svg-icon" width="24" height="24" aria-hidden="true" role="img" focusable="false" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M4.5 6H19.5V7.5H4.5V6ZM4.5 12H19.5V13.5H4.5V12ZM19.5 18H4.5V19.5H19.5V18Z" fill="currentColor"/></svg> </span> <span class="dropdown-icon close">Fermer <svg class="svg-icon" width="24" height="24" aria-hidden="true" role="img" focusable="false" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M12 10.9394L5.53033 4.46973L4.46967 5.53039L10.9393 12.0001L4.46967 18.4697L5.53033 19.5304L12 13.0607L18.4697 19.5304L19.5303 18.4697L13.0607 12.0001L19.5303 5.53039L18.4697 4.46973L12 10.9394Z" fill="currentColor"/></svg> </span> </button><!-- #primary-mobile-menu --> </div><!-- .menu-button-container --> <div class="primary-menu-container"><ul id="primary-menu-list" class="menu-wrapper"><li id="menu-item-1039" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-1039"><a href="#">Accueil</a><button class="sub-menu-toggle" aria-expanded="false" onClick="twentytwentyoneExpandSubMenu(this)"><span class="icon-plus"><svg class="svg-icon" width="18" height="18" aria-hidden="true" role="img" focusable="false" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M18 11.2h-5.2V6h-1.6v5.2H6v1.6h5.2V18h1.6v-5.2H18z" fill="currentColor"/></svg></span><span class="icon-minus"><svg class="svg-icon" width="18" height="18" aria-hidden="true" role="img" focusable="false" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M6 11h12v2H6z" fill="currentColor"/></svg></span><span class="screen-reader-text">Ouvrir le menu</span></button> <ul class="sub-menu"> <li id="menu-item-1037" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-home menu-item-1037"><a href="https://lodel.hypotheses.org/">Présentation du logiciel LODEL</a></li> <li id="menu-item-1002" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1002"><a href="https://lodel.hypotheses.org/fonctionnement">Fonctionnement</a></li> <li id="menu-item-1007" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1007"><a href="https://lodel.hypotheses.org/fonctionnalites">Fonctionnalités</a></li> <li id="menu-item-987" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-987"><a href="https://lodel.hypotheses.org/utilisation">Utilisation</a></li> <li id="menu-item-1580" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1580"><a href="https://lodel.hypotheses.org/chronologie">Chronologie</a></li> </ul> </li> <li id="menu-item-1040" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-1040"><a href="#">Aide</a><button class="sub-menu-toggle" aria-expanded="false" onClick="twentytwentyoneExpandSubMenu(this)"><span class="icon-plus"><svg class="svg-icon" width="18" height="18" aria-hidden="true" role="img" focusable="false" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M18 11.2h-5.2V6h-1.6v5.2H6v1.6h5.2V18h1.6v-5.2H18z" fill="currentColor"/></svg></span><span class="icon-minus"><svg class="svg-icon" width="18" height="18" aria-hidden="true" role="img" focusable="false" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M6 11h12v2H6z" fill="currentColor"/></svg></span><span class="screen-reader-text">Ouvrir le menu</span></button> <ul class="sub-menu"> <li id="menu-item-1062" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1062"><a href="https://lodel.hypotheses.org/documentation">Documentation</a></li> <li id="menu-item-1017" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1017"><a href="https://lodel.hypotheses.org/faq">FAQ</a></li> <li id="menu-item-1027" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1027"><a href="https://lodel.hypotheses.org/support">Support</a></li> </ul> </li> <li id="menu-item-1582" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-1582"><a href="#">Communauté</a><button class="sub-menu-toggle" aria-expanded="false" onClick="twentytwentyoneExpandSubMenu(this)"><span class="icon-plus"><svg class="svg-icon" width="18" height="18" aria-hidden="true" role="img" focusable="false" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M18 11.2h-5.2V6h-1.6v5.2H6v1.6h5.2V18h1.6v-5.2H18z" fill="currentColor"/></svg></span><span class="icon-minus"><svg class="svg-icon" width="18" height="18" aria-hidden="true" role="img" focusable="false" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M6 11h12v2H6z" fill="currentColor"/></svg></span><span class="screen-reader-text">Ouvrir le menu</span></button> <ul class="sub-menu"> <li id="menu-item-1576" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1576"><a href="https://lodel.hypotheses.org/ils-se-servent-de-lodel-hors-openedition">Ils se servent de Lodel</a></li> <li id="menu-item-1572" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1572"><a href="https://lodel.hypotheses.org/ils-parlent-de-lodel">Ils parlent de Lodel</a></li> </ul> </li> <li id="menu-item-997" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-997"><a href="https://lodel.hypotheses.org/licence">Licence</a></li> <li id="menu-item-992" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-992"><a href="https://lodel.hypotheses.org/telechargement">Téléchargement</a></li> <li id="menu-item-1032" class="menu-item menu-item-type-post_type menu-item-object-page current_page_parent menu-item-1032"><a href="https://lodel.hypotheses.org/actualites">Actualités</a></li> </ul></div> </nav><!-- #site-navigation --> </header><!-- #masthead --> <div id="content" class="site-content"> <div id="primary" class="content-area"> <main id="main" class="site-main"> <article id="post-242" class="post-242 post type-post status-publish format-standard hentry category-1-0 category-tools3698 entry"> <header class="entry-header alignwide"> <h1 class="entry-title">Lodel + Solr</h1> </header><!-- .entry-header --> <div class="entry-content"> <p>Few months ago, we started a complete rewrite of the new version of <a title="Calenda" href="http://calenda.revues.org/" target="_blank" rel="noopener">Calenda</a> powered by Lodel. The biggest part of the public side of Calenda—programaticaly speaking—is its search engine: this engine is used everywhere, not only on the result pages, but also on the front page and the event page.</p> <p><span id="more-242"></span></p> <p>Our search engine choice is Lucene/Solr, we already use it to index and provide faceted search on all the contents from Revues.org, Hypotheses.org and the actual Calenda. Solr is fast, powerful, easy to use and to maintain, and supported by a strong community. It also provides a very interesting functionnality: dynamic fields.</p> <h2>Dynamic fields</h2> <p>Here is a detailed explanation about dynamic fields.</p> <p>Solr configuration file is a simple, almost flat, XML file. Is is called schema.xml.</p> <pre><code>&lt;?xml version="1.0" encoding="UTF-8" ?&gt; &lt;schema name="example" version="1.4"&gt; &lt;types&gt; &lt;fieldType name="int" class="solr.TrieIntField" precisionStep="0" omitNorms="true" positionIncrementGap="0"/&gt; &lt;fieldType name="string" class="solr.StrField" sortMissingLast="true" omitNorms="true"/&gt; &lt;fieldType name="text" class="solr.TextField" positionIncrementGap="100"&gt; &lt;analyzer type="index"&gt; &lt;tokenizer class="solr.StandardTokenizerFactory"/&gt; &lt;filter class="solr.LowerCaseFilterFactory"/&gt; &lt;/analyzer&gt; &lt;analyzer type="query"&gt; &lt;tokenizer class="solr.StandardTokenizerFactory"/&gt; &lt;filter class="solr.LowerCaseFilterFactory"/&gt; &lt;/analyzer&gt; &lt;/fieldType&gt; &lt;/types&gt; &lt;fields&gt; &lt;field name="id" type="string" indexed="true" stored="true" required="true"/&gt; &lt;field name="nature" type="string" indexed="true" stored="true" required="true"/&gt; &lt;field name="class" type="string" indexed="true" stored="true" required="true"/&gt; &lt;field name="type" type="string" indexed="true" stored="true" required="true"/&gt; &lt;field name="idtype" type="int" indexed="true" stored="true"/&gt; &lt;field name="idparent" type="int" indexed="true" stored="true"/&gt; &lt;field name="status" type="int" indexed="true" stored="true"/&gt; &lt;field name="text" type="text" indexed="true" stored="false" multiValued="true"/&gt; &lt;/fields&gt; &lt;uniqueKey&gt;id&lt;/uniqueKey&gt; &lt;defaultSearchField&gt;text&lt;/defaultSearchField&gt; &lt;solrQueryParser defaultOperator="OR"/&gt; &lt;copyField source="*" dest="text"/&gt; &lt;/schema&gt; </code></pre> <p>It allows you define field names and types describing your data. For example, the unique ID, the title, subtitle, etc. This is OK to solve simple problems, but sometimes, we don&#8217;t know what our data will be composed of. This is what dynamic fields are for: they make you schema.xml less hard-coded.<br /> As you may already know, Lodel main feature is its customizable Editorial Model: you can define your database structure directly from the back office. Thanks to the dynamic fields, we wrote a schema.xml able to handle any data from Lodel, whatever your Editorial Model looks like!<br /> This means that our work with Solr can be useful for any Lodel users, so we plan to distribute it in the next release.</p> <h2>Our schema.xml</h2> <p>Here is the schema.xml so far:</p> <pre><code>&lt;?xml version="1.0" encoding="UTF-8" ?&gt; &lt;schema name="example" version="1.4"&gt; &lt;types&gt; &lt;fieldType name="int" class="solr.TrieIntField" precisionStep="0" omitNorms="true" positionIncrementGap="0"/&gt; &lt;fieldType name="string" class="solr.StrField" sortMissingLast="true" omitNorms="true"/&gt; &lt;fieldType name="text" class="solr.TextField" positionIncrementGap="100"&gt; &lt;analyzer type="index"&gt; &lt;tokenizer class="solr.StandardTokenizerFactory"/&gt; &lt;filter class="solr.LowerCaseFilterFactory"/&gt; &lt;/analyzer&gt; &lt;analyzer type="query"&gt; &lt;tokenizer class="solr.StandardTokenizerFactory"/&gt; &lt;filter class="solr.LowerCaseFilterFactory"/&gt; &lt;/analyzer&gt; &lt;/fieldType&gt; &lt;/types&gt; &lt;fields&gt; &lt;field name="id" type="string" indexed="true" stored="true" required="true"/&gt; &lt;field name="nature" type="string" indexed="true" stored="true" required="true"/&gt; &lt;field name="class" type="string" indexed="true" stored="true" required="true"/&gt; &lt;field name="type" type="string" indexed="true" stored="true" required="true"/&gt; &lt;field name="idtype" type="int" indexed="true" stored="true"/&gt; &lt;field name="idparent" type="int" indexed="true" stored="true"/&gt; &lt;field name="status" type="int" indexed="true" stored="true"/&gt; &lt;field name="text" type="text" indexed="true" stored="false" multiValued="true"/&gt; &lt;dynamicField name="*_int" type="int" indexed="true" stored="true"/&gt; &lt;dynamicField name="*_entries" type="int" indexed="true" stored="true"/&gt; &lt;dynamicField name="*_persons" type="int" indexed="true" stored="true"/&gt; &lt;dynamicField name="*_file" type="int" indexed="true" stored="true"/&gt; &lt;dynamicField name="*_boolean" type="int" indexed="true" stored="true"/&gt; &lt;dynamicField name="*_tinytext" type="string" indexed="true" stored="true"/&gt; &lt;dynamicField name="*_email" type="string" indexed="true" stored="true"/&gt; &lt;dynamicField name="*_date" type="string" indexed="true" stored="true"/&gt; &lt;dynamicField name="*_url" type="string" indexed="true" stored="true"/&gt; &lt;dynamicField name="*_text" type="text" indexed="true" stored="true"/&gt; &lt;dynamicField name="*_mltext" type="text" indexed="true" stored="true"/&gt; &lt;dynamicField name="*_int_m" type="int" indexed="true" stored="true" multiValued="true"/&gt; &lt;dynamicField name="*_entries_m" type="int" indexed="true" stored="true" multiValued="true"/&gt; &lt;dynamicField name="*_persons_m" type="int" indexed="true" stored="true" multiValued="true"/&gt; &lt;dynamicField name="*_file_m" type="int" indexed="true" stored="true" multiValued="true"/&gt; &lt;dynamicField name="*_boolean_m" type="int" indexed="true" stored="true" multiValued="true"/&gt; &lt;dynamicField name="*_tinytext_m" type="string" indexed="true" stored="true" multiValued="true"/&gt; &lt;dynamicField name="*_email_m" type="string" indexed="true" stored="true" multiValued="true"/&gt; &lt;dynamicField name="*_date_m" type="string" indexed="true" stored="true" multiValued="true"/&gt; &lt;dynamicField name="*_url_m" type="string" indexed="true" stored="true" multiValued="true"/&gt; &lt;dynamicField name="*_text_m" type="text" indexed="true" stored="true" multiValued="true"/&gt; &lt;dynamicField name="*_mltext_m" type="text" indexed="true" stored="true" multiValued="true"/&gt; &lt;/fields&gt; &lt;uniqueKey&gt;id&lt;/uniqueKey&gt; &lt;defaultSearchField&gt;text&lt;/defaultSearchField&gt; &lt;solrQueryParser defaultOperator="OR"/&gt; &lt;copyField source="*" dest="text"/&gt; &lt;/schema&gt; </code></pre> <h2>Indexing content</h2> <p>So I started to write a simple PHP script to index content from Lodel SQL database.</p> <p>Solr provides a web service to receive the data through POST requests. You can generate XML and use CURL to send it to Solr and get your content indexed, but the easiest way is to use a library which take care of the boring part. The best library I found for PHP is called Solarium. It is full featured, well documented, and similar to other Solr libraries in Python and Perl.</p> <p>The script is only few lines of PHP and is pretty safe explanatory:</p> <pre><code>&lt;?php require('Solarium/Autoloader.php'); Solarium_Autoloader::register(); $client = new Solarium_Client(); $adapter = $client-&gt;getAdapter(); $adapter-&gt;setPort(8989); // Delete all documents $update = $client-&gt;createUpdate(); $update-&gt;addDeleteQuery('*:*'); $update-&gt;addCommit(); $result = $client-&gt;update($update); // Connect the db $dbh = new PDO('mysql:host=localhost;dbname=xxxx', 'xxxx', 'xxxx', array(PDO::MYSQL_ATTR_INIT_COMMAND =&gt; "SET NAMES utf8") ); $docs = array(); function update($client, &amp;$docs) { $update = $client-&gt;createUpdate(); $update-&gt;addDocuments($docs); $update-&gt;addCommit(); $result = $client-&gt;update($update); $docs = array(); echo "."; } $objects = $dbh-&gt;prepare("SELECT * FROM objects WHERE class IN ('entities')"); $objects-&gt;execute(); while ( $object = $objects-&gt;fetch() ) { $doc = new Solarium_Document_ReadWrite(); $doc-&gt;id = $object[id]; $doc-&gt;nature = $object['class']; switch ($object['class']) { case 'entities': $entities = $dbh-&gt;prepare("SELECT e.*, t.type, t.class FROM entities e, types t WHERE e.id = ? AND e.idtype = t.id"); $entities-&gt;execute(array($object[id])); $entity = $entities-&gt;fetch(); foreach (array('idtype','type','class','idparent','status') as $k) { $doc-&gt;addField($k, $entity[$k]); } $things = $dbh-&gt;prepare("SELECT * FROM $entity[class] WHERE identity = $object[id]"); $things-&gt;execute(); $thing = $things-&gt;fetch(); $tablefields = $dbh-&gt;prepare("SELECT * FROM tablefields WHERE class = '$entity[class]'"); $tablefields-&gt;execute(); while ($f = $tablefields-&gt;fetch()) { $v = preg_replace('/[p{Cc}]/', '', $thing[$f[name]]); if ($v) $doc-&gt;addField($f[name].'_'.$f[type], $v); } $relations = $dbh-&gt;prepare("SELECT r.id2, r.nature, et.type FROM relations r, entries e, entrytypes et WHERE id1 = $object[id] AND r.id2 = e.id AND e.idtype = et.id"); $relations-&gt;execute(); while ($r = $relations-&gt;fetch()) { $doc-&gt;addField('R_'.$r[nature].'_'.$r[type].'_int_m', $r[id2]); } break; } $docs[] = $doc; if ( count($docs) == 1000 ) update($client, $docs, $total); } update($client, $docs, $total); ?&gt; </code></pre> <p>There is only one big loop, on the &#8216;object&#8217; table. An object can be an entity, an entry or a person. For now, it can only index entities, but we plan to support entries and persons in the next move.<br /> The most interesting part is (simplified) here:</p> <pre><code>while ($f = $tablefields-&gt;fetch()) { $doc-&gt;addField($f[name].'_'.$f[type], $thing[$f[name]]); } </code></pre> <p>As you can see, the name of the added Solr field results from the concatenation of its name and type in Lodel. If you defined a multilingual field named &#8216;title&#8217; in your editorial model, the script will send it to Solr under the name &#8216;title_mltext&#8217;, and Solr will store it using the dynamic field &#8216;*_mltext&#8217;.</p> <p>To better understand how Solr store our documents, here is the result of a select query:</p> <pre><code>&lt;response&gt; &lt;lst name="responseHeader"&gt; &lt;int name="status"&gt;0&lt;/int&gt; &lt;int name="QTime"&gt;0&lt;/int&gt; &lt;lst name="params"&gt; &lt;str name="q"&gt;*:*&lt;/str&gt; &lt;/lst&gt; &lt;/lst&gt; &lt;result name="response" numFound="19573" start="0"&gt; &lt;doc&gt;...&lt;/doc&gt; &lt;doc&gt;...&lt;/doc&gt; &lt;doc&gt;...&lt;/doc&gt; &lt;doc&gt;...&lt;/doc&gt; &lt;doc&gt; &lt;str name="nature"&gt;entities&lt;/str&gt; &lt;str name="class"&gt;event&lt;/str&gt; &lt;str name="type"&gt;event&lt;/str&gt; &lt;str name="dates_date"&gt;2010-12-08&lt;/str&gt; &lt;str name="id"&gt;619209&lt;/str&gt; &lt;int name="idparent"&gt;0&lt;/int&gt; &lt;int name="idtype"&gt;57&lt;/int&gt; &lt;int name="status"&gt;-1&lt;/int&gt; &lt;str name="title_mltext"&gt; &lt;r2r:ml lang="fr"&gt;Les compagnons de l'Espace&lt;/r2r:ml&gt; &lt;/str&gt; &lt;str name="subtitle_mltext"&gt; &lt;r2r:ml lang="fr"&gt;Une exposition de l'Observatoire de l'Espace du CNES&lt;/r2r:ml&gt; &lt;/str&gt; &lt;str name="summary_mltext"/&gt; &lt;str name="content_mltext"&gt; &lt;r2r:ml lang="fr"&gt;&lt;p&gt;A l'occasion de la 28e &amp;eacute;dition des Journ&amp;eacute;es europ&amp;eacute;ennes du patrimoine, organis&amp;eacute;e par le minist&amp;egrave;re de la Culture et de la communication sur le th&amp;egrave;me&lt;i&gt; Le voyage du patrimoine,&lt;/i&gt; l'Observatoire de l'Espace invite le public au si&amp;egrave;ge parisien du CNES, le samedi 17 et le dimanche 18 septembre 2011 de 11h &amp;agrave; 19h pour l'exposition &lt;i&gt;L&lt;b&gt;es compagnons de l'Espace&lt;/b&gt;.&lt;/i&gt; Chacun&amp;nbsp;pourra&amp;nbsp;venir y&amp;nbsp;d&amp;eacute;couvrir des pi&amp;egrave;ces&amp;nbsp;&amp;eacute;tonnantes issues du patimoine culturel de l'Espace et rencontrer les t&amp;eacute;moins et acteurs de l'aventure spatiale. Cette&amp;nbsp;&amp;eacute;v&amp;egrave;nement in&amp;eacute;dit&amp;nbsp;r&amp;eacute;v&amp;egrave;lera la multiplicit&amp;eacute; des liens que l'Homme tisse avec l'Espace, &amp;agrave; travers les compagnons qui le pr&amp;eacute;c&amp;egrave;dent, l'assistent et le r&amp;eacute;confortent; qu'ils soient fictifs ou r&amp;eacute;els, animaux ou robots, ils sont les partenaires de son exploration.&lt;/p&gt;&lt;p&gt;Entr&amp;eacute;e libre et gratuite&lt;/p&gt;&lt;p&gt;Centre National d'Etudes Spatiales&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2, place Maurice Quentin Paris 1er&lt;/p&gt;&lt;p&gt;M&amp;eacute;tro Chatelet-Les halles/sortie place carr&amp;eacute;e&lt;/p&gt;&lt;p&gt;Renseignements : 01 44 76 76 18&amp;nbsp; / &lt;a href="mailto:observatoire.espace@cnes.fr"&gt;observatoire.espace@cnes.fr&lt;/a&gt;&lt;/p&gt;&lt;/r2r:ml&gt; &lt;/str&gt; &lt;arr name="R_E_partners_int_m"&gt; &lt;int&gt;1387273&lt;/int&gt; &lt;/arr&gt; &lt;arr name="R_E_places_int_m"&gt; &lt;int&gt;1434398&lt;/int&gt; &lt;/arr&gt; &lt;arr name="R_E_subjects_int_m"&gt; &lt;int&gt;1387363&lt;/int&gt; &lt;/arr&gt; &lt;arr name="R_E_type_int_m"&gt; &lt;int&gt;1387268&lt;/int&gt; &lt;/arr&gt; &lt;arr name="R_E_websites_int_m"&gt; &lt;int&gt;1396551&lt;/int&gt; &lt;/arr&gt; &lt;/doc&gt; &lt;doc&gt;...&lt;/doc&gt; &lt;doc&gt;...&lt;/doc&gt; &lt;doc&gt;...&lt;/doc&gt; &lt;doc&gt;...&lt;/doc&gt; &lt;doc&gt;...&lt;/doc&gt; &lt;/result&gt; &lt;/response&gt; </code></pre> <h2>Querying Solr from Lodel</h2> <p>Now that our data is indexed, we want to query Solr from inside Lodel. To ease the process, I started to code a very simple LodelScript loop, and placed it in the dedicated file loops_local.php:</p> <pre><code>&lt;?php function loop_solr($context, $funcname, $arguments) { $localcontext = $context; if (function_exists("code_before_$funcname")) call_user_func("code_before_$funcname", $localcontext); $client = new Solarium_Client(); $adapter = $client-&gt;getAdapter(); if (isset($arguments[port])) $adapter-&gt;setPort($arguments[port]); $query = $client-&gt;createSelect(); if (isset($arguments[query])) $query-&gt;setQuery($arguments[query]); $resultset = $client-&gt;select($query); $context[nbresults] = $resultset-&gt;getNumFound(); $count = 0; foreach ($resultset as $document) { $localcontext = $context; $localcontext[count] = ++$count; foreach($document AS $field =&gt; $value) { $localcontext[$field] = $value; } call_user_func("code_do_$funcname", $localcontext); } if (function_exists("code_after_$funcname")) call_user_func("code_after_$funcname", $localcontext); } ?&gt; </code></pre> <p>This loop is very similar to the SQL loop and can be used like this:</p> <pre><code>&lt;h1&gt;À la une&lt;/h1&gt; &lt;LOOP NAME="solr" PORT="8989" QUERY="class:event AND status:1 AND frontpage_boolean:1"&gt; &lt;BEFORE&gt;&lt;ul&gt;&lt;/BEFORE&gt; &lt;DO&gt; &lt;li&gt;&lt;a href="/[#ID]"&gt;[#TITLE_MLTEXT]&lt;/a&gt;&lt;/li&gt; &lt;/DO&gt; &lt;AFTER&gt;&lt;/ul&gt;&lt;/AFTER&gt; &lt;/LOOP&gt; </code></pre> <h2>More Like This</h2> <p>Solr provide another nice feature called MoreLikeThis queries. Enable MLT during a query and each Solr result will be filled with similar contents. The similarity is based on the fields you want, and you can even weight them.<br /> So I developed another LodelScript sub-loop, similar to the RSS loop, to support MLT:</p> <pre><code>&lt;LOOP NAME="solr" PORT="8989" QUERY="id:[#ID]" MLT="1" MLTFL="class,status,title_mltext,body_mltext" COUNT="10"&gt; &lt;BEFORE&gt;&lt;ul&gt;&lt;/BEFORE&gt; &lt;DO&gt; &lt;LOOP NAME="morelikethis"&gt; &lt;BEFORE&gt;&lt;ul&gt;&lt;/BEFORE&gt; &lt;DO&gt;&lt;li&gt;&lt;a href="[#ID]"&gt;[#TITLE_MLTEXT]&lt;/a&gt;&lt;/li&gt;&lt;/DO&gt; &lt;AFTER&gt;&lt;/ul&gt;&lt;/AFTER&gt; &lt;/LOOP&gt; &lt;/DO&gt; &lt;AFTER&gt;&lt;/ul&gt;&lt;/AFTER&gt; &lt;/LOOP&gt; </code></pre> <p>This code will list the 10 most similar documents for the current ID, based on the class, status, title_mltext and body_mltext fields.</p> <h2>What next?</h2> <p>This code is still a proof of concept, it needs refactoring, polishing, documentation and integration.</p> <p>Putting in a separate function the code that indexes a document, in order to call them from an edition hook: this way, any updated object will be re-indexed on the fly.</p> <p>We also plan to clone the hook system for the indexation function. This would allow us to per-site customize the building of a Solr document before it is sent to Solr without forking the script. A good example of such a hook would be querying GeoNames web service at indexing time to geolocalize your content.</p> <p>Solr also provides an XLST processor. Writing some simple sheets to transform Solr results into another formats would be a very neat way to add plenty of web services to Lodel.</p> <hr/><div class="citation"><p><span class="citation-title">OpenEdition vous propose de citer ce billet de la manière suivante :</span><br/>santoni (3 octobre 2011). Lodel + Solr. <em>Lodel</em>. Consulté le 21 février 2025 à l’adresse https://doi.org/10.58079/r0if</p></div> <hr/> <ul class="soc"> <li><a class="x share-hypotheses" href="https://twitter.com/share?text=Lodel+%2B+Solr&amp;url=https%3A%2F%2Flodel.hypotheses.org%2F242&amp;via=hypothesesorg"><svg class="svg-inline--fa fa-x-twitter" aria-hidden="true" focusable="false" data-prefix="fab" data-icon="x-twitter" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" data-fa-i2svg=""><path fill="currentColor" d="M389.2 48h70.6L305.6 224.2 487 464H345L233.7 318.6 106.5 464H35.8L200.7 275.5 26.8 48H172.4L272.9 180.9 389.2 48zM364.4 421.8h39.1L151.1 88h-42L364.4 421.8z"></path></svg></a></li> <li><a class="facebook share-hypotheses" href="https://www.facebook.com/sharer.php?title=Lodel+%2B+Solr&amp;u=https%3A%2F%2Flodel.hypotheses.org%2F242"><svg class="svg-inline--fa fa-facebook-f" aria-hidden="true" focusable="false" data-prefix="fab" data-icon="facebook-f" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512" data-fa-i2svg=""><path fill="currentColor" d="M279.14 288l14.22-92.66h-88.91v-60.13c0-25.35 12.42-50.06 52.24-50.06h40.42V6.26S260.43 0 225.36 0c-73.22 0-121.08 44.38-121.08 124.72v70.62H22.89V288h81.39v224h100.17V288z"></path></svg></a></li> <li><a class="linkedin share-hypotheses" href="https://www.linkedin.com/shareArticle?title=Lodel+%2B+Solr&amp;url=https%3A%2F%2Flodel.hypotheses.org%2F242&amp;mini=true"><svg class="svg-inline--fa fa-linkedin" aria-hidden="true" focusable="false" data-prefix="fab" data-icon="linkedin" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512" data-fa-i2svg=""><path fill="currentColor" d="M416 32H31.9C14.3 32 0 46.5 0 64.3v383.4C0 465.5 14.3 480 31.9 480H416c17.6 0 32-14.5 32-32.3V64.3c0-17.8-14.4-32.3-32-32.3zM135.4 416H69V202.2h66.5V416zm-33.2-243c-21.3 0-38.5-17.3-38.5-38.5S80.9 96 102.2 96c21.2 0 38.5 17.3 38.5 38.5 0 21.3-17.2 38.5-38.5 38.5zm282.1 243h-66.4V312c0-24.8-.5-56.7-34.5-56.7-34.6 0-39.9 27-39.9 54.9V416h-66.4V202.2h63.7v29.2h.9c8.9-16.8 30.6-34.5 62.9-34.5 67.2 0 79.7 44.3 79.7 101.9V416z"></path></svg></a></li> <li><a class="mastodon share-hypotheses" href="https://mastodonshare.com?text=Lodel+%2B+Solr&amp;url=https%3A%2F%2Flodel.hypotheses.org%2F242"><svg class="svg-inline--fa fa-mastodon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="currentColor" d="M433 179.1c0-97.2-63.7-125.7-63.7-125.7-62.5-28.7-228.6-28.4-290.5 0 0 0-63.7 28.5-63.7 125.7 0 115.7-6.6 259.4 105.6 289.1 40.5 10.7 75.3 13 103.3 11.4 50.8-2.8 79.3-18.1 79.3-18.1l-1.7-36.9s-36.3 11.4-77.1 10.1c-40.4-1.4-83-4.4-89.6-54a102.5 102.5 0 0 1 -.9-13.9c85.6 20.9 158.7 9.1 178.8 6.7 56.1-6.7 105-41.3 111.2-72.9 9.8-49.8 9-121.5 9-121.5zm-75.1 125.2h-46.6v-114.2c0-49.7-64-51.6-64 6.9v62.5h-46.3V197c0-58.5-64-56.6-64-6.9v114.2H90.2c0-122.1-5.2-147.9 18.4-175 25.9-28.9 79.8-30.8 103.8 6.1l11.6 19.5 11.6-19.5c24.1-37.1 78.1-34.8 103.8-6.1 23.7 27.3 18.4 53 18.4 175z"/></svg></a></li> </ul> </div><!-- .entry-content --> <footer class="entry-footer default-max-width"> <div class="posted-by"><span class="posted-on">Publié le <time class="entry-date published updated" datetime="2011-10-03T17:24:02+02:00">03/10/2011</time></span><span class="byline">Par <a href="https://lodel.hypotheses.org/author/santoni" rel="author">santoni</a></span></div><div class="post-taxonomies"><span class="cat-links">Catégorisé comme <a href="https://lodel.hypotheses.org/category/1-0" rel="category tag">Lodel 1.0</a>, <a href="https://lodel.hypotheses.org/category/tools3698" rel="category tag">Tools</a> </span></div> </footer><!-- .entry-footer --> </article><!-- #post-242 --> <div id="comments" class="comments-area default-max-width show-avatars"> <div id="respond" class="comment-respond"> <h2 id="reply-title" class="comment-reply-title">Laisser un commentaire <small><a rel="nofollow" id="cancel-comment-reply-link" href="/242#respond" style="display:none;">Annuler la réponse</a></small></h2><form action="https://lodel.hypotheses.org/wp-comments-post.php" method="post" id="commentform" class="comment-form" novalidate><p class="comment-notes"><span id="email-notes">Votre adresse e-mail ne sera pas publiée.</span> <span class="required-field-message">Les champs obligatoires sont indiqués avec <span class="required">*</span></span></p><p class="comment-form-comment"><label for="comment">Commentaire <span class="required">*</span></label> <textarea id="comment" name="comment" cols="45" rows="5" maxlength="65525" required></textarea></p><p class="comment-form-author"><label for="author">Nom <span class="required">*</span></label> <input id="author" name="author" type="text" value="" size="30" maxlength="245" autocomplete="name" required /></p> <p class="comment-form-email"><label for="email">E-mail <span class="required">*</span></label> <input id="email" name="email" type="email" value="" size="30" maxlength="100" aria-describedby="email-notes" autocomplete="email" required /></p> <p class="comment-form-url"><label for="url">Site web</label> <input id="url" name="url" type="url" value="" size="30" maxlength="200" autocomplete="url" /></p> <p class="comment-form-cookies-consent"><input id="wp-comment-cookies-consent" name="wp-comment-cookies-consent" type="checkbox" value="yes" /> <label for="wp-comment-cookies-consent">Enregistrer mon nom, mon e-mail et mon site dans le navigateur pour mon prochain commentaire.</label></p> <p class="form-submit"><input name="submit" type="submit" id="submit" class="submit" value="Laisser un commentaire" /> <input type='hidden' name='comment_post_ID' value='242' id='comment_post_ID' /> <input type='hidden' name='comment_parent' id='comment_parent' value='0' /> </p><p style="display: none;"><input type="hidden" id="akismet_comment_nonce" name="akismet_comment_nonce" value="4f93a17806" /></p><p style="display: none !important;" class="akismet-fields-container" data-prefix="ak_"><label>&#916;<textarea name="ak_hp_textarea" cols="45" rows="8" maxlength="100"></textarea></label><input type="hidden" id="ak_js_1" name="ak_js" value="89"/><script>document.getElementById( "ak_js_1" ).setAttribute( "value", ( new Date() ).getTime() );</script></p></form> </div><!-- #respond --> <p class="akismet_comment_form_privacy_notice">Ce site utilise Akismet pour réduire les indésirables. <a href="https://akismet.com/privacy/" target="_blank" rel="nofollow noopener">En savoir plus sur comment les données de vos commentaires sont utilisées</a>.</p> </div><!-- #comments --> <nav class="navigation post-navigation" aria-label="Publications"> <h2 class="screen-reader-text">Navigation de l’article</h2> <div class="nav-links"><div class="nav-previous"><a href="https://lodel.hypotheses.org/233" rel="prev"><p class="meta-nav"><svg class="svg-icon" width="24" height="24" aria-hidden="true" role="img" focusable="false" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M20 13v-2H8l4-4-1-2-7 7 7 7 1-2-4-4z" fill="currentColor"/></svg>Publication précédente</p><p class="post-title">Modèle de document pour Word v3.0 : nouvelles macros d&#8217;automatisation</p></a></div><div class="nav-next"><a href="https://lodel.hypotheses.org/255" rel="next"><p class="meta-nav">Publication suivante<svg class="svg-icon" width="24" height="24" aria-hidden="true" role="img" focusable="false" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="m4 13v-2h12l-4-4 1-2 7 7-7 7-1-2 4-4z" fill="currentColor"/></svg></p><p class="post-title">Changement d&#8217;URL de ServOO pour Lodel 0.8 et 0.9 ; Fin de ServOO pour Lodel 0.7 le 28/02/2014</p></a></div></div> </nav> </main><!-- #main --> </div><!-- #primary --> </div><!-- #content --> <aside class="widget-area"> <section id="categories-2" class="widget widget_categories"><h2 class="widget-title">Catégories</h2><nav aria-label="Catégories"> <ul> <li class="cat-item cat-item-34135"><a href="https://lodel.hypotheses.org/category/actualites-news">Actualités / News</a> (1) </li> <li class="cat-item cat-item-69461"><a href="https://lodel.hypotheses.org/category/billets">Billets</a> (1) </li> <li class="cat-item cat-item-1144527"><a href="https://lodel.hypotheses.org/category/0-8">Lodel 0.8</a> (5) </li> <li class="cat-item cat-item-1478948"><a href="https://lodel.hypotheses.org/category/0-9">Lodel 0.9</a> (12) </li> <li class="cat-item cat-item-1144529"><a href="https://lodel.hypotheses.org/category/1-0">Lodel 1.0</a> (4) </li> <li class="cat-item cat-item-843832"><a href="https://lodel.hypotheses.org/category/releases843832">Releases</a> (3) </li> <li class="cat-item cat-item-3698"><a href="https://lodel.hypotheses.org/category/tools3698">Tools</a> (8) </li> <li class="cat-item cat-item-3615589"><a href="https://lodel.hypotheses.org/category/update3615589">Updates</a> (4) </li> </ul> </nav></section><section id="tag_cloud-2" class="widget widget_tag_cloud"><h2 class="widget-title">Étiquettes</h2><nav aria-label="Étiquettes"><div class="tagcloud"><a href="https://lodel.hypotheses.org/tag/boucle" class="tag-cloud-link tag-link-36837 tag-link-position-1" style="font-size: 7pt;" aria-label="boucle (1 élément)">boucle</a> <a href="https://lodel.hypotheses.org/tag/lodel-09" class="tag-cloud-link tag-link-1144539 tag-link-position-2" style="font-size: 13pt;" aria-label="lodel 0.9 (6 éléments)">lodel 0.9</a> <a href="https://lodel.hypotheses.org/tag/lodel-1-0" class="tag-cloud-link tag-link-1144540 tag-link-position-3" style="font-size: 8.9636363636364pt;" aria-label="lodel 1.0 (2 éléments)">lodel 1.0</a> <a href="https://lodel.hypotheses.org/tag/lodelscript" class="tag-cloud-link tag-link-51 tag-link-position-4" style="font-size: 7pt;" aria-label="Lodelscript (1 élément)">Lodelscript</a> <a href="https://lodel.hypotheses.org/tag/migration" class="tag-cloud-link tag-link-697 tag-link-position-5" style="font-size: 7pt;" aria-label="migration (1 élément)">migration</a> <a href="https://lodel.hypotheses.org/tag/modele" class="tag-cloud-link tag-link-63091 tag-link-position-6" style="font-size: 10.272727272727pt;" aria-label="modèle (3 éléments)">modèle</a> <a href="https://lodel.hypotheses.org/tag/openoffice" class="tag-cloud-link tag-link-3788 tag-link-position-7" style="font-size: 7pt;" aria-label="OpenOffice (1 élément)">OpenOffice</a> <a href="https://lodel.hypotheses.org/tag/releases1144561" class="tag-cloud-link tag-link-1144561 tag-link-position-8" style="font-size: 8.9636363636364pt;" aria-label="releases (2 éléments)">releases</a> <a href="https://lodel.hypotheses.org/tag/source" class="tag-cloud-link tag-link-3950 tag-link-position-9" style="font-size: 7pt;" aria-label="source (1 élément)">source</a> <a href="https://lodel.hypotheses.org/tag/utf-8" class="tag-cloud-link tag-link-1144551 tag-link-position-10" style="font-size: 8.9636363636364pt;" aria-label="utf-8 (2 éléments)">utf-8</a></div> </nav></section><section id="search-4" class="widget widget_search"><form role="search" method="get" class="search-form" action="https://lodel.hypotheses.org/"> <label for="search-form-1">Rechercher…</label> <input type="search" id="search-form-1" class="search-field" value="" name="s" /> <input type="submit" class="search-submit" value="Rechercher" /> </form> </section><section id="categories-2" class="widget widget_categories"><h2 class="widget-title">Catégories</h2><nav aria-label="Catégories"> <ul> <li class="cat-item cat-item-34135"><a href="https://lodel.hypotheses.org/category/actualites-news">Actualités / News</a> (1) </li> <li class="cat-item cat-item-69461"><a href="https://lodel.hypotheses.org/category/billets">Billets</a> (1) </li> <li class="cat-item cat-item-1144527"><a href="https://lodel.hypotheses.org/category/0-8">Lodel 0.8</a> (5) </li> <li class="cat-item cat-item-1478948"><a href="https://lodel.hypotheses.org/category/0-9">Lodel 0.9</a> (12) </li> <li class="cat-item cat-item-1144529"><a href="https://lodel.hypotheses.org/category/1-0">Lodel 1.0</a> (4) </li> <li class="cat-item cat-item-843832"><a href="https://lodel.hypotheses.org/category/releases843832">Releases</a> (3) </li> <li class="cat-item cat-item-3698"><a href="https://lodel.hypotheses.org/category/tools3698">Tools</a> (8) </li> <li class="cat-item cat-item-3615589"><a href="https://lodel.hypotheses.org/category/update3615589">Updates</a> (4) </li> </ul> </nav></section><section id="tag_cloud-2" class="widget widget_tag_cloud"><h2 class="widget-title">Étiquettes</h2><nav aria-label="Étiquettes"><div class="tagcloud"><a href="https://lodel.hypotheses.org/tag/boucle" class="tag-cloud-link tag-link-36837 tag-link-position-1" style="font-size: 7pt;" aria-label="boucle (1 élément)">boucle</a> <a href="https://lodel.hypotheses.org/tag/lodel-09" class="tag-cloud-link tag-link-1144539 tag-link-position-2" style="font-size: 13pt;" aria-label="lodel 0.9 (6 éléments)">lodel 0.9</a> <a href="https://lodel.hypotheses.org/tag/lodel-1-0" class="tag-cloud-link tag-link-1144540 tag-link-position-3" style="font-size: 8.9636363636364pt;" aria-label="lodel 1.0 (2 éléments)">lodel 1.0</a> <a href="https://lodel.hypotheses.org/tag/lodelscript" class="tag-cloud-link tag-link-51 tag-link-position-4" style="font-size: 7pt;" aria-label="Lodelscript (1 élément)">Lodelscript</a> <a href="https://lodel.hypotheses.org/tag/migration" class="tag-cloud-link tag-link-697 tag-link-position-5" style="font-size: 7pt;" aria-label="migration (1 élément)">migration</a> <a href="https://lodel.hypotheses.org/tag/modele" class="tag-cloud-link tag-link-63091 tag-link-position-6" style="font-size: 10.272727272727pt;" aria-label="modèle (3 éléments)">modèle</a> <a href="https://lodel.hypotheses.org/tag/openoffice" class="tag-cloud-link tag-link-3788 tag-link-position-7" style="font-size: 7pt;" aria-label="OpenOffice (1 élément)">OpenOffice</a> <a href="https://lodel.hypotheses.org/tag/releases1144561" class="tag-cloud-link tag-link-1144561 tag-link-position-8" style="font-size: 8.9636363636364pt;" aria-label="releases (2 éléments)">releases</a> <a href="https://lodel.hypotheses.org/tag/source" class="tag-cloud-link tag-link-3950 tag-link-position-9" style="font-size: 7pt;" aria-label="source (1 élément)">source</a> <a href="https://lodel.hypotheses.org/tag/utf-8" class="tag-cloud-link tag-link-1144551 tag-link-position-10" style="font-size: 8.9636363636364pt;" aria-label="utf-8 (2 éléments)">utf-8</a></div> </nav></section> </aside><!-- .widget-area --> <footer id="colophon" class="site-footer" role="contentinfo"> <div class="site-info"> <div class="site-name"> <div class="site-logo"><a href="https://lodel.hypotheses.org/" class="custom-logo-link" rel="home"><img width="1069" height="727" src="https://lodel.hypotheses.org/files/2022/10/cropped-lodel_couleur.png" class="custom-logo" alt="Lodel" decoding="async" srcset="https://lodel.hypotheses.org/files/2022/10/cropped-lodel_couleur.png 1069w, https://lodel.hypotheses.org/files/2022/10/cropped-lodel_couleur-300x204.png 300w, https://lodel.hypotheses.org/files/2022/10/cropped-lodel_couleur-500x340.png 500w, https://lodel.hypotheses.org/files/2022/10/cropped-lodel_couleur-768x522.png 768w" sizes="(max-width: 1069px) 100vw, 1069px" /></a></div> </div><!-- .site-name --> <div class="powered-by"> Fièrement propulsé par <a href="https://fr.wordpress.org/">WordPress</a> </div><!-- .powered-by --> </div><!-- .site-info --> <div> <span class="icon-hypotheses"></span>Un carnet de recherche proposé par <a href="https://hypotheses.org" title="Hypothèses">Hypothèses</a> - <a href="https://www.openedition.org/16884" title="Ce carnet dans le catalogue d'OpenEdition">Ce carnet dans le catalogue d'OpenEdition</a> - <a href="https://www.openedition.org/19362?lang=fr">Politique de confidentialité</a> - <a href="https://www.openedition.org/41101?lang=fr">Signaler un problème</a><br/><a href="https://lodel.hypotheses.org/feed" title="RSS">Flux de syndication</a> - <a href="https://lodel.hypotheses.org/?page_id=4">Crédits</a> - ISSN 2497-3114<br/> </div> </footer><!-- #colophon --> </div><!-- #page --> <script> jQuery(document).ready(function ($) { $( ".cmplz-placeholder-element" ).wrap( "<div class='cmplz-iframe'></div>" ); }); </script> <style> .tiktok-embed.cmplz-placeholder-element > div { max-width: 100%;} </style> <script>document.body.classList.remove("no-js");</script><button id="dark-mode-toggler" class="fixed-bottom" aria-pressed="false" onClick="toggleDarkMode()">Mode sombre : <span aria-hidden="true"></span></button> <style> #dark-mode-toggler > span { margin-left: 5px; } #dark-mode-toggler > span::before { content: 'Off'; } #dark-mode-toggler[aria-pressed="true"] > span::before { content: 'On'; } </style> <script>function toggleDarkMode() { // jshint ignore:line var toggler = document.getElementById( 'dark-mode-toggler' ); if ( 'false' === toggler.getAttribute( 'aria-pressed' ) ) { toggler.setAttribute( 'aria-pressed', 'true' ); document.documentElement.classList.add( 'is-dark-theme' ); document.body.classList.add( 'is-dark-theme' ); window.localStorage.setItem( 'twentytwentyoneDarkMode', 'yes' ); } else { toggler.setAttribute( 'aria-pressed', 'false' ); document.documentElement.classList.remove( 'is-dark-theme' ); document.body.classList.remove( 'is-dark-theme' ); window.localStorage.setItem( 'twentytwentyoneDarkMode', 'no' ); } } function twentytwentyoneIsDarkMode() { var isDarkMode = window.matchMedia( '(prefers-color-scheme: dark)' ).matches; if ( 'yes' === window.localStorage.getItem( 'twentytwentyoneDarkMode' ) ) { isDarkMode = true; } else if ( 'no' === window.localStorage.getItem( 'twentytwentyoneDarkMode' ) ) { isDarkMode = false; } return isDarkMode; } function darkModeInitialLoad() { var toggler = document.getElementById( 'dark-mode-toggler' ), isDarkMode = twentytwentyoneIsDarkMode(); if ( isDarkMode ) { document.documentElement.classList.add( 'is-dark-theme' ); document.body.classList.add( 'is-dark-theme' ); } else { document.documentElement.classList.remove( 'is-dark-theme' ); document.body.classList.remove( 'is-dark-theme' ); } if ( toggler && isDarkMode ) { toggler.setAttribute( 'aria-pressed', 'true' ); } } function darkModeRepositionTogglerOnScroll() { var toggler = document.getElementById( 'dark-mode-toggler' ), prevScroll = window.scrollY || document.documentElement.scrollTop, currentScroll, checkScroll = function() { currentScroll = window.scrollY || document.documentElement.scrollTop; if ( currentScroll + ( window.innerHeight * 1.5 ) > document.body.clientHeight || currentScroll < prevScroll ) { toggler.classList.remove( 'hide' ); } else if ( currentScroll > prevScroll && 250 < currentScroll ) { toggler.classList.add( 'hide' ); } prevScroll = currentScroll; }; if ( toggler ) { window.addEventListener( 'scroll', checkScroll ); } } darkModeInitialLoad(); darkModeRepositionTogglerOnScroll(); </script> <script> if ( -1 !== navigator.userAgent.indexOf( 'MSIE' ) || -1 !== navigator.appVersion.indexOf( 'Trident/' ) ) { document.body.classList.add( 'is-IE' ); } </script> <script src="https://lodel.hypotheses.org/wp-content/themes/twentytwentyone/assets/js/dark-mode-toggler.js?ver=1.0.0" id="twentytwentyone-dark-mode-support-toggle-js"></script> <script src="https://lodel.hypotheses.org/wp-content/themes/twentytwentyone/assets/js/editor-dark-mode-support.js?ver=1.0.0" id="twentytwentyone-editor-dark-mode-support-js"></script> <script src="https://lodel.hypotheses.org/wp-content/plugins/hal/js/cv-hal.js?ver=6.6.2" id="wp-hal-script4-js"></script> <script src="https://lodel.hypotheses.org/wp-content/plugins/wp-syntax/js/wp-syntax.js?ver=1.2" id="wp-syntax-js-js"></script> <script src="https://lodel.hypotheses.org/wp-includes/js/comment-reply.min.js?ver=6.6.2" id="comment-reply-js" async data-wp-strategy="async"></script> <script src="https://lodel.hypotheses.org/wp-content/themes/twentytwentyone/assets/js/responsive-embeds.js?ver=1.0" id="twenty-twenty-one-responsive-embeds-script-js"></script> <script src="https://lodel.hypotheses.org/wp-content/plugins/wp-featherlight/js/wpFeatherlight.pkgd.min.js?ver=1.3.4" id="wp-featherlight-js"></script> <script src="https://lodel.hypotheses.org/wp-content/plugins/complianz-gdpr-premium-multisite/assets/js/cookieconsent.min.js?ver=5.4.0.2" id="cmplz-cookie-js"></script> <script src="https://lodel.hypotheses.org/wp-content/plugins/complianz-gdpr-premium-multisite/assets/js/postscribe.min.js?ver=5.4.0.2" id="cmplz-postscribe-js"></script> <script id="cmplz-cookie-config-js-extra"> var complianz = {"static":"","is_multisite_root":"","set_cookies":[],"block_ajax_content":"0","banner_version":"2","version":"5.4.0.2","a_b_testing":"","do_not_track":"","consenttype":"optin","region":"eu","geoip":"1","categories":"<div class=\"cmplz-categories-wrap\"><label for=\"cmplz_functional\"><div class=\"cmplz-slider-checkbox\"><input id=\"cmplz_functional\" style=\"color:#191e23\" tabindex=\"0\" data-category=\"cmplz_functional\" class=\"cmplz-consent-checkbox cmplz-slider-checkbox cmplz_functional\" checked disabled size=\"40\" type=\"checkbox\" value=\"1\" \/><span class=\"cmplz-slider cmplz-round \" ><\/span><\/div><span class=\"cc-category\" style=\"color:#191e23\">Fonctionnel<\/span><\/label><\/div><div class=\"cmplz-categories-wrap\"><label for=\"cmplz_marketing\"><div class=\"cmplz-slider-checkbox\"><input id=\"cmplz_marketing\" style=\"color:#191e23\" tabindex=\"0\" data-category=\"cmplz_marketing\" class=\"cmplz-consent-checkbox cmplz-slider-checkbox cmplz_marketing\" size=\"40\" type=\"checkbox\" value=\"1\" \/><span class=\"cmplz-slider cmplz-round \" ><\/span><\/div><span class=\"cc-category\" style=\"color:#191e23\">Marketing<\/span><\/label><\/div><style>\t\t\t\t\t.cmplz-slider-checkbox input:checked + .cmplz-slider {\t\t\t\t\t\tbackground-color: #21759b\t\t\t\t\t}\t\t\t\t\t.cmplz-slider-checkbox input:focus + .cmplz-slider {\t\t\t\t\t\tbox-shadow: 0 0 1px #21759b;\t\t\t\t\t}\t\t\t\t\t.cmplz-slider-checkbox .cmplz-slider:before {\t\t\t\t\t\tbackground-color: #ffffff;\t\t\t\t\t}.cmplz-slider-checkbox .cmplz-slider-na:before {\t\t\t\t\t\tcolor:#ffffff;\t\t\t\t\t}\t\t\t\t\t.cmplz-slider-checkbox .cmplz-slider {\t\t\t\t\t background-color: #F56E28;\t\t\t\t\t}\t\t\t\t\t<\/style><style>#cc-window.cc-window .cmplz-categories-wrap .cc-check svg {stroke: #191e23}<\/style>","position":"bottom","title":"bottom minimal","theme":"minimal","checkbox_style":"slider","use_categories":"hidden","use_categories_optinstats":"visible","header":"","accept":"Accepter","revoke":"G\u00e9rer le consentement","dismiss":"Tout refuser","dismiss_timeout":"10","use_custom_cookie_css":"","custom_css":".cc-window \n\n \n\n \n\n \n\n \n\n\n\n#cmplz-consent-ui, #cmplz-post-consent-ui {} \n\n#cmplz-consent-ui .cmplz-consent-message {} \n\n#cmplz-consent-ui button, #cmplz-post-consent-ui button {}","readmore_optin":"Politique de cookies","readmore_impressum":"Impressum","accept_informational":"Accepter","message_optout":"Nous utilisons des cookies pour optimiser notre site web et notre service.","message_optin":"Nous utilisons des cookies pour optimiser notre site web et notre service.","readmore_optout":"Cookie Policy","readmore_optout_dnsmpi":"Do Not Sell My Personal Information","hide_revoke":"","disable_cookiebanner":"","banner_width":"","soft_cookiewall":"","type":"opt-in","layout":"basic","dismiss_on_scroll":"","dismiss_on_timeout":"","cookie_expiry":"365","nonce":"e14b7b3a4a","url":"https:\/\/lodel.hypotheses.org\/wp-json\/complianz\/v1\/?lang=fr&locale=fr_FR","set_cookies_on_root":"1","cookie_domain":"hypotheses.org","current_policy_id":"1","cookie_path":"\/","tcf_active":"","colorpalette_background_color":"#f9f9f9","colorpalette_background_border":"#f9f9f9","colorpalette_text_color":"#191e23","colorpalette_text_hyperlink_color":"#191e23","colorpalette_toggles_background":"#21759b","colorpalette_toggles_bullet":"#ffffff","colorpalette_toggles_inactive":"#F56E28","colorpalette_border_radius":"0px 0px 0px 0px","border_width":"1px 1px 1px 1px","colorpalette_button_accept_background":"#21759b","colorpalette_button_accept_border":"#21759b","colorpalette_button_accept_text":"#ffffff","colorpalette_button_deny_background":"#f56e28","colorpalette_button_deny_border":"#f56e28","colorpalette_button_deny_text":"#ffffff","colorpalette_button_settings_background":"#f1f1f1","colorpalette_button_settings_border":"#21759b","colorpalette_button_settings_text":"#21759b","buttons_border_radius":"5px 5px 5px 5px","box_shadow":"","animation":"none","animation_fade":"","animation_slide":"","view_preferences":"Pr\u00e9f\u00e9rences","save_preferences":"Enregistrer les pr\u00e9f\u00e9rences","accept_all":"Tout accepter","readmore_url":{"eu":"https:\/\/www.openedition.org\/37235"},"privacy_link":{"eu":""},"placeholdertext":"Cliquez pour accepter les cookies de marketing et activer ce contenu"}; </script> <script src="https://lodel.hypotheses.org/wp-content/plugins/complianz-gdpr-premium-multisite/assets/js/complianz.min.js?ver=5.4.0.2" id="cmplz-cookie-config-js"></script> <script src="https://lodel.hypotheses.org/wp-content/cleo-commons/js/openbarre.js?ver=6.6.2" id="cleo-global-js-js"></script> <script defer src="https://lodel.hypotheses.org/wp-content/plugins/akismet/_inc/akismet-frontend.js?ver=1718096774" id="akismet-frontend-js"></script> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10