Klimaschutzsiedlung Bielefeld-Sennestadt

In Bielefeld-Sennestadt ca. 10km südlich von der Bielefelder Innenstadt befindet sich der Standort der neuen Klimaschutzsiedlung. Auf dem Schillinggelände sollen unteranderem modernste und energieeffiziente Wohngebäude errichtet werden (mind. KFW-55 Standard).

Auf dem Schillinggelände kümmern wir uns neben den notwendigen Erdbewegungen um die Bauvorbereitung, damit diese Termingerecht durchgeführt werden kann.

Alle Arbeiten werden mit modernen Ketten- und Radbaggern, Raupen, Radladern und Kleingeräten, aus unserem firmeneigenen Fuhrpark durchgeführt.

Hermann Kathöfer GmbH

Seit nunmehr zwei Jahrzehnten steht der Name Hermann Kathöfer GmbH aus Rietberg für Erfahrung und Qualität am Bau. Einmalig in der Region bietet unser Unternehmen Abbruch- und Erdarbeiten, Hoch- und Tiefbau sowie Containerdienst und Entsorgung auf dem hauseigenen Recyclinghof an.

Letzte Beiträge

Kathöfer Wertstoff GmbH in Rietberg.

Entsorgung & Recycling

Wir bieten maßgeschneiderte Lösungen für Privat- und Gewerbekunden. Wählen Sie unten Ihren Bereich aus, um mehr über unsere Dienstleistungen zu erfahren.

) | Bedingung: Gesamte Website * * Erwartete Struktur: * Button-Widget -> Erweitert > CSS-Klassen: bewerbungsformular * -> Erweitert > Attribute: data-stelle|Schlepperfahrer / Maschinist * Formular -> Hidden Field mit ID: stelle (=> input#form-field-stelle) */ (function () { 'use strict'; var TRIGGER_SELECTOR = '.bewerbungsformular'; var DATA_ATTRIBUTE = 'data-stelle'; var FIELD_ID = 'form-field-stelle'; var FIELD_NAME = 'form_fields[stelle]'; var DEBUG = false; // auf true setzen zum Testen (Konsole) var currentStelle = ''; var retryTimer = null; function log() { if (DEBUG && window.console) { console.log.apply(console, ['[Bewerbung]'].concat([].slice.call(arguments))); } } /** Alle Instanzen des Hidden Fields einsammeln (Popup kann mehrfach im DOM liegen). */ function getFields() { var list = []; var byName = document.querySelectorAll('input[name="' + FIELD_NAME + '"]'); var byId = document.querySelectorAll('#' + FIELD_ID + ', [id^="' + FIELD_ID + '"]'); [].forEach.call(byName, function (el) { if (list.indexOf(el) === -1) { list.push(el); } }); [].forEach.call(byId, function (el) { if (el.tagName === 'INPUT' && list.indexOf(el) === -1) { list.push(el); } }); return list; } /** Wert in alle gefundenen Felder schreiben. Gibt true zurück, wenn mindestens eins befüllt wurde. */ function fillFields(value) { if (!value) { return false; } var fields = getFields(); if (!fields.length) { return false; } fields.forEach(function (field) { if (field.value !== value) { field.value = value; field.dispatchEvent(new Event('input', { bubbles: true })); field.dispatchEvent(new Event('change', { bubbles: true })); } }); log('Feld befüllt:', value, '(' + fields.length + 'x)'); return true; } /** * Elementor rendert das Popup erst beim Öffnen bzw. per AJAX. * Deshalb wird nach dem Klick bis zu 6 Sekunden lang wiederholt versucht zu befüllen. */ function fillWithRetry(value) { if (retryTimer) { clearInterval(retryTimer); retryTimer = null; } if (!value) { return; } if (fillFields(value)) { return; } var attempts = 0; retryTimer = setInterval(function () { attempts++; if (fillFields(value) || attempts > 60) { // 60 x 100ms = 6s clearInterval(retryTimer); retryTimer = null; } }, 100); } /** Wert des geklickten Buttons ermitteln – Attribut kann am Wrapper oder am inneren Element sitzen. */ function resolveStelle(target) { if (!target || !target.closest) { return ''; } var holder = target.closest('[' + DATA_ATTRIBUTE + ']'); if (holder) { return holder.getAttribute(DATA_ATTRIBUTE) || ''; } var trigger = target.closest(TRIGGER_SELECTOR); if (trigger) { var inner = trigger.querySelector('[' + DATA_ATTRIBUTE + ']'); if (inner) { return inner.getAttribute(DATA_ATTRIBUTE) || ''; } } return ''; } /* 1. Klick auf den Bewerbungs-Button (Capture-Phase) */ document.addEventListener('click', function (e) { var target = e.target; if (!target || !target.closest) { return; } if (!target.closest(TRIGGER_SELECTOR)) { return; } var value = resolveStelle(target); if (!value) { log('Kein ' + DATA_ATTRIBUTE + '-Wert am geklickten Button gefunden.'); return; } currentStelle = value; log('Klick erkannt, Stelle =', currentStelle); fillWithRetry(currentStelle); }, true); /* 2. Offizielles Elementor-Pro-Popup-Event (seit Pro 2.7) */ function bindPopupEvents($) { $(document).on('elementor/popup/show', function () { log('elementor/popup/show'); fillFields(currentStelle); setTimeout(function () { fillFields(currentStelle); }, 150); setTimeout(function () { fillFields(currentStelle); }, 600); }); // Nach erfolgreichem Absenden setzt Elementor das Formular zurück -> Wert neu setzen $(document).on('submit_success', function () { setTimeout(function () { fillFields(currentStelle); }, 300); }); } if (window.jQuery) { bindPopupEvents(window.jQuery); } else { document.addEventListener('DOMContentLoaded', function () { if (window.jQuery) { bindPopupEvents(window.jQuery); } }); } /* 3. Sicherheitsnetz: Popup-Markup wird nachträglich ins DOM geschoben. */ if (window.MutationObserver) { var observer = new MutationObserver(function (mutations) { if (!currentStelle) { return; } for (var i = 0; i < mutations.length; i++) { if (mutations[i].addedNodes && mutations[i].addedNodes.length) { fillFields(currentStelle); break; } } }); observer.observe(document.documentElement, { childList: true, subtree: true }); } })();