{"id":2143,"date":"2025-10-17T10:16:52","date_gmt":"2025-10-17T08:16:52","guid":{"rendered":"https:\/\/sdg2033.bereishit.de\/shtoni-festen-tuaj\/"},"modified":"2026-03-03T14:34:02","modified_gmt":"2026-03-03T13:34:02","slug":"shtoni-festen-tuaj","status":"publish","type":"page","link":"https:\/\/sdg2033.bereishit.de\/sq\/shtoni-festen-tuaj\/","title":{"rendered":"Shtoni fest\u00ebn tuaj"},"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>Ky\u00e7u p\u00ebr t\u00eb shtuar dhe modifikuar festimet e tua.<\/h2>\n<p>P\u00ebr momentin nuk ke nevoj\u00eb t\u00eb tregosh detaje rreth planeve t\u00eb tua, thjesht tregoji bot\u00ebs, qytetit dhe numrit t\u00eb p\u00ebraf\u00ebrt t\u00eb t\u00eb krishter\u00ebve me t\u00eb cil\u00ebt d\u00ebshiron t\u00eb festosh. Pas disa vitesh shtoni disa detaje ju lutem.<\/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>Hyr n\u00eb llogarin\u00eb t\u00ebnde<\/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>Regjistrohu p\u00ebr nj\u00eb llogari t\u00eb re<\/h2>\n<p>Nuk keni nj\u00eb llogari? Regjistrohu k\u00ebtu. <\/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\/sq\/regjistrohu\/\">Regjistrohu tani<\/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-2143","page","type-page","status-publish","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/sdg2033.bereishit.de\/sq\/wp-json\/wp\/v2\/pages\/2143","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sdg2033.bereishit.de\/sq\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/sdg2033.bereishit.de\/sq\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/sdg2033.bereishit.de\/sq\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/sdg2033.bereishit.de\/sq\/wp-json\/wp\/v2\/comments?post=2143"}],"version-history":[{"count":28,"href":"https:\/\/sdg2033.bereishit.de\/sq\/wp-json\/wp\/v2\/pages\/2143\/revisions"}],"predecessor-version":[{"id":3066,"href":"https:\/\/sdg2033.bereishit.de\/sq\/wp-json\/wp\/v2\/pages\/2143\/revisions\/3066"}],"wp:attachment":[{"href":"https:\/\/sdg2033.bereishit.de\/sq\/wp-json\/wp\/v2\/media?parent=2143"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}