{"id":463,"date":"2023-04-13T17:53:10","date_gmt":"2023-04-13T15:53:10","guid":{"rendered":"https:\/\/tobi.heinecke.dev\/?page_id=463"},"modified":"2023-12-04T15:22:19","modified_gmt":"2023-12-04T14:22:19","slug":"umsetzungsbeispiele","status":"publish","type":"page","link":"https:\/\/tobi.umgeodat.de\/en\/umsetzungsbeispiele\/","title":{"rendered":"Implementation examples"},"content":{"rendered":"<div data-elementor-type=\"wp-page\" data-elementor-id=\"463\" class=\"elementor elementor-463\">\n\t\t\t\t<div class=\"elementor-element elementor-element-2aea2ce e-flex e-con-boxed e-con e-parent\" data-id=\"2aea2ce\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-d9a0aab elementor-widget elementor-widget-open_user_map_widget\" data-id=\"d9a0aab\" data-element_type=\"widget\" data-widget_type=\"open_user_map_widget.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\n\t\t\n\t\t\t<!-- Frontend Block -->\n\n\t\t\t\n\n<div class=\"open-user-map\">\n\n  \n  \n  <!-- Map Container -->\n  <div class=\"oum-map-container\">\n    \n<div class=\"box-wrap map-size-fullwidth\">\n  \n  <div class=\"map-wrap\">\n    <div class=\"oum-loading-overlay\">\n      <div class=\"oum-loading-spinner\"><\/div>\n    <\/div>\n    <div id=\"map-20210929\" class=\"leaflet-map map-style_OpenStreetMap.DE\" data-oum-tile-provider-container=\"openstreetmap\"><\/div>\n    \n    \n    \n    \n    \n    \n    <script type=\"text\/javascript\" id=\"oum-init-map\" data-category=\"functional\" class=\"cmplz-native\" data-oum-tile-provider=\"openstreetmap\">\n\n      map_el = `map-20210929`;\n\n      if(document.getElementById(map_el)) {\n        \/* Transfer PHP array to JS json *\/\n        var oum_all_locations = [];\n\n        \/\/ Wait for the main initialization function to be available, then call it\n        function oumWaitForMainInit() {\n          if (typeof oumInitializeMap === 'function') {\n            console.log('\ud83d\uddfa\ufe0f Open User Map: Starting');\n            \n            \/\/ Initialize the map\n            oumInitializeMap();\n          } else {\n            setTimeout(oumWaitForMainInit, 100);\n          }\n        }\n        \n        setTimeout(oumWaitForMainInit, 100);\n      }\n\n    <\/script>\n\n    <script type=\"text\/javascript\" id=\"oum-inline-js\" \n      data-category=\"functional\" \n      class=\"cmplz-native\" \n      data-minify=\"0\"\n      data-no-optimize=\"1\"\n      data-no-defer=\"1\"\n      data-no-combine=\"1\"\n      data-cfasync=\"false\"\n      data-pagespeed-no-defer\n data-boot=\"1\">\n\n      map_el = `map-20210929`;\n\n      if(document.getElementById(map_el)) {\n\n        \/\/ Wait for OUMLoader to be defined\n        function oumLoading() {\n          if (typeof OUMLoader !== 'undefined') {\n            \/\/ Initialize loader for this map\n            OUMLoader.initLoader(map_el);\n\n            \/\/ Add event listener for map initialization complete\n            document.addEventListener('oum:map_initialized', function(e) {\n              if (e.detail.mapId === map_el) {\n                OUMLoader.setMapInitialized(map_el);\n              }\n            });\n          } else {\n            \/\/ If OUMLoader is not yet defined, wait and try again\n            setTimeout(oumLoading, 100);\n          }\n        }\n\n        \/\/ OUM Loading Spinner\n        oumLoading();\n\n        \/\/ OUM inline JS variables\n        var mapStyle = `OpenStreetMap.DE`;\n        var oum_tile_provider_mapbox_key = ``;\n        var marker_icon_url = `https:\/\/tobi.umgeodat.de\/wp-content\/plugins\/open-user-map\/src\/leaflet\/images\/marker-icon_custom2-2x.png`;\n        var marker_shadow_url = `https:\/\/tobi.umgeodat.de\/wp-content\/plugins\/open-user-map\/src\/leaflet\/images\/marker-shadow.png`;\n        var oum_enable_scrollwheel_zoom_map = true;\n        var oum_enable_cluster = false;\n        var oum_enable_fullscreen = true;\n\n        var oum_enable_searchbar = false;\n        var oum_searchbar_type = `address`;\n\n        var oum_geosearch_selected_provider = ``; \n        var oum_geosearch_provider = `osm`;\n        var oum_geosearch_provider_geoapify_key = ``;\n        var oum_geosearch_provider_here_key = ``;\n        var oum_geosearch_provider_mapbox_key = ``;\n        \n        var oum_enable_searchaddress_button = false;\n        var oum_searchaddress_label = `Search for address`;\n\n        var oum_enable_searchmarkers_button = true;\n        var oum_searchmarkers_label = `Find marker`;\n        var oum_searchmarkers_zoom = `8`;\n\n        var oum_enable_currentlocation = false;\n        var oum_action_after_submit = `text`;\n        var thankyou_redirect = ``;\n        var start_lat = Number(51.824104983416);\n        var start_lng = Number(11.568603515625);\n        var start_zoom = Number(8);\n        \n        var oum_enable_fixed_map_bounds = ``;\n        var oum_use_settings_start_location = true;\n        var oum_has_regions = false;\n        var oum_enable_multiple_marker_types = `false`;\n        var oum_hide_filterbox = false;\n        var oum_hide_location_popup = false;\n        var oum_enable_address = `on`;\n        var oum_enable_address_autofill = ``;\n\n        \/\/ WordPress timezone for opening hours calculations\n        var oum_wordpress_timezone = `Europe\/Berlin`;\n\n        \/\/ Custom Image data\n        var oum_custom_image_url = ``;\n        var oum_custom_image_bounds = {};\n        var oum_custom_image_hide_tiles = false;\n        var oum_custom_image_background_color = `#ffffff`;\n\n        var oum_location = {};\n        var oum_custom_css = '';\n        var oum_custom_script = '';\n        var oum_max_image_filesize = 10;\n        var oumMap;\n        var oumMap2;\n\n        \/**\n         * Conditional Field Feature\n         * \n         * @param {string} sourceField - The source field selector\n         * @param {string} targetField - The target field selector\n         * @param {array} condShow - The values that should show the target field\n         * @param {array|null} condHide - The values that should hide the target field. If empty\/null\/undefined, the field will be hidden when condShow is not met.\n         *\/\n        var oumConditionalField = (sourceField, targetField, condShow, condHide = null) => {\n            const sourceElements = document.querySelectorAll(sourceField); \/\/ Select all radios\/checkboxes or single select\n            const targetElementWrapper = document.querySelector(targetField)?.parentElement; \/* works with custom fields only *\/\n\n            \/\/ Check if both sourceElements and targetElementWrapper exist\n            if (!sourceElements.length) {\n                console.warn(`OUM: Source field(s) not found: ${sourceField}`);\n                return;\n            }\n\n            if (!targetElementWrapper) {\n                console.warn(`OUM: Target field wrapper not found: ${targetField}`);\n                return;\n            }\n\n            \/* Event listener for change *\/\n            const onChangeHandler = function() {\n                \/\/ Get selected values for checkboxes and single selected value for radios\/select\n                const selectedValues = Array.from(sourceElements)\n                    .filter(element => element.checked || element.tagName === 'SELECT')\n                    .map(element => element.value);\n\n                const selectedValue = selectedValues[0]; \/\/ For radios and selects, we use only the first (and only) value\n\n                console.log('OUM: run condition', {selectedValue, sourceField, targetField, condShow, condHide});\n                \n                \/\/ Show or hide target field based on the selected value(s)\n                if (condShow.includes(selectedValue)) {\n                    \/\/ Show the field if condShow condition is met\n                    targetElementWrapper.style.display = 'block';\n                } else if (condHide && Array.isArray(condHide) && condHide.length > 0 && condHide.includes(selectedValue)) {\n                    \/\/ Hide the field if condHide is provided and condition is met\n                    targetElementWrapper.style.display = 'none';\n                } else if (!condHide || (Array.isArray(condHide) && condHide.length === 0)) {\n                    \/\/ If condHide is empty\/null\/undefined, hide the field when condShow is not met\n                    targetElementWrapper.style.display = 'none';\n                }\n            };\n\n            \/* Attach the event listener to each radio\/checkbox or select *\/\n            sourceElements.forEach(element => {\n                element.addEventListener('change', onChangeHandler);\n            });\n\n            \/* Trigger initially *\/\n            onChangeHandler(); \/\/ Call it directly to set initial state\n        };\n\n        \/**\n         * Add Custom Styles\n         *\/\n        \n                            \/* custom color *\/\n          oum_custom_css += `\n            .open-user-map .add-location #close-add-location-overlay:hover {color: #e82c71 !important}\n            .open-user-map .box-wrap .map-wrap .open-add-location-overlay {background-color: #e82c71 !important}\n            .open-user-map .box-wrap .map-wrap .open-add-location-overlay:hover,\n            .open-user-map .box-wrap .map-wrap .open-add-location-overlay:active {background-color: #d12866 !important}\n            .open-user-map .box-wrap .map-wrap .oum-filter-controls .oum-filter-list .close-filter-list:hover {color: #e82c71 !important}\n            .open-user-map .oum-advanced-filter-button .oum-advanced-filter-content .close-advanced-filter:hover,\n            .open-user-map .oum-advanced-filter-panel .oum-advanced-filter-content .close-advanced-filter:hover {color: #e82c71 !important}\n            .open-user-map input.oum-switch[type=\"checkbox\"]:checked + label::before {background-color: #e82c71 !important}\n            .open-user-map .add-location .location-overlay-content #oum_add_location .oum-required-indicator {color: #e82c71 !important}\n            .open-user-map .add-location .location-overlay-content #oum_add_location h2 {color: #e82c71 !important}\n            .open-user-map .add-location .location-overlay-content #oum_add_location input[type=text]:focus,\n            .open-user-map .add-location .location-overlay-content #oum_add_location input[type=email]:focus,\n            .open-user-map .add-location .location-overlay-content #oum_add_location input[type=url]:focus,\n            .open-user-map .add-location .location-overlay-content #oum_add_location textarea:focus,\n            .open-user-map .add-location .location-overlay-content #oum_add_location select:focus {border-color: #e82c71 !important; box-shadow: 0 0 0 2px #e82c711a !important}\n            .open-user-map .add-location .location-overlay-content #oum_add_location_thankyou h3 {color: #e82c71 !important}\n            .open-user-map .oum_location_text a {color: #e82c71 !important}\n            .open-user-map .oum_location_text .oum_vote_button_wrap .oum_vote_button.voted {background: #e82c71 !important; border-color: #e82c71 !important;}\n            .open-user-map .oum-tabs {border-color: #e82c71 !important}\n            .open-user-map .oum-tabs .nav-item:hover {color: #e82c71 !important; border-color: #e82c71 !important}\n            .open-user-map .oum-tabs .nav-item.active {color: #e82c71 !important; border-color: #e82c71 !important}\n            .open-user-map .box-wrap .map-wrap .oum-attribution a {color: #e82c71 !important;}\n            \/* Submit Button *\/\n            .open-user-map .add-location .location-overlay-content #oum_add_location input[type=submit] {background-color: #e82c71 !important; border-color: #e82c71 !important;}\n            .open-user-map .add-location .location-overlay-content #oum_add_location input[type=submit]:hover,\n            .open-user-map .add-location .location-overlay-content #oum_add_location input[type=submit]:active {background-color: #d12866 !important;}\n            \/* Message CTA Buttons *\/\n            .open-user-map .add-location .location-overlay-content #oum_add_location_thankyou button {background-color: #e82c71 !important; border-color: #e82c71 !important;}\n            .open-user-map .add-location .location-overlay-content #oum_add_location_thankyou button:hover,\n            .open-user-map .add-location .location-overlay-content #oum_add_location_thankyou button:active {background-color: #d12866 !important;}\n            .open-user-map .add-location .location-overlay-content .oum-delete-confirmation button {background-color: #e82c71 !important; border-color: #e82c71 !important;}\n            .open-user-map .add-location .location-overlay-content .oum-delete-confirmation button:hover,\n            .open-user-map .add-location .location-overlay-content .oum-delete-confirmation button:active {background-color: #d12866 !important;}\n            \/* Media Section Colors *\/\n            .open-user-map .add-location .location-overlay-content #oum_add_location .oum_media .media-upload label {color: #e82c71 !important}\n            .open-user-map .add-location .location-overlay-content #oum_add_location .oum_media .oum-image-upload .media-upload-top label .multi-upload-indicator {background: #e82c71 !important}\n            .open-user-map .add-location .location-overlay-content #oum_add_location .oum_media .oum-video-upload input[type=text]:hover {border-color: #e82c71 !important}\n            .open-user-map .add-location .location-overlay-content #oum_add_location .oum_media .oum-video-upload input[type=text]:focus {border-color: #e82c71 !important; box-shadow: 0 0 0 2px #e82c711a !important}\n            .open-user-map .add-location .location-overlay-content #oum_add_location .oum_media .image-preview-placeholder {border-color: #e82c71 !important; background: #e82c710a !important}\n            .open-user-map .add-location .location-overlay-content #oum_add_location .oum_media .oum-image-preview-grid .image-preview-item.dragging {border-color: #e82c71 !important}\n            \/* List Styles *\/\n            .open-user-map-locations-list .oum-locations-list-item .oum_location_text a {color: #e82c71 !important} \n            .open-user-map-locations-list .oum-locations-list-item .oum_location_text .oum_vote_button_wrap .oum_vote_button.voted {background: #e82c71 !important; border-color: #e82c71 !important;}`;\n\n        \n        \n          \/* custom map height *\/\n          oum_custom_css += `\n            .open-user-map .box-wrap > .map-wrap {padding: 0 !important; height: 600px !important; aspect-ratio: unset !important;}`;\n\n        \n        \n        var custom_style = document.createElement('style');\n\n        if (custom_style.styleSheet) {\n          custom_style.styleSheet.cssText = oum_custom_css;\n        } else {\n          custom_style.appendChild(document.createTextNode(oum_custom_css));\n        }\n\n        document.getElementsByTagName('head')[0].appendChild(custom_style);\n\n        \/* Add initial CSS to prevent flash of unstyled content *\/\n        var initialStyles = document.createElement('style');\n        initialStyles.textContent = `\n          .oum-hidden {\n            opacity: 0 !important;\n            visibility: hidden !important;\n            transition: opacity 0.3s ease, visibility 0.3s ease;\n          }\n          .oum-filter-controls,\n          .open-add-location-overlay,\n          #oum_filter_markers,\n          .oum-advanced-filter-button,\n          .oum-advanced-filter-panel,\n          .oum-sidebar {\n            opacity: 0;\n            visibility: hidden;\n            transition: opacity 0.3s ease, visibility 0.3s ease;\n          }\n          .oum-filter-controls.visible,\n          .open-add-location-overlay.visible,\n          #oum_filter_markers.visible,\n          .oum-advanced-filter-button.visible,\n          .oum-advanced-filter-panel.visible,\n          .oum-sidebar.visible {\n            opacity: 1;\n            visibility: visible;\n          }\n        `;\n        document.head.appendChild(initialStyles);\n\n      }\n    <\/script>\n\n  <\/div>\n\n<\/div>\n  <\/div>\n\n<\/div>\n\t\t\t\t\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-5dcf1e6 e-flex e-con-boxed e-con e-parent\" data-id=\"5dcf1e6\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-348d1c0 e-con-full e-flex e-con e-parent\" data-id=\"348d1c0\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-0c45ed9 elementor-widget elementor-widget-text-editor\" data-id=\"0c45ed9\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><em>Diese Karte zeigt Umsetzungsbeispiele aus der Praxis und Demonstrationsfl\u00e4chen zu Naturschutzma\u00dfnahmen in der Agrarlandschaft. <br \/><\/em><\/p><p><em>Wenn Sie auf die Marker in der Karte klicken, \u00f6ffnet sich ein Popup mit weiterf\u00fchrenden Infos zu der Ma\u00dfnahme.<\/em><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-27838b3 e-con-full e-flex e-con e-parent\" data-id=\"27838b3\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-9f96356 elementor-widget elementor-widget-text-editor\" data-id=\"9f96356\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><strong><em>Sie wollen Ihre Ma\u00dfnahmefl\u00e4chen ebenfalls verlinken und zum Erfahrungsaustausch beitragen oder kennen weitere Betriebe mit bereits umgesetzten Naturschutzma\u00dfnahmen? <\/em><\/strong><\/p><p><strong><em>Schicken Sie uns gerne folgende Angaben:<\/em><\/strong><\/p><ul><li data-list=\"bullet\"><strong><em>Ma\u00dfnahmenbezeichnung,<\/em><\/strong><\/li><li data-list=\"bullet\"><strong><em>Koordinaten,<\/em><\/strong><\/li><li data-list=\"bullet\"><strong><em>Foto und -autor,<\/em><\/strong><\/li><li data-list=\"bullet\"><strong><em>Kontaktdaten.<\/em><\/strong><\/li><\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>","protected":false},"excerpt":{"rendered":"<p>Open User Map Dieser Block zeigt Ihre Standorte auf einer Karte im Frontend an. Diese Karte zeigt Umsetzungsbeispiele aus der Praxis und Demonstrationsfl\u00e4chen zu Naturschutzma\u00dfnahmen in der Agrarlandschaft. Wenn Sie auf die Marker in der Karte klicken, \u00f6ffnet sich ein Popup mit weiterf\u00fchrenden Infos zu der Ma\u00dfnahme. Sie wollen Ihre Ma\u00dfnahmefl\u00e4chen ebenfalls verlinken und zum [&hellip;]<\/p>","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"inline_featured_image":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"class_list":["post-463","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/tobi.umgeodat.de\/en\/wp-json\/wp\/v2\/pages\/463","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tobi.umgeodat.de\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/tobi.umgeodat.de\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/tobi.umgeodat.de\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/tobi.umgeodat.de\/en\/wp-json\/wp\/v2\/comments?post=463"}],"version-history":[{"count":0,"href":"https:\/\/tobi.umgeodat.de\/en\/wp-json\/wp\/v2\/pages\/463\/revisions"}],"wp:attachment":[{"href":"https:\/\/tobi.umgeodat.de\/en\/wp-json\/wp\/v2\/media?parent=463"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}