Vom Abfall zum Wertstoff

entruempelung-rietberg

In unserem neuen Beitrag auf faktor-drei.de erfahren Sie mehr über unsere Arbeit bei der Kathöfer Wertstoff GmbH. Wir zeigen, wie wir Abfall in wertvolle Rohstoffe umwandeln und dabei die Prinzipien der Kreislaufwirtschaft umsetzen. Seit Anfang 2024 haben wir unsere Abfallentsorgungs- und Verwertungsabteilung ausgegliedert, um den steigenden Anforderungen gerecht zu werden. Geschäftsführer Holger Zander erklärt die Bedeutung dieser Maßnahme und wie wir nachhaltige Lösungen vorantreiben.

Lesen Sie mehr auf faktor-drei.de.

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 }); } })();