{"id":2442,"date":"2025-10-17T10:16:52","date_gmt":"2025-10-17T08:16:52","guid":{"rendered":"https:\/\/sdg2033.bereishit.de\/ajoutez-votre-celebration\/"},"modified":"2026-01-08T11:16:30","modified_gmt":"2026-01-08T10:16:30","slug":"ajouter-celebration","status":"publish","type":"page","link":"https:\/\/sdg2033.bereishit.de\/fr\/ajouter-celebration\/","title":{"rendered":"Ajoutez votre c\u00e9l\u00e9bration"},"content":{"rendered":"<p><div class=\"et_d4_element et_pb_section et_pb_section_0 et_pb_with_background  et_pb_css_mix_blend_mode et_section_regular et_block_section\" >\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t<div class=\"et_d4_element et_pb_row et_pb_row_0  et_pb_css_mix_blend_mode et_block_row\">\n\t\t\t\t<div class=\"et_d4_element et_pb_column_4_4 et_pb_column et_pb_column_0  et_pb_css_mix_blend_mode et-last-child et_block_column\">\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t<div class=\"et_pb_module et_d4_element et_pb_code et_pb_code_0\">\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t<div class=\"et_pb_code_inner\"><script>\njQuery(function($){\n  \/\/ Ziel-Datum (Jahr, Monat-1, Tag)\n  var targetDate = new Date(2033, 3, 17);\n\n  function setDate(){\n    \/\/ Eingabefeld suchen \u2013 nicht der Button (.ui-datepicker-trigger), sondern das eigentliche input\n    var $input = $('input[name=\"date_event\"], #date_event, input.hasDatepicker');\n\n    if ($input.length === 0) return;\n\n    \/\/ Nur setzen, wenn leer\n    if ($input.val().trim() === '') {\n      try {\n        \/\/ jQuery UI Datepicker setzen\n        $input.datepicker('setDate', targetDate);\n        console.log('[date_event] gesetzt \u00fcber jQuery UI \u2192', targetDate);\n      } catch(e) {\n        \/\/ Fallback: ISO\n        var iso = targetDate.toISOString().slice(0,10);\n        $input.val(iso).trigger('change');\n        console.log('[date_event] gesetzt \u00fcber Fallback \u2192', iso);\n      }\n    }\n  }\n\n  \/\/ Direkt beim Laden\n  setDate();\n\n  \/\/ Falls Formular sp\u00e4ter eingeblendet (Steps \/ AJAX)\n  $(document).on('focus', 'input[name=\"date_event\"], #date_event, input.hasDatepicker', function(){\n    setDate();\n  });\n});\n<\/script>\n<style>\n\/* Nativen Caret im Fokus ausblenden, wenn Fake-Caret aktiv ist *\/\n.de_fb_form_wrapper .use-fake-caret {\n  caret-color: transparent !important;\n}\n\n\/* Style des k\u00fcnstlichen Carets *\/\n.fake-caret {\n  position: absolute;\n  width: 3px;                  \/* \u2190 hier dicker machen: z.B. 3px oder 4px *\/\n  background: #ffcc66;         \/* goldgelb *\/\n  pointer-events: none;\n  animation: fakeBlink 1s step-start infinite;\n  will-change: transform, height;\n  z-index: 2;\n}\n\n@keyframes fakeBlink { 50% { opacity: 0; } }\n<\/style>\n\n<script>\ndocument.addEventListener('DOMContentLoaded', function () {\n  const selector = [\n    '.de_fb_form_wrapper input[type=\"text\"]',\n    '.de_fb_form_wrapper input[type=\"email\"]',\n    '.de_fb_form_wrapper input[type=\"url\"]',\n    '.de_fb_form_wrapper input[type=\"tel\"]',\n    '.de_fb_form_wrapper input[type=\"number\"]',\n    '.de_fb_form_wrapper input[type=\"search\"]',\n    '.de_fb_form_wrapper input[type=\"password\"]'\n  ].join(',');\n\n  const inputs = Array.from(document.querySelectorAll(selector));\n  if (!inputs.length) return;\n\n  \/\/ Canvas f\u00fcr Textmessung wiederverwenden\n  const measurer = document.createElement('canvas').getContext('2d');\n\n  \/\/ Ein Fake-Caret pro Input erzeugen (wenn fokussiert)\n  inputs.forEach(input => {\n    let caretEl = null;\n    let rafId = null;\n\n    const ensureCaretEl = () => {\n      if (caretEl && caretEl.isConnected) return caretEl;\n      caretEl = document.createElement('span');\n      caretEl.className = 'fake-caret';\n      \/\/ Container relativ positionieren, damit absolute Caret-Position stimmt\n      const container = input.parentElement || input;\n      if (getComputedStyle(container).position === 'static') {\n        container.style.position = 'relative';\n      }\n      container.appendChild(caretEl);\n      return caretEl;\n    };\n\n    const getFontShorthand = (el) => {\n      const cs = getComputedStyle(el);\n      \/\/ font shorthand: style variant weight size\/line-height family\n      const lineH = cs.lineHeight === 'normal' ? cs.fontSize : cs.lineHeight;\n      return `${cs.fontStyle} ${cs.fontVariant} ${cs.fontWeight} ${cs.fontSize}\/${lineH} ${cs.fontFamily}`;\n    };\n\n    const measureText = (el, text) => {\n      measurer.font = getComputedStyle(el).font;\n      \/\/ Fallback falls font shorthand leer:\n      if (!measurer.font || measurer.font === 'normal normal 400 16px\/normal sans-serif') {\n        measurer.font = getFontShorthand(el);\n      }\n      return measurer.measureText(text).width;\n    };\n\n    const updateCaret = () => {\n      \/\/ Nur wenn fokussiert\n      if (document.activeElement !== input) return;\n\n      const cs = getComputedStyle(input);\n      const padL = parseFloat(cs.paddingLeft) || 0;\n      const padR = parseFloat(cs.paddingRight) || 0;\n      const borL = parseFloat(cs.borderLeftWidth) || 0;\n      const borT = parseFloat(cs.borderTopWidth) || 0;\n\n      const value = input.value || '';\n      const caretIndex = input.selectionStart || 0;\n\n      \/\/ Textbreite bis zur Cursorposition\n      const leftText = value.substring(0, caretIndex);\n      const textW = measureText(input, leftText);\n\n      \/\/ Scroll-Offset des Inputs ber\u00fccksichtigen\n      const scrollX = input.scrollLeft || 0;\n\n      const rect = input.getBoundingClientRect();\n      const containerRect = (input.parentElement || input).getBoundingClientRect();\n\n      const left =\n        (rect.left - containerRect.left) + borL + padL + textW - scrollX;\n\n      \/\/ H\u00f6he \u2248 line-height (ohne Innenabst\u00e4nde etwas kleiner)\n      let caretH = parseFloat(cs.lineHeight);\n      if (isNaN(caretH)) caretH = parseFloat(cs.fontSize) * 1.2;\n      \/\/ vertikal mittig im Eingabefeld\n      const top =\n        (rect.top - containerRect.top) + borT + (input.clientHeight - caretH) \/ 2;\n\n      const el = ensureCaretEl();\n      el.style.transform = `translate(${left}px, ${top}px)`;\n      el.style.height = `${caretH}px`;\n    };\n\n    const start = () => {\n      input.classList.add('use-fake-caret');   \/\/ nativen Caret verstecken\n      ensureCaretEl();\n      cancelAnimationFrame(rafId);\n      const loop = () => {\n        updateCaret();\n        rafId = requestAnimationFrame(loop);\n      };\n      rafId = requestAnimationFrame(loop);\n    };\n\n    const stop = () => {\n      input.classList.remove('use-fake-caret');\n      cancelAnimationFrame(rafId);\n      rafId = null;\n      if (caretEl) { caretEl.remove(); caretEl = null; }\n    };\n\n    \/\/ Events, die die Caret-Position beeinflussen\n    input.addEventListener('focus', start);\n    input.addEventListener('blur', stop);\n    \/\/ Diese Events fangen wir ab, die rAF-Schleife sorgt f\u00fcr fl\u00fcssige Updates\n    ['input','keyup','keydown','click','mousedown','mouseup','touchstart','touchend','scroll'].forEach(evt => {\n      input.addEventListener(evt, () => {\n        \/\/ rAF-Loop l\u00e4uft ohnehin; optional einmal sofort aktualisieren:\n        updateCaret();\n      }, { passive: true });\n    });\n  });\n});\n<\/script>\n<\/div>\n\t\t\t<\/div>\n\t\t\t<\/div>\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t<\/div>\n\t\t\t\t\n\t\t\t\t\n\t\t\t<\/div><div class=\"et_d4_element et_pb_section et_pb_section_1 et_pb_with_background  et_pb_css_mix_blend_mode et_section_regular et_block_section\" >\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t<div class=\"et_d4_element et_pb_row et_pb_row_1  et_pb_css_mix_blend_mode et_block_row\">\n\t\t\t\t<div class=\"et_d4_element et_pb_column_4_4 et_pb_column et_pb_column_1  et_pb_css_mix_blend_mode et-last-child et_block_column\">\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t<div class=\"et_pb_module et_d4_element et_pb_text et_pb_text_0  et_pb_text_align_center et_pb_bg_layout_light\">\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t<div class=\"et_pb_text_inner\"><h2>Connectez-vous pour ajouter et modifier votre ou vos c\u00e9l\u00e9brations.<\/h2>\n<p>Pour l'instant, vous n'avez pas besoin de d\u00e9tailler vos projets, dites simplement le monde, la ville et le nombre estim\u00e9 de chr\u00e9tiens avec lesquels vous voulez c\u00e9l\u00e9brer. Dans quelques ann\u00e9es, ajoutez des d\u00e9tails, s'il vous pla\u00eet. <\/p><\/div>\n\t\t\t<\/div><div class=\"et_pb_module et_d4_element et_pb_text et_pb_text_1  et_pb_text_align_center et_pb_bg_layout_light\">\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t<div class=\"et_pb_text_inner\"><p>Connectez-vous \u00e0 votre compte<\/p><\/div>\n\t\t\t<\/div><div class=\"et_pb_module et_d4_element et_pb_text et_pb_text_2  et_pb_text_align_center et_pb_bg_layout_light\">\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t<div class=\"et_pb_text_inner\"><h2>S'inscrire \u00e0 un nouveau compte<\/h2>\n<p>Vous n'avez pas de compte ? Inscrivez-vous ici. <\/p><\/div>\n\t\t\t<\/div><div class=\"et_pb_button_module_wrapper et_pb_button_0_wrapper et_pb_button_alignment_center et_pb_module \">\n\t\t\t\t<a class=\"et_pb_button et_d4_element et_pb_button_0 et_pb_bg_layout_light et_block_module\" href=\"https:\/\/sdg2033.bereishit.de\/fr\/registre\/\">Cr\u00e9er un compte<\/a>\n\t\t\t<\/div><div class=\"et_pb_module et_d4_element et_pb_text et_pb_text_3  et_pb_text_align_left et_pb_bg_layout_light\">\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t<div class=\"et_pb_text_inner\"><p>1<\/p><\/div>\n\t\t\t<\/div>\n\t\t\t<\/div>\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t<\/div>\n\t\t\t\t\n\t\t\t\t\n\t\t\t<\/div><\/p>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"_et_pb_use_builder":"on","_et_pb_old_content":"","_et_gb_content_width":"","footnotes":""},"class_list":["post-2442","page","type-page","status-publish","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/sdg2033.bereishit.de\/fr\/wp-json\/wp\/v2\/pages\/2442","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sdg2033.bereishit.de\/fr\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/sdg2033.bereishit.de\/fr\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/sdg2033.bereishit.de\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/sdg2033.bereishit.de\/fr\/wp-json\/wp\/v2\/comments?post=2442"}],"version-history":[{"count":31,"href":"https:\/\/sdg2033.bereishit.de\/fr\/wp-json\/wp\/v2\/pages\/2442\/revisions"}],"predecessor-version":[{"id":2610,"href":"https:\/\/sdg2033.bereishit.de\/fr\/wp-json\/wp\/v2\/pages\/2442\/revisions\/2610"}],"wp:attachment":[{"href":"https:\/\/sdg2033.bereishit.de\/fr\/wp-json\/wp\/v2\/media?parent=2442"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}