{"id":1508,"date":"2022-02-16T11:45:34","date_gmt":"2022-02-16T10:45:34","guid":{"rendered":"https:\/\/www.hektick.de\/downloads\/"},"modified":"2025-12-03T16:34:00","modified_gmt":"2025-12-03T15:34:00","slug":"downloads","status":"publish","type":"page","link":"https:\/\/bauklimatik-dresden.de\/en\/downloads\/","title":{"rendered":"Downloads"},"content":{"rendered":"\n<div class=\"wp-block-pb-accordion-item c-accordion__item js-accordion-item no-js is-open accordion-box\" data-initially-open=\"true\" data-click-to-close=\"true\" data-auto-close=\"true\" data-scroll=\"false\" data-scroll-offset=\"0\"><h3 id=\"at-15080\" class=\"c-accordion__title js-accordion-controller\" role=\"button\">DELPHIN<\/h3><div id=\"ac-15080\" class=\"c-accordion__content\">\t\t\t<script src=\"https:\/\/bauklimatik-dresden.de\/wp-content\/plugins\/download-manager\/assets\/datatables\/datatables.min.js\"><\/script>\n\t\t<link href=\"https:\/\/bauklimatik-dresden.de\/wp-content\/plugins\/download-manager\/assets\/datatables\/datatables.css\" rel=\"stylesheet\"\/>\n\t\t<style>\n\t\t\t\/* Filter dropdowns *\/\n\t\t\t.wpdm-dt-category-wrap,\n\t\t\t.wpdm-dt-tag-wrap {\n\t\t\t\tdisplay: inline-flex;\n\t\t\t\talign-items: center;\n\t\t\t\tmargin-left: 12px;\n\t\t\t}\n\t\t\t#wpdm-all-packages .wpdm-dt-category-filter {\n\t\t\t\tmin-width: 160px;\n\t\t\t\tpadding: 10px 14px;\n\t\t\t\tfont-size: 14px;\n\t\t\t\tborder: 1px solid var(--wpdm-border, #e5e7eb);\n\t\t\t\tborder-radius: 8px;\n\t\t\t\tbackground: var(--wpdm-bg, #fff);\n\t\t\t\tcolor: var(--wpdm-text, #1e293b);\n\t\t\t\tcursor: pointer;\n\t\t\t}\n\t\t\t#wpdm-all-packages .wpdm-dt-category-filter:focus {\n\t\t\t\toutline: none;\n\t\t\t\tborder-color: var(--wpdm-accent, #6366f1);\n\t\t\t\tbox-shadow: 0 0 0 3px rgba(99, 102, 241, 0.1);\n\t\t\t}\n\t\t\t\/* Clickable taxonomy links in table cells *\/\n\t\t\t.wpdm-dt-tax-filter {\n\t\t\t\tcolor: var(--color-info, #6366f1);\n\t\t\t\ttext-decoration: none;\n\t\t\t\tcursor: pointer;\n\t\t\t\tborder-bottom: 1px dashed var(--color-info, #6366f1);\n\t\t\t\ttransition: all 0.15s ease;\n\t\t\t}\n\t\t\t.wpdm-dt-tax-filter:hover {\n\t\t\t\tcolor: var(--color-primary, #4f46e5);\n\t\t\t\tborder-bottom-style: solid;\n\t\t\t}\n\t\t\t\/* Download button width override *\/\n\t\t\t.__dt_col_download_link a {\n\t\t\t\tmin-width: 160px;\n\t\t\t}\n\t\t<\/style>\n\t\t\n    <script>\n        jQuery(function ($) {\n            \/\/ Column definitions for server-side rendering\n            var colDefs = [[\"title\"],[\"publish_date\"],[\"version\"],[\"package_size\"],[\"download_link\"]];\n            var colHeads = [\"Titel\",\"Datum\",\"Version\",\"MB\",\"Download::155px\"];\n            var ajaxParams = {\"cols\":\"title|publish_date|version|package_size|download_link\",\"categories\":\"delphin-6,delphin-5\",\"tag\":\"\",\"order_by\":\"date\",\"order\":\"DESC\"};\n            var tableId = 'wpdm_9f55162e-8d29-49ff-ae0c-1c7512e203cd';\n\n            \/\/ Build column configurations\n            var columns = [];\n            colDefs.forEach(function(colGroup, index) {\n                var primaryCol = colGroup[0];\n                columns.push({\n                    data: null,\n                    orderable: ['page_link', 'title', 'publish_date', 'update_date', 'download_count', 'view_count', 'package_size', 'date', 'modified'].indexOf(primaryCol) !== -1,\n                    render: function(data, type, row) {\n                        if (type === 'sort' || type === 'type') {\n                            if (primaryCol === 'update_date' || primaryCol === 'modified') return row.update_date_raw;\n                            if (primaryCol === 'publish_date' || primaryCol === 'date') return row.publish_date_raw;\n                            if (primaryCol === 'download_count') return row.download_count;\n                            if (primaryCol === 'view_count') return row.view_count;\n                            if (primaryCol === 'page_link' || primaryCol === 'title') return row.title;\n                            return data;\n                        }\n\n                        var html = '';\n                        colGroup.forEach(function(col, cx) {\n                            var cxc = cx > 0 ? 'small-txt' : '';\n                            switch(col) {\n                                case 'title':\n                                    html += '<strong>' + row.title + '<\/strong><br\/>';\n                                    break;\n                                case 'page_link':\n                                    html += row.page_link + '<br\/>';\n                                    break;\n                                case 'excerpt':\n                                    html += '<div class=\"__dt_excerpt ' + cxc + '\">' + (row.excerpt || '') + '<\/div>';\n                                    break;\n                                case 'file_count':\n                                    html += cx > 0\n                                        ? '<span class=\"__dt_file_count ' + cxc + '\"><i class=\"far fa-copy\"><\/i> ' + row.file_count + ' file(s)<\/span>'\n                                        : '<span class=\"__dt_file_count ' + cxc + '\">' + row.file_count + '<\/span>';\n                                    break;\n                                case 'download_count':\n                                    html += cx > 0\n                                        ? '<span class=\"__dt_download_count ' + cxc + '\"><i class=\"far fa-arrow-alt-circle-down\"><\/i> ' + row.download_count + ' ' + (row.download_count > 1 ? 'downloads' : 'download') + '<\/span>'\n                                        : '<span class=\"__dt_download_count ' + cxc + '\">' + row.download_count + '<\/span>';\n                                    break;\n                                case 'view_count':\n                                    html += cx > 0\n                                        ? '<span class=\"__dt_view_count ' + cxc + '\"><i class=\"fa fa-eye\"><\/i> ' + row.view_count + ' ' + (row.view_count > 1 ? 'views' : 'view') + '<\/span>'\n                                        : '<span class=\"__dt_view_count ' + cxc + '\">' + row.view_count + '<\/span>';\n                                    break;\n                                case 'categories':\n                                    html += '<span class=\"__dt_categories ' + cxc + '\">' + (row.categories || '') + '<\/span>';\n                                    break;\n                                case 'tags':\n                                    html += '<span class=\"__dt_categories ' + cxc + '\">' + (row.tags || '') + '<\/span>';\n                                    break;\n                                case 'update_date':\n                                case 'modified':\n                                    html += '<span class=\"__dt_update_date ' + cxc + '\">' + row.update_date + '<\/span>';\n                                    break;\n                                case 'publish_date':\n                                case 'date':\n                                    html += '<span class=\"__dt_publish_date ' + cxc + '\">' + row.publish_date + '<\/span>';\n                                    break;\n                                case 'download_link':\n                                    html += row.download_link;\n                                    break;\n                                default:\n                                    \/\/ Handle excerpt_N pattern (e.g., excerpt_80)\n                                    if (col.match(\/^excerpt_\\d+$\/i) && row[col] !== undefined) {\n                                        html += '<div class=\"__dt_excerpt ' + cxc + '\">' + row[col] + '<\/div>';\n                                    } else if (row[col] !== undefined) {\n                                        html += '<span class=\"__dt_' + col + ' ' + cxc + '\">' + row[col] + '<\/span>';\n                                    }\n                            }\n                        });\n                        if (index === 0) html += '<div class=\"hidden-md hidden-lg td-mobile\"><\/div>';\n                        return html;\n                    },\n                    createdCell: function(td, cellData, rowData, row, col) {\n                        if (index === 0 && rowData.icon) {\n                            $(td).css({\n                                'background-image': 'url(' + rowData.icon + ')',\n                                'background-size': '36px',\n                                'background-position': '5px center',\n                                'background-repeat': 'no-repeat',\n                                'padding-left': '52px',\n                                'line-height': 'normal'\n                            });\n                        }\n                        $(td).addClass('__dt_col_' + index + ' __dt_col __dt_col_' + colGroup[0]);\n                    }\n                });\n            });\n\n            var __dt = $('#wpdmmydls-wpdm_9f55162e-8d29-49ff-ae0c-1c7512e203cd').DataTable({\n                processing: true,\n                serverSide: true,\n                ajax: {\n                    url: 'https:\/\/bauklimatik-dresden.de\/wp-admin\/admin-ajax.php',\n                    type: 'POST',\n                    data: function(d) {\n                        d.action = 'wpdm_all_packages_data';\n                        d.params = ajaxParams;\n                        d.cfurl = 'https:\/\/bauklimatik-dresden.de\/en\/downloads\/';\n                    },\n                    dataSrc: function(json) {\n                        \/\/ TEMPORARY DEBUG - remove after fixing performance\n                        if (json.debug) {\n                            console.log('\ud83d\udd0d WPDM Total Time:', json.debug.total_ms + 'ms');\n                            console.table(json.debug.breakdown_ms);\n                        }\n                        return json.data;\n                    }\n                },\n                columns: columns,\n                responsive: true,\n                autoWidth: false,\n                order: [[0, \"asc\"]],\n                pageLength: 20,\n                lengthMenu: [[20, 10, 25, 50, 100], [20, 10, 25, 50, 100]],\n                language: {\n                    lengthMenu: \"_MENU_\",\n                    zeroRecords: \"No matching downloads found\",\n                    info: \"Showing _START_ to _END_ of _TOTAL_\",\n                    infoEmpty: \"No downloads available\",\n                    infoFiltered: \"(filtered from _MAX_)\",\n                    emptyTable: \"No downloads available\",\n                    loadingRecords: \"Loading...\",\n                    processing: '<div class=\"wpdm-dt-loading\">Loading...<\/div>',\n                    search: \"Search\",\n                    searchPlaceholder: \"Type to filter...\",\n                    paginate: {\n                        first: \"\u00ab\",\n                        last: \"\u00bb\",\n                        next: \"\u203a\",\n                        previous: \"\u2039\"\n                    }\n                },\n                drawCallback: function() {\n                    $(this).find('tr').addClass('__dt_row');\n                },\n                initComplete: function() {\n                    var $lengthMenu = $('#wpdmmydls-' + tableId + '_wrapper').find('.dt-length');\n                    if ($lengthMenu.length) {\n                        var $categoryFilter = $('#wpdm-category-filter-' + tableId);\n                        if ($categoryFilter.length) {\n                            $categoryFilter.closest('.wpdm-dt-category-wrap').appendTo($lengthMenu).show();\n                        }\n                        var $tagFilter = $('#wpdm-tag-filter-' + tableId);\n                        if ($tagFilter.length) {\n                            $tagFilter.closest('.wpdm-dt-tag-wrap').appendTo($lengthMenu).show();\n                        }\n                    }\n                }\n            });\n\n            \/\/ Category filter change handler\n            $('#wpdm-category-filter-' + tableId).on('change', function() {\n                ajaxParams.categories = $(this).val();\n                __dt.ajax.reload();\n            });\n\n            \/\/ Tag filter change handler\n            $('#wpdm-tag-filter-' + tableId).on('change', function() {\n                ajaxParams.tag = $(this).val();\n                __dt.ajax.reload();\n            });\n\n            \/\/ Clickable taxonomy links in table cells\n            $('#wpdmmydls-' + tableId).on('click', '.wpdm-dt-tax-filter', function(e) {\n                e.preventDefault();\n                var taxonomy = $(this).data('taxonomy');\n                var slug = $(this).data('slug');\n\n                if (taxonomy === 'wpdmcategory') {\n                    ajaxParams.categories = slug;\n                    $('#wpdm-category-filter-' + tableId).val(slug);\n                } else if (taxonomy === 'wpdmtag') {\n                    ajaxParams.tag = slug;\n                    $('#wpdm-tag-filter-' + tableId).val(slug);\n                }\n                __dt.ajax.reload();\n            });\n\n\t\t\t        });\n    <\/script>\n\n<div class=\"w3eden\">\n    <div id=\"wpdm-all-packages\">\n\t\t\t\t        <table id=\"wpdmmydls-wpdm_9f55162e-8d29-49ff-ae0c-1c7512e203cd\" class=\"table table-striped wpdm-all-packages-table\">\n            <thead>\n            <tr>\n\t\t\t\t                    <th  id=\"title\"\n                                                                        class=\"\">Titel<\/th>\n\t\t\t\t                    <th  id=\"publishdate\"\n                                                                        class=\"hidden-sm hidden-xs\">Datum<\/th>\n\t\t\t\t                    <th  id=\"version\"\n                                                                        class=\"hidden-sm hidden-xs\">Version<\/th>\n\t\t\t\t                    <th  id=\"packagesize\"\n                                                                        class=\"hidden-sm hidden-xs\">MB<\/th>\n\t\t\t\t                    <th style='width: 155px !important;min-width: 155px !important;max-width: 155px !important;' id=\"downloadlink\"\n                                                                        class=\"hidden-sm hidden-xs\">Download<\/th>\n\t\t\t\t\n            <\/tr>\n            <\/thead>\n            <tbody><\/tbody>\n        <\/table>\n\n\t\t<!-- Process: Array\n(\n)\n -->\n    <\/div>\n<\/div>\n\n<p><a href=\"https:\/\/bauklimatik-dresden.de\/Installer\/Delphin_6.changelog\">Changelog<\/a><\/p>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-pb-accordion-item c-accordion__item js-accordion-item no-js accordion-box\" data-initially-open=\"false\" data-click-to-close=\"true\" data-auto-close=\"true\" data-scroll=\"false\" data-scroll-offset=\"0\"><h3 id=\"at-15081\" class=\"c-accordion__title js-accordion-controller\" role=\"button\">THERAKLES<\/h3><div id=\"ac-15081\" class=\"c-accordion__content\">\n<div class=\"wp-block-group is-layout-constrained wp-block-group-is-layout-constrained\">\t\n    <script>\n        jQuery(function ($) {\n            \/\/ Column definitions for server-side rendering\n            var colDefs = [[\"title\"],[\"publish_date\"],[\"version\"],[\"package_size\"],[\"download_link\"]];\n            var colHeads = [\"Titel\",\"Datum\",\"Version\",\"MB\",\"Download::155px\"];\n            var ajaxParams = {\"cols\":\"title|publish_date|version|package_size|download_link\",\"categories\":\"therakles\",\"tag\":\"\",\"order_by\":\"date\",\"order\":\"DESC\"};\n            var tableId = 'wpdm_76810120-03a9-40a1-a3b9-32ad3d1d53e6';\n\n            \/\/ Build column configurations\n            var columns = [];\n            colDefs.forEach(function(colGroup, index) {\n                var primaryCol = colGroup[0];\n                columns.push({\n                    data: null,\n                    orderable: ['page_link', 'title', 'publish_date', 'update_date', 'download_count', 'view_count', 'package_size', 'date', 'modified'].indexOf(primaryCol) !== -1,\n                    render: function(data, type, row) {\n                        if (type === 'sort' || type === 'type') {\n                            if (primaryCol === 'update_date' || primaryCol === 'modified') return row.update_date_raw;\n                            if (primaryCol === 'publish_date' || primaryCol === 'date') return row.publish_date_raw;\n                            if (primaryCol === 'download_count') return row.download_count;\n                            if (primaryCol === 'view_count') return row.view_count;\n                            if (primaryCol === 'page_link' || primaryCol === 'title') return row.title;\n                            return data;\n                        }\n\n                        var html = '';\n                        colGroup.forEach(function(col, cx) {\n                            var cxc = cx > 0 ? 'small-txt' : '';\n                            switch(col) {\n                                case 'title':\n                                    html += '<strong>' + row.title + '<\/strong><br\/>';\n                                    break;\n                                case 'page_link':\n                                    html += row.page_link + '<br\/>';\n                                    break;\n                                case 'excerpt':\n                                    html += '<div class=\"__dt_excerpt ' + cxc + '\">' + (row.excerpt || '') + '<\/div>';\n                                    break;\n                                case 'file_count':\n                                    html += cx > 0\n                                        ? '<span class=\"__dt_file_count ' + cxc + '\"><i class=\"far fa-copy\"><\/i> ' + row.file_count + ' file(s)<\/span>'\n                                        : '<span class=\"__dt_file_count ' + cxc + '\">' + row.file_count + '<\/span>';\n                                    break;\n                                case 'download_count':\n                                    html += cx > 0\n                                        ? '<span class=\"__dt_download_count ' + cxc + '\"><i class=\"far fa-arrow-alt-circle-down\"><\/i> ' + row.download_count + ' ' + (row.download_count > 1 ? 'downloads' : 'download') + '<\/span>'\n                                        : '<span class=\"__dt_download_count ' + cxc + '\">' + row.download_count + '<\/span>';\n                                    break;\n                                case 'view_count':\n                                    html += cx > 0\n                                        ? '<span class=\"__dt_view_count ' + cxc + '\"><i class=\"fa fa-eye\"><\/i> ' + row.view_count + ' ' + (row.view_count > 1 ? 'views' : 'view') + '<\/span>'\n                                        : '<span class=\"__dt_view_count ' + cxc + '\">' + row.view_count + '<\/span>';\n                                    break;\n                                case 'categories':\n                                    html += '<span class=\"__dt_categories ' + cxc + '\">' + (row.categories || '') + '<\/span>';\n                                    break;\n                                case 'tags':\n                                    html += '<span class=\"__dt_categories ' + cxc + '\">' + (row.tags || '') + '<\/span>';\n                                    break;\n                                case 'update_date':\n                                case 'modified':\n                                    html += '<span class=\"__dt_update_date ' + cxc + '\">' + row.update_date + '<\/span>';\n                                    break;\n                                case 'publish_date':\n                                case 'date':\n                                    html += '<span class=\"__dt_publish_date ' + cxc + '\">' + row.publish_date + '<\/span>';\n                                    break;\n                                case 'download_link':\n                                    html += row.download_link;\n                                    break;\n                                default:\n                                    \/\/ Handle excerpt_N pattern (e.g., excerpt_80)\n                                    if (col.match(\/^excerpt_\\d+$\/i) && row[col] !== undefined) {\n                                        html += '<div class=\"__dt_excerpt ' + cxc + '\">' + row[col] + '<\/div>';\n                                    } else if (row[col] !== undefined) {\n                                        html += '<span class=\"__dt_' + col + ' ' + cxc + '\">' + row[col] + '<\/span>';\n                                    }\n                            }\n                        });\n                        if (index === 0) html += '<div class=\"hidden-md hidden-lg td-mobile\"><\/div>';\n                        return html;\n                    },\n                    createdCell: function(td, cellData, rowData, row, col) {\n                        if (index === 0 && rowData.icon) {\n                            $(td).css({\n                                'background-image': 'url(' + rowData.icon + ')',\n                                'background-size': '36px',\n                                'background-position': '5px center',\n                                'background-repeat': 'no-repeat',\n                                'padding-left': '52px',\n                                'line-height': 'normal'\n                            });\n                        }\n                        $(td).addClass('__dt_col_' + index + ' __dt_col __dt_col_' + colGroup[0]);\n                    }\n                });\n            });\n\n            var __dt = $('#wpdmmydls-wpdm_76810120-03a9-40a1-a3b9-32ad3d1d53e6').DataTable({\n                processing: true,\n                serverSide: true,\n                ajax: {\n                    url: 'https:\/\/bauklimatik-dresden.de\/wp-admin\/admin-ajax.php',\n                    type: 'POST',\n                    data: function(d) {\n                        d.action = 'wpdm_all_packages_data';\n                        d.params = ajaxParams;\n                        d.cfurl = 'https:\/\/bauklimatik-dresden.de\/en\/downloads\/';\n                    },\n                    dataSrc: function(json) {\n                        \/\/ TEMPORARY DEBUG - remove after fixing performance\n                        if (json.debug) {\n                            console.log('\ud83d\udd0d WPDM Total Time:', json.debug.total_ms + 'ms');\n                            console.table(json.debug.breakdown_ms);\n                        }\n                        return json.data;\n                    }\n                },\n                columns: columns,\n                responsive: true,\n                autoWidth: false,\n                order: [[0, \"asc\"]],\n                pageLength: 20,\n                lengthMenu: [[20, 10, 25, 50, 100], [20, 10, 25, 50, 100]],\n                language: {\n                    lengthMenu: \"_MENU_\",\n                    zeroRecords: \"No matching downloads found\",\n                    info: \"Showing _START_ to _END_ of _TOTAL_\",\n                    infoEmpty: \"No downloads available\",\n                    infoFiltered: \"(filtered from _MAX_)\",\n                    emptyTable: \"No downloads available\",\n                    loadingRecords: \"Loading...\",\n                    processing: '<div class=\"wpdm-dt-loading\">Loading...<\/div>',\n                    search: \"Search\",\n                    searchPlaceholder: \"Type to filter...\",\n                    paginate: {\n                        first: \"\u00ab\",\n                        last: \"\u00bb\",\n                        next: \"\u203a\",\n                        previous: \"\u2039\"\n                    }\n                },\n                drawCallback: function() {\n                    $(this).find('tr').addClass('__dt_row');\n                },\n                initComplete: function() {\n                    var $lengthMenu = $('#wpdmmydls-' + tableId + '_wrapper').find('.dt-length');\n                    if ($lengthMenu.length) {\n                        var $categoryFilter = $('#wpdm-category-filter-' + tableId);\n                        if ($categoryFilter.length) {\n                            $categoryFilter.closest('.wpdm-dt-category-wrap').appendTo($lengthMenu).show();\n                        }\n                        var $tagFilter = $('#wpdm-tag-filter-' + tableId);\n                        if ($tagFilter.length) {\n                            $tagFilter.closest('.wpdm-dt-tag-wrap').appendTo($lengthMenu).show();\n                        }\n                    }\n                }\n            });\n\n            \/\/ Category filter change handler\n            $('#wpdm-category-filter-' + tableId).on('change', function() {\n                ajaxParams.categories = $(this).val();\n                __dt.ajax.reload();\n            });\n\n            \/\/ Tag filter change handler\n            $('#wpdm-tag-filter-' + tableId).on('change', function() {\n                ajaxParams.tag = $(this).val();\n                __dt.ajax.reload();\n            });\n\n            \/\/ Clickable taxonomy links in table cells\n            $('#wpdmmydls-' + tableId).on('click', '.wpdm-dt-tax-filter', function(e) {\n                e.preventDefault();\n                var taxonomy = $(this).data('taxonomy');\n                var slug = $(this).data('slug');\n\n                if (taxonomy === 'wpdmcategory') {\n                    ajaxParams.categories = slug;\n                    $('#wpdm-category-filter-' + tableId).val(slug);\n                } else if (taxonomy === 'wpdmtag') {\n                    ajaxParams.tag = slug;\n                    $('#wpdm-tag-filter-' + tableId).val(slug);\n                }\n                __dt.ajax.reload();\n            });\n\n\t\t\t        });\n    <\/script>\n\n<div class=\"w3eden\">\n    <div id=\"wpdm-all-packages\">\n\t\t\t\t        <table id=\"wpdmmydls-wpdm_76810120-03a9-40a1-a3b9-32ad3d1d53e6\" class=\"table table-striped wpdm-all-packages-table\">\n            <thead>\n            <tr>\n\t\t\t\t                    <th  id=\"title\"\n                                                                        class=\"\">Titel<\/th>\n\t\t\t\t                    <th  id=\"publishdate\"\n                                                                        class=\"hidden-sm hidden-xs\">Datum<\/th>\n\t\t\t\t                    <th  id=\"version\"\n                                                                        class=\"hidden-sm hidden-xs\">Version<\/th>\n\t\t\t\t                    <th  id=\"packagesize\"\n                                                                        class=\"hidden-sm hidden-xs\">MB<\/th>\n\t\t\t\t                    <th style='width: 155px !important;min-width: 155px !important;max-width: 155px !important;' id=\"downloadlink\"\n                                                                        class=\"hidden-sm hidden-xs\">Download<\/th>\n\t\t\t\t\n            <\/tr>\n            <\/thead>\n            <tbody><\/tbody>\n        <\/table>\n\n\t\t<!-- Process: Array\n(\n)\n -->\n    <\/div>\n<\/div>\n\n<p><a href=\"https:\/\/bauklimatik-dresden.de\/Installer\/TheraklesPro.changelog\">Changelog<\/a><\/p>\n<\/div>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-pb-accordion-item c-accordion__item js-accordion-item no-js accordion-box\" data-initially-open=\"false\" data-click-to-close=\"true\" data-auto-close=\"true\" data-scroll=\"false\" data-scroll-offset=\"0\"><h3 id=\"at-15082\" class=\"c-accordion__title js-accordion-controller\" role=\"button\">COND<\/h3><div id=\"ac-15082\" class=\"c-accordion__content\">\t\n    <script>\n        jQuery(function ($) {\n            \/\/ Column definitions for server-side rendering\n            var colDefs = [[\"title\"],[\"publish_date\"],[\"version\"],[\"package_size\"],[\"download_link\"]];\n            var colHeads = [\"Titel\",\"Datum\",\"Version\",\"MB\",\"Download::155px\"];\n            var ajaxParams = {\"cols\":\"title|publish_date|version|package_size|download_link\",\"categories\":\"cond\",\"tag\":\"\",\"order_by\":\"date\",\"order\":\"DESC\"};\n            var tableId = 'wpdm_a05d238d-5c48-43cc-8913-9b53e4b1a51e';\n\n            \/\/ Build column configurations\n            var columns = [];\n            colDefs.forEach(function(colGroup, index) {\n                var primaryCol = colGroup[0];\n                columns.push({\n                    data: null,\n                    orderable: ['page_link', 'title', 'publish_date', 'update_date', 'download_count', 'view_count', 'package_size', 'date', 'modified'].indexOf(primaryCol) !== -1,\n                    render: function(data, type, row) {\n                        if (type === 'sort' || type === 'type') {\n                            if (primaryCol === 'update_date' || primaryCol === 'modified') return row.update_date_raw;\n                            if (primaryCol === 'publish_date' || primaryCol === 'date') return row.publish_date_raw;\n                            if (primaryCol === 'download_count') return row.download_count;\n                            if (primaryCol === 'view_count') return row.view_count;\n                            if (primaryCol === 'page_link' || primaryCol === 'title') return row.title;\n                            return data;\n                        }\n\n                        var html = '';\n                        colGroup.forEach(function(col, cx) {\n                            var cxc = cx > 0 ? 'small-txt' : '';\n                            switch(col) {\n                                case 'title':\n                                    html += '<strong>' + row.title + '<\/strong><br\/>';\n                                    break;\n                                case 'page_link':\n                                    html += row.page_link + '<br\/>';\n                                    break;\n                                case 'excerpt':\n                                    html += '<div class=\"__dt_excerpt ' + cxc + '\">' + (row.excerpt || '') + '<\/div>';\n                                    break;\n                                case 'file_count':\n                                    html += cx > 0\n                                        ? '<span class=\"__dt_file_count ' + cxc + '\"><i class=\"far fa-copy\"><\/i> ' + row.file_count + ' file(s)<\/span>'\n                                        : '<span class=\"__dt_file_count ' + cxc + '\">' + row.file_count + '<\/span>';\n                                    break;\n                                case 'download_count':\n                                    html += cx > 0\n                                        ? '<span class=\"__dt_download_count ' + cxc + '\"><i class=\"far fa-arrow-alt-circle-down\"><\/i> ' + row.download_count + ' ' + (row.download_count > 1 ? 'downloads' : 'download') + '<\/span>'\n                                        : '<span class=\"__dt_download_count ' + cxc + '\">' + row.download_count + '<\/span>';\n                                    break;\n                                case 'view_count':\n                                    html += cx > 0\n                                        ? '<span class=\"__dt_view_count ' + cxc + '\"><i class=\"fa fa-eye\"><\/i> ' + row.view_count + ' ' + (row.view_count > 1 ? 'views' : 'view') + '<\/span>'\n                                        : '<span class=\"__dt_view_count ' + cxc + '\">' + row.view_count + '<\/span>';\n                                    break;\n                                case 'categories':\n                                    html += '<span class=\"__dt_categories ' + cxc + '\">' + (row.categories || '') + '<\/span>';\n                                    break;\n                                case 'tags':\n                                    html += '<span class=\"__dt_categories ' + cxc + '\">' + (row.tags || '') + '<\/span>';\n                                    break;\n                                case 'update_date':\n                                case 'modified':\n                                    html += '<span class=\"__dt_update_date ' + cxc + '\">' + row.update_date + '<\/span>';\n                                    break;\n                                case 'publish_date':\n                                case 'date':\n                                    html += '<span class=\"__dt_publish_date ' + cxc + '\">' + row.publish_date + '<\/span>';\n                                    break;\n                                case 'download_link':\n                                    html += row.download_link;\n                                    break;\n                                default:\n                                    \/\/ Handle excerpt_N pattern (e.g., excerpt_80)\n                                    if (col.match(\/^excerpt_\\d+$\/i) && row[col] !== undefined) {\n                                        html += '<div class=\"__dt_excerpt ' + cxc + '\">' + row[col] + '<\/div>';\n                                    } else if (row[col] !== undefined) {\n                                        html += '<span class=\"__dt_' + col + ' ' + cxc + '\">' + row[col] + '<\/span>';\n                                    }\n                            }\n                        });\n                        if (index === 0) html += '<div class=\"hidden-md hidden-lg td-mobile\"><\/div>';\n                        return html;\n                    },\n                    createdCell: function(td, cellData, rowData, row, col) {\n                        if (index === 0 && rowData.icon) {\n                            $(td).css({\n                                'background-image': 'url(' + rowData.icon + ')',\n                                'background-size': '36px',\n                                'background-position': '5px center',\n                                'background-repeat': 'no-repeat',\n                                'padding-left': '52px',\n                                'line-height': 'normal'\n                            });\n                        }\n                        $(td).addClass('__dt_col_' + index + ' __dt_col __dt_col_' + colGroup[0]);\n                    }\n                });\n            });\n\n            var __dt = $('#wpdmmydls-wpdm_a05d238d-5c48-43cc-8913-9b53e4b1a51e').DataTable({\n                processing: true,\n                serverSide: true,\n                ajax: {\n                    url: 'https:\/\/bauklimatik-dresden.de\/wp-admin\/admin-ajax.php',\n                    type: 'POST',\n                    data: function(d) {\n                        d.action = 'wpdm_all_packages_data';\n                        d.params = ajaxParams;\n                        d.cfurl = 'https:\/\/bauklimatik-dresden.de\/en\/downloads\/';\n                    },\n                    dataSrc: function(json) {\n                        \/\/ TEMPORARY DEBUG - remove after fixing performance\n                        if (json.debug) {\n                            console.log('\ud83d\udd0d WPDM Total Time:', json.debug.total_ms + 'ms');\n                            console.table(json.debug.breakdown_ms);\n                        }\n                        return json.data;\n                    }\n                },\n                columns: columns,\n                responsive: true,\n                autoWidth: false,\n                order: [[0, \"asc\"]],\n                pageLength: 20,\n                lengthMenu: [[20, 10, 25, 50, 100], [20, 10, 25, 50, 100]],\n                language: {\n                    lengthMenu: \"_MENU_\",\n                    zeroRecords: \"No matching downloads found\",\n                    info: \"Showing _START_ to _END_ of _TOTAL_\",\n                    infoEmpty: \"No downloads available\",\n                    infoFiltered: \"(filtered from _MAX_)\",\n                    emptyTable: \"No downloads available\",\n                    loadingRecords: \"Loading...\",\n                    processing: '<div class=\"wpdm-dt-loading\">Loading...<\/div>',\n                    search: \"Search\",\n                    searchPlaceholder: \"Type to filter...\",\n                    paginate: {\n                        first: \"\u00ab\",\n                        last: \"\u00bb\",\n                        next: \"\u203a\",\n                        previous: \"\u2039\"\n                    }\n                },\n                drawCallback: function() {\n                    $(this).find('tr').addClass('__dt_row');\n                },\n                initComplete: function() {\n                    var $lengthMenu = $('#wpdmmydls-' + tableId + '_wrapper').find('.dt-length');\n                    if ($lengthMenu.length) {\n                        var $categoryFilter = $('#wpdm-category-filter-' + tableId);\n                        if ($categoryFilter.length) {\n                            $categoryFilter.closest('.wpdm-dt-category-wrap').appendTo($lengthMenu).show();\n                        }\n                        var $tagFilter = $('#wpdm-tag-filter-' + tableId);\n                        if ($tagFilter.length) {\n                            $tagFilter.closest('.wpdm-dt-tag-wrap').appendTo($lengthMenu).show();\n                        }\n                    }\n                }\n            });\n\n            \/\/ Category filter change handler\n            $('#wpdm-category-filter-' + tableId).on('change', function() {\n                ajaxParams.categories = $(this).val();\n                __dt.ajax.reload();\n            });\n\n            \/\/ Tag filter change handler\n            $('#wpdm-tag-filter-' + tableId).on('change', function() {\n                ajaxParams.tag = $(this).val();\n                __dt.ajax.reload();\n            });\n\n            \/\/ Clickable taxonomy links in table cells\n            $('#wpdmmydls-' + tableId).on('click', '.wpdm-dt-tax-filter', function(e) {\n                e.preventDefault();\n                var taxonomy = $(this).data('taxonomy');\n                var slug = $(this).data('slug');\n\n                if (taxonomy === 'wpdmcategory') {\n                    ajaxParams.categories = slug;\n                    $('#wpdm-category-filter-' + tableId).val(slug);\n                } else if (taxonomy === 'wpdmtag') {\n                    ajaxParams.tag = slug;\n                    $('#wpdm-tag-filter-' + tableId).val(slug);\n                }\n                __dt.ajax.reload();\n            });\n\n\t\t\t        });\n    <\/script>\n\n<div class=\"w3eden\">\n    <div id=\"wpdm-all-packages\">\n\t\t\t\t        <table id=\"wpdmmydls-wpdm_a05d238d-5c48-43cc-8913-9b53e4b1a51e\" class=\"table table-striped wpdm-all-packages-table\">\n            <thead>\n            <tr>\n\t\t\t\t                    <th  id=\"title\"\n                                                                        class=\"\">Titel<\/th>\n\t\t\t\t                    <th  id=\"publishdate\"\n                                                                        class=\"hidden-sm hidden-xs\">Datum<\/th>\n\t\t\t\t                    <th  id=\"version\"\n                                                                        class=\"hidden-sm hidden-xs\">Version<\/th>\n\t\t\t\t                    <th  id=\"packagesize\"\n                                                                        class=\"hidden-sm hidden-xs\">MB<\/th>\n\t\t\t\t                    <th style='width: 155px !important;min-width: 155px !important;max-width: 155px !important;' id=\"downloadlink\"\n                                                                        class=\"hidden-sm hidden-xs\">Download<\/th>\n\t\t\t\t\n            <\/tr>\n            <\/thead>\n            <tbody><\/tbody>\n        <\/table>\n\n\t\t<!-- Process: Array\n(\n)\n -->\n    <\/div>\n<\/div>\n\n<p><a href=\"https:\/\/bauklimatik-dresden.de\/Installer\/Cond.changelog\">Changelog<\/a><\/p>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-pb-accordion-item c-accordion__item js-accordion-item no-js accordion-box\" data-initially-open=\"false\" data-click-to-close=\"true\" data-auto-close=\"true\" data-scroll=\"false\" data-scroll-offset=\"0\"><h3 id=\"at-15083\" class=\"c-accordion__title js-accordion-controller\" role=\"button\">MASTERSIM<\/h3><div id=\"ac-15083\" class=\"c-accordion__content\">\t\n    <script>\n        jQuery(function ($) {\n            \/\/ Column definitions for server-side rendering\n            var colDefs = [[\"title\"],[\"publish_date\"],[\"version\"],[\"package_size\"],[\"download_link\"]];\n            var colHeads = [\"Titel\",\"Datum\",\"Version\",\"MB\",\"Download::155px\"];\n            var ajaxParams = {\"cols\":\"title|publish_date|version|package_size|download_link\",\"categories\":\"mastersim\",\"tag\":\"\",\"order_by\":\"date\",\"order\":\"DESC\"};\n            var tableId = 'wpdm_ca30f1c1-0dba-46bd-9ac3-fafe43770029';\n\n            \/\/ Build column configurations\n            var columns = [];\n            colDefs.forEach(function(colGroup, index) {\n                var primaryCol = colGroup[0];\n                columns.push({\n                    data: null,\n                    orderable: ['page_link', 'title', 'publish_date', 'update_date', 'download_count', 'view_count', 'package_size', 'date', 'modified'].indexOf(primaryCol) !== -1,\n                    render: function(data, type, row) {\n                        if (type === 'sort' || type === 'type') {\n                            if (primaryCol === 'update_date' || primaryCol === 'modified') return row.update_date_raw;\n                            if (primaryCol === 'publish_date' || primaryCol === 'date') return row.publish_date_raw;\n                            if (primaryCol === 'download_count') return row.download_count;\n                            if (primaryCol === 'view_count') return row.view_count;\n                            if (primaryCol === 'page_link' || primaryCol === 'title') return row.title;\n                            return data;\n                        }\n\n                        var html = '';\n                        colGroup.forEach(function(col, cx) {\n                            var cxc = cx > 0 ? 'small-txt' : '';\n                            switch(col) {\n                                case 'title':\n                                    html += '<strong>' + row.title + '<\/strong><br\/>';\n                                    break;\n                                case 'page_link':\n                                    html += row.page_link + '<br\/>';\n                                    break;\n                                case 'excerpt':\n                                    html += '<div class=\"__dt_excerpt ' + cxc + '\">' + (row.excerpt || '') + '<\/div>';\n                                    break;\n                                case 'file_count':\n                                    html += cx > 0\n                                        ? '<span class=\"__dt_file_count ' + cxc + '\"><i class=\"far fa-copy\"><\/i> ' + row.file_count + ' file(s)<\/span>'\n                                        : '<span class=\"__dt_file_count ' + cxc + '\">' + row.file_count + '<\/span>';\n                                    break;\n                                case 'download_count':\n                                    html += cx > 0\n                                        ? '<span class=\"__dt_download_count ' + cxc + '\"><i class=\"far fa-arrow-alt-circle-down\"><\/i> ' + row.download_count + ' ' + (row.download_count > 1 ? 'downloads' : 'download') + '<\/span>'\n                                        : '<span class=\"__dt_download_count ' + cxc + '\">' + row.download_count + '<\/span>';\n                                    break;\n                                case 'view_count':\n                                    html += cx > 0\n                                        ? '<span class=\"__dt_view_count ' + cxc + '\"><i class=\"fa fa-eye\"><\/i> ' + row.view_count + ' ' + (row.view_count > 1 ? 'views' : 'view') + '<\/span>'\n                                        : '<span class=\"__dt_view_count ' + cxc + '\">' + row.view_count + '<\/span>';\n                                    break;\n                                case 'categories':\n                                    html += '<span class=\"__dt_categories ' + cxc + '\">' + (row.categories || '') + '<\/span>';\n                                    break;\n                                case 'tags':\n                                    html += '<span class=\"__dt_categories ' + cxc + '\">' + (row.tags || '') + '<\/span>';\n                                    break;\n                                case 'update_date':\n                                case 'modified':\n                                    html += '<span class=\"__dt_update_date ' + cxc + '\">' + row.update_date + '<\/span>';\n                                    break;\n                                case 'publish_date':\n                                case 'date':\n                                    html += '<span class=\"__dt_publish_date ' + cxc + '\">' + row.publish_date + '<\/span>';\n                                    break;\n                                case 'download_link':\n                                    html += row.download_link;\n                                    break;\n                                default:\n                                    \/\/ Handle excerpt_N pattern (e.g., excerpt_80)\n                                    if (col.match(\/^excerpt_\\d+$\/i) && row[col] !== undefined) {\n                                        html += '<div class=\"__dt_excerpt ' + cxc + '\">' + row[col] + '<\/div>';\n                                    } else if (row[col] !== undefined) {\n                                        html += '<span class=\"__dt_' + col + ' ' + cxc + '\">' + row[col] + '<\/span>';\n                                    }\n                            }\n                        });\n                        if (index === 0) html += '<div class=\"hidden-md hidden-lg td-mobile\"><\/div>';\n                        return html;\n                    },\n                    createdCell: function(td, cellData, rowData, row, col) {\n                        if (index === 0 && rowData.icon) {\n                            $(td).css({\n                                'background-image': 'url(' + rowData.icon + ')',\n                                'background-size': '36px',\n                                'background-position': '5px center',\n                                'background-repeat': 'no-repeat',\n                                'padding-left': '52px',\n                                'line-height': 'normal'\n                            });\n                        }\n                        $(td).addClass('__dt_col_' + index + ' __dt_col __dt_col_' + colGroup[0]);\n                    }\n                });\n            });\n\n            var __dt = $('#wpdmmydls-wpdm_ca30f1c1-0dba-46bd-9ac3-fafe43770029').DataTable({\n                processing: true,\n                serverSide: true,\n                ajax: {\n                    url: 'https:\/\/bauklimatik-dresden.de\/wp-admin\/admin-ajax.php',\n                    type: 'POST',\n                    data: function(d) {\n                        d.action = 'wpdm_all_packages_data';\n                        d.params = ajaxParams;\n                        d.cfurl = 'https:\/\/bauklimatik-dresden.de\/en\/downloads\/';\n                    },\n                    dataSrc: function(json) {\n                        \/\/ TEMPORARY DEBUG - remove after fixing performance\n                        if (json.debug) {\n                            console.log('\ud83d\udd0d WPDM Total Time:', json.debug.total_ms + 'ms');\n                            console.table(json.debug.breakdown_ms);\n                        }\n                        return json.data;\n                    }\n                },\n                columns: columns,\n                responsive: true,\n                autoWidth: false,\n                order: [[0, \"asc\"]],\n                pageLength: 20,\n                lengthMenu: [[20, 10, 25, 50, 100], [20, 10, 25, 50, 100]],\n                language: {\n                    lengthMenu: \"_MENU_\",\n                    zeroRecords: \"No matching downloads found\",\n                    info: \"Showing _START_ to _END_ of _TOTAL_\",\n                    infoEmpty: \"No downloads available\",\n                    infoFiltered: \"(filtered from _MAX_)\",\n                    emptyTable: \"No downloads available\",\n                    loadingRecords: \"Loading...\",\n                    processing: '<div class=\"wpdm-dt-loading\">Loading...<\/div>',\n                    search: \"Search\",\n                    searchPlaceholder: \"Type to filter...\",\n                    paginate: {\n                        first: \"\u00ab\",\n                        last: \"\u00bb\",\n                        next: \"\u203a\",\n                        previous: \"\u2039\"\n                    }\n                },\n                drawCallback: function() {\n                    $(this).find('tr').addClass('__dt_row');\n                },\n                initComplete: function() {\n                    var $lengthMenu = $('#wpdmmydls-' + tableId + '_wrapper').find('.dt-length');\n                    if ($lengthMenu.length) {\n                        var $categoryFilter = $('#wpdm-category-filter-' + tableId);\n                        if ($categoryFilter.length) {\n                            $categoryFilter.closest('.wpdm-dt-category-wrap').appendTo($lengthMenu).show();\n                        }\n                        var $tagFilter = $('#wpdm-tag-filter-' + tableId);\n                        if ($tagFilter.length) {\n                            $tagFilter.closest('.wpdm-dt-tag-wrap').appendTo($lengthMenu).show();\n                        }\n                    }\n                }\n            });\n\n            \/\/ Category filter change handler\n            $('#wpdm-category-filter-' + tableId).on('change', function() {\n                ajaxParams.categories = $(this).val();\n                __dt.ajax.reload();\n            });\n\n            \/\/ Tag filter change handler\n            $('#wpdm-tag-filter-' + tableId).on('change', function() {\n                ajaxParams.tag = $(this).val();\n                __dt.ajax.reload();\n            });\n\n            \/\/ Clickable taxonomy links in table cells\n            $('#wpdmmydls-' + tableId).on('click', '.wpdm-dt-tax-filter', function(e) {\n                e.preventDefault();\n                var taxonomy = $(this).data('taxonomy');\n                var slug = $(this).data('slug');\n\n                if (taxonomy === 'wpdmcategory') {\n                    ajaxParams.categories = slug;\n                    $('#wpdm-category-filter-' + tableId).val(slug);\n                } else if (taxonomy === 'wpdmtag') {\n                    ajaxParams.tag = slug;\n                    $('#wpdm-tag-filter-' + tableId).val(slug);\n                }\n                __dt.ajax.reload();\n            });\n\n\t\t\t        });\n    <\/script>\n\n<div class=\"w3eden\">\n    <div id=\"wpdm-all-packages\">\n\t\t\t\t        <table id=\"wpdmmydls-wpdm_ca30f1c1-0dba-46bd-9ac3-fafe43770029\" class=\"table table-striped wpdm-all-packages-table\">\n            <thead>\n            <tr>\n\t\t\t\t                    <th  id=\"title\"\n                                                                        class=\"\">Titel<\/th>\n\t\t\t\t                    <th  id=\"publishdate\"\n                                                                        class=\"hidden-sm hidden-xs\">Datum<\/th>\n\t\t\t\t                    <th  id=\"version\"\n                                                                        class=\"hidden-sm hidden-xs\">Version<\/th>\n\t\t\t\t                    <th  id=\"packagesize\"\n                                                                        class=\"hidden-sm hidden-xs\">MB<\/th>\n\t\t\t\t                    <th style='width: 155px !important;min-width: 155px !important;max-width: 155px !important;' id=\"downloadlink\"\n                                                                        class=\"hidden-sm hidden-xs\">Download<\/th>\n\t\t\t\t\n            <\/tr>\n            <\/thead>\n            <tbody><\/tbody>\n        <\/table>\n\n\t\t<!-- Process: Array\n(\n)\n -->\n    <\/div>\n<\/div>\n\n\n\n\n<p>Der Download f\u00fcr aktuellere Versionen von MASTERSIM erfolgt \u00fcber github: <a href=\"https:\/\/github.com\/ghorwin\/MasterSim\/releases\" target=\"_blank\" rel=\"noopener\">https:\/\/github.com\/ghorwin\/MasterSim\/releases<\/a><\/p>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-pb-accordion-item c-accordion__item js-accordion-item no-js accordion-box\" data-initially-open=\"false\" data-click-to-close=\"true\" data-auto-close=\"true\" data-scroll=\"false\" data-scroll-offset=\"0\"><h3 id=\"at-15084\" class=\"c-accordion__title js-accordion-controller\" role=\"button\">CCMEditor<\/h3><div id=\"ac-15084\" class=\"c-accordion__content\">\t\n    <script>\n        jQuery(function ($) {\n            \/\/ Column definitions for server-side rendering\n            var colDefs = [[\"title\"],[\"publish_date\"],[\"version\"],[\"package_size\"],[\"download_link\"]];\n            var colHeads = [\"Titel\",\"Datum\",\"Version\",\"MB\",\"Download::155px\"];\n            var ajaxParams = {\"cols\":\"title|publish_date|version|package_size|download_link\",\"categories\":\"ccmeditor\",\"tag\":\"\",\"order_by\":\"date\",\"order\":\"DESC\"};\n            var tableId = 'wpdm_d7e6ce6e-ecfe-47e1-a566-7272eeabc879';\n\n            \/\/ Build column configurations\n            var columns = [];\n            colDefs.forEach(function(colGroup, index) {\n                var primaryCol = colGroup[0];\n                columns.push({\n                    data: null,\n                    orderable: ['page_link', 'title', 'publish_date', 'update_date', 'download_count', 'view_count', 'package_size', 'date', 'modified'].indexOf(primaryCol) !== -1,\n                    render: function(data, type, row) {\n                        if (type === 'sort' || type === 'type') {\n                            if (primaryCol === 'update_date' || primaryCol === 'modified') return row.update_date_raw;\n                            if (primaryCol === 'publish_date' || primaryCol === 'date') return row.publish_date_raw;\n                            if (primaryCol === 'download_count') return row.download_count;\n                            if (primaryCol === 'view_count') return row.view_count;\n                            if (primaryCol === 'page_link' || primaryCol === 'title') return row.title;\n                            return data;\n                        }\n\n                        var html = '';\n                        colGroup.forEach(function(col, cx) {\n                            var cxc = cx > 0 ? 'small-txt' : '';\n                            switch(col) {\n                                case 'title':\n                                    html += '<strong>' + row.title + '<\/strong><br\/>';\n                                    break;\n                                case 'page_link':\n                                    html += row.page_link + '<br\/>';\n                                    break;\n                                case 'excerpt':\n                                    html += '<div class=\"__dt_excerpt ' + cxc + '\">' + (row.excerpt || '') + '<\/div>';\n                                    break;\n                                case 'file_count':\n                                    html += cx > 0\n                                        ? '<span class=\"__dt_file_count ' + cxc + '\"><i class=\"far fa-copy\"><\/i> ' + row.file_count + ' file(s)<\/span>'\n                                        : '<span class=\"__dt_file_count ' + cxc + '\">' + row.file_count + '<\/span>';\n                                    break;\n                                case 'download_count':\n                                    html += cx > 0\n                                        ? '<span class=\"__dt_download_count ' + cxc + '\"><i class=\"far fa-arrow-alt-circle-down\"><\/i> ' + row.download_count + ' ' + (row.download_count > 1 ? 'downloads' : 'download') + '<\/span>'\n                                        : '<span class=\"__dt_download_count ' + cxc + '\">' + row.download_count + '<\/span>';\n                                    break;\n                                case 'view_count':\n                                    html += cx > 0\n                                        ? '<span class=\"__dt_view_count ' + cxc + '\"><i class=\"fa fa-eye\"><\/i> ' + row.view_count + ' ' + (row.view_count > 1 ? 'views' : 'view') + '<\/span>'\n                                        : '<span class=\"__dt_view_count ' + cxc + '\">' + row.view_count + '<\/span>';\n                                    break;\n                                case 'categories':\n                                    html += '<span class=\"__dt_categories ' + cxc + '\">' + (row.categories || '') + '<\/span>';\n                                    break;\n                                case 'tags':\n                                    html += '<span class=\"__dt_categories ' + cxc + '\">' + (row.tags || '') + '<\/span>';\n                                    break;\n                                case 'update_date':\n                                case 'modified':\n                                    html += '<span class=\"__dt_update_date ' + cxc + '\">' + row.update_date + '<\/span>';\n                                    break;\n                                case 'publish_date':\n                                case 'date':\n                                    html += '<span class=\"__dt_publish_date ' + cxc + '\">' + row.publish_date + '<\/span>';\n                                    break;\n                                case 'download_link':\n                                    html += row.download_link;\n                                    break;\n                                default:\n                                    \/\/ Handle excerpt_N pattern (e.g., excerpt_80)\n                                    if (col.match(\/^excerpt_\\d+$\/i) && row[col] !== undefined) {\n                                        html += '<div class=\"__dt_excerpt ' + cxc + '\">' + row[col] + '<\/div>';\n                                    } else if (row[col] !== undefined) {\n                                        html += '<span class=\"__dt_' + col + ' ' + cxc + '\">' + row[col] + '<\/span>';\n                                    }\n                            }\n                        });\n                        if (index === 0) html += '<div class=\"hidden-md hidden-lg td-mobile\"><\/div>';\n                        return html;\n                    },\n                    createdCell: function(td, cellData, rowData, row, col) {\n                        if (index === 0 && rowData.icon) {\n                            $(td).css({\n                                'background-image': 'url(' + rowData.icon + ')',\n                                'background-size': '36px',\n                                'background-position': '5px center',\n                                'background-repeat': 'no-repeat',\n                                'padding-left': '52px',\n                                'line-height': 'normal'\n                            });\n                        }\n                        $(td).addClass('__dt_col_' + index + ' __dt_col __dt_col_' + colGroup[0]);\n                    }\n                });\n            });\n\n            var __dt = $('#wpdmmydls-wpdm_d7e6ce6e-ecfe-47e1-a566-7272eeabc879').DataTable({\n                processing: true,\n                serverSide: true,\n                ajax: {\n                    url: 'https:\/\/bauklimatik-dresden.de\/wp-admin\/admin-ajax.php',\n                    type: 'POST',\n                    data: function(d) {\n                        d.action = 'wpdm_all_packages_data';\n                        d.params = ajaxParams;\n                        d.cfurl = 'https:\/\/bauklimatik-dresden.de\/en\/downloads\/';\n                    },\n                    dataSrc: function(json) {\n                        \/\/ TEMPORARY DEBUG - remove after fixing performance\n                        if (json.debug) {\n                            console.log('\ud83d\udd0d WPDM Total Time:', json.debug.total_ms + 'ms');\n                            console.table(json.debug.breakdown_ms);\n                        }\n                        return json.data;\n                    }\n                },\n                columns: columns,\n                responsive: true,\n                autoWidth: false,\n                order: [[0, \"asc\"]],\n                pageLength: 20,\n                lengthMenu: [[20, 10, 25, 50, 100], [20, 10, 25, 50, 100]],\n                language: {\n                    lengthMenu: \"_MENU_\",\n                    zeroRecords: \"No matching downloads found\",\n                    info: \"Showing _START_ to _END_ of _TOTAL_\",\n                    infoEmpty: \"No downloads available\",\n                    infoFiltered: \"(filtered from _MAX_)\",\n                    emptyTable: \"No downloads available\",\n                    loadingRecords: \"Loading...\",\n                    processing: '<div class=\"wpdm-dt-loading\">Loading...<\/div>',\n                    search: \"Search\",\n                    searchPlaceholder: \"Type to filter...\",\n                    paginate: {\n                        first: \"\u00ab\",\n                        last: \"\u00bb\",\n                        next: \"\u203a\",\n                        previous: \"\u2039\"\n                    }\n                },\n                drawCallback: function() {\n                    $(this).find('tr').addClass('__dt_row');\n                },\n                initComplete: function() {\n                    var $lengthMenu = $('#wpdmmydls-' + tableId + '_wrapper').find('.dt-length');\n                    if ($lengthMenu.length) {\n                        var $categoryFilter = $('#wpdm-category-filter-' + tableId);\n                        if ($categoryFilter.length) {\n                            $categoryFilter.closest('.wpdm-dt-category-wrap').appendTo($lengthMenu).show();\n                        }\n                        var $tagFilter = $('#wpdm-tag-filter-' + tableId);\n                        if ($tagFilter.length) {\n                            $tagFilter.closest('.wpdm-dt-tag-wrap').appendTo($lengthMenu).show();\n                        }\n                    }\n                }\n            });\n\n            \/\/ Category filter change handler\n            $('#wpdm-category-filter-' + tableId).on('change', function() {\n                ajaxParams.categories = $(this).val();\n                __dt.ajax.reload();\n            });\n\n            \/\/ Tag filter change handler\n            $('#wpdm-tag-filter-' + tableId).on('change', function() {\n                ajaxParams.tag = $(this).val();\n                __dt.ajax.reload();\n            });\n\n            \/\/ Clickable taxonomy links in table cells\n            $('#wpdmmydls-' + tableId).on('click', '.wpdm-dt-tax-filter', function(e) {\n                e.preventDefault();\n                var taxonomy = $(this).data('taxonomy');\n                var slug = $(this).data('slug');\n\n                if (taxonomy === 'wpdmcategory') {\n                    ajaxParams.categories = slug;\n                    $('#wpdm-category-filter-' + tableId).val(slug);\n                } else if (taxonomy === 'wpdmtag') {\n                    ajaxParams.tag = slug;\n                    $('#wpdm-tag-filter-' + tableId).val(slug);\n                }\n                __dt.ajax.reload();\n            });\n\n\t\t\t        });\n    <\/script>\n\n<div class=\"w3eden\">\n    <div id=\"wpdm-all-packages\">\n\t\t\t\t        <table id=\"wpdmmydls-wpdm_d7e6ce6e-ecfe-47e1-a566-7272eeabc879\" class=\"table table-striped wpdm-all-packages-table\">\n            <thead>\n            <tr>\n\t\t\t\t                    <th  id=\"title\"\n                                                                        class=\"\">Titel<\/th>\n\t\t\t\t                    <th  id=\"publishdate\"\n                                                                        class=\"hidden-sm hidden-xs\">Datum<\/th>\n\t\t\t\t                    <th  id=\"version\"\n                                                                        class=\"hidden-sm hidden-xs\">Version<\/th>\n\t\t\t\t                    <th  id=\"packagesize\"\n                                                                        class=\"hidden-sm hidden-xs\">MB<\/th>\n\t\t\t\t                    <th style='width: 155px !important;min-width: 155px !important;max-width: 155px !important;' id=\"downloadlink\"\n                                                                        class=\"hidden-sm hidden-xs\">Download<\/th>\n\t\t\t\t\n            <\/tr>\n            <\/thead>\n            <tbody><\/tbody>\n        <\/table>\n\n\t\t<!-- Process: Array\n(\n)\n -->\n    <\/div>\n<\/div>\n\n<p><a href=\"https:\/\/bauklimatik-dresden.de\/Installer\/CCMEditor.changelog\">Changelog<\/a><\/p>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-pb-accordion-item c-accordion__item js-accordion-item no-js accordion-box\" data-initially-open=\"false\" data-click-to-close=\"true\" data-auto-close=\"true\" data-scroll=\"false\" data-scroll-offset=\"0\"><h3 id=\"at-15085\" class=\"c-accordion__title js-accordion-controller\" role=\"button\">POSTPROC 2<\/h3><div id=\"ac-15085\" class=\"c-accordion__content\">\t\n    <script>\n        jQuery(function ($) {\n            \/\/ Column definitions for server-side rendering\n            var colDefs = [[\"title\"],[\"publish_date\"],[\"version\"],[\"package_size\"],[\"download_link\"]];\n            var colHeads = [\"Titel\",\"Datum\",\"Version\",\"MB\",\"Download::155px\"];\n            var ajaxParams = {\"cols\":\"title|publish_date|version|package_size|download_link\",\"categories\":\"postproc\",\"tag\":\"\",\"order_by\":\"date\",\"order\":\"DESC\"};\n            var tableId = 'wpdm_639261c0-b5ce-4f2e-8305-46b93f070314';\n\n            \/\/ Build column configurations\n            var columns = [];\n            colDefs.forEach(function(colGroup, index) {\n                var primaryCol = colGroup[0];\n                columns.push({\n                    data: null,\n                    orderable: ['page_link', 'title', 'publish_date', 'update_date', 'download_count', 'view_count', 'package_size', 'date', 'modified'].indexOf(primaryCol) !== -1,\n                    render: function(data, type, row) {\n                        if (type === 'sort' || type === 'type') {\n                            if (primaryCol === 'update_date' || primaryCol === 'modified') return row.update_date_raw;\n                            if (primaryCol === 'publish_date' || primaryCol === 'date') return row.publish_date_raw;\n                            if (primaryCol === 'download_count') return row.download_count;\n                            if (primaryCol === 'view_count') return row.view_count;\n                            if (primaryCol === 'page_link' || primaryCol === 'title') return row.title;\n                            return data;\n                        }\n\n                        var html = '';\n                        colGroup.forEach(function(col, cx) {\n                            var cxc = cx > 0 ? 'small-txt' : '';\n                            switch(col) {\n                                case 'title':\n                                    html += '<strong>' + row.title + '<\/strong><br\/>';\n                                    break;\n                                case 'page_link':\n                                    html += row.page_link + '<br\/>';\n                                    break;\n                                case 'excerpt':\n                                    html += '<div class=\"__dt_excerpt ' + cxc + '\">' + (row.excerpt || '') + '<\/div>';\n                                    break;\n                                case 'file_count':\n                                    html += cx > 0\n                                        ? '<span class=\"__dt_file_count ' + cxc + '\"><i class=\"far fa-copy\"><\/i> ' + row.file_count + ' file(s)<\/span>'\n                                        : '<span class=\"__dt_file_count ' + cxc + '\">' + row.file_count + '<\/span>';\n                                    break;\n                                case 'download_count':\n                                    html += cx > 0\n                                        ? '<span class=\"__dt_download_count ' + cxc + '\"><i class=\"far fa-arrow-alt-circle-down\"><\/i> ' + row.download_count + ' ' + (row.download_count > 1 ? 'downloads' : 'download') + '<\/span>'\n                                        : '<span class=\"__dt_download_count ' + cxc + '\">' + row.download_count + '<\/span>';\n                                    break;\n                                case 'view_count':\n                                    html += cx > 0\n                                        ? '<span class=\"__dt_view_count ' + cxc + '\"><i class=\"fa fa-eye\"><\/i> ' + row.view_count + ' ' + (row.view_count > 1 ? 'views' : 'view') + '<\/span>'\n                                        : '<span class=\"__dt_view_count ' + cxc + '\">' + row.view_count + '<\/span>';\n                                    break;\n                                case 'categories':\n                                    html += '<span class=\"__dt_categories ' + cxc + '\">' + (row.categories || '') + '<\/span>';\n                                    break;\n                                case 'tags':\n                                    html += '<span class=\"__dt_categories ' + cxc + '\">' + (row.tags || '') + '<\/span>';\n                                    break;\n                                case 'update_date':\n                                case 'modified':\n                                    html += '<span class=\"__dt_update_date ' + cxc + '\">' + row.update_date + '<\/span>';\n                                    break;\n                                case 'publish_date':\n                                case 'date':\n                                    html += '<span class=\"__dt_publish_date ' + cxc + '\">' + row.publish_date + '<\/span>';\n                                    break;\n                                case 'download_link':\n                                    html += row.download_link;\n                                    break;\n                                default:\n                                    \/\/ Handle excerpt_N pattern (e.g., excerpt_80)\n                                    if (col.match(\/^excerpt_\\d+$\/i) && row[col] !== undefined) {\n                                        html += '<div class=\"__dt_excerpt ' + cxc + '\">' + row[col] + '<\/div>';\n                                    } else if (row[col] !== undefined) {\n                                        html += '<span class=\"__dt_' + col + ' ' + cxc + '\">' + row[col] + '<\/span>';\n                                    }\n                            }\n                        });\n                        if (index === 0) html += '<div class=\"hidden-md hidden-lg td-mobile\"><\/div>';\n                        return html;\n                    },\n                    createdCell: function(td, cellData, rowData, row, col) {\n                        if (index === 0 && rowData.icon) {\n                            $(td).css({\n                                'background-image': 'url(' + rowData.icon + ')',\n                                'background-size': '36px',\n                                'background-position': '5px center',\n                                'background-repeat': 'no-repeat',\n                                'padding-left': '52px',\n                                'line-height': 'normal'\n                            });\n                        }\n                        $(td).addClass('__dt_col_' + index + ' __dt_col __dt_col_' + colGroup[0]);\n                    }\n                });\n            });\n\n            var __dt = $('#wpdmmydls-wpdm_639261c0-b5ce-4f2e-8305-46b93f070314').DataTable({\n                processing: true,\n                serverSide: true,\n                ajax: {\n                    url: 'https:\/\/bauklimatik-dresden.de\/wp-admin\/admin-ajax.php',\n                    type: 'POST',\n                    data: function(d) {\n                        d.action = 'wpdm_all_packages_data';\n                        d.params = ajaxParams;\n                        d.cfurl = 'https:\/\/bauklimatik-dresden.de\/en\/downloads\/';\n                    },\n                    dataSrc: function(json) {\n                        \/\/ TEMPORARY DEBUG - remove after fixing performance\n                        if (json.debug) {\n                            console.log('\ud83d\udd0d WPDM Total Time:', json.debug.total_ms + 'ms');\n                            console.table(json.debug.breakdown_ms);\n                        }\n                        return json.data;\n                    }\n                },\n                columns: columns,\n                responsive: true,\n                autoWidth: false,\n                order: [[0, \"asc\"]],\n                pageLength: 20,\n                lengthMenu: [[20, 10, 25, 50, 100], [20, 10, 25, 50, 100]],\n                language: {\n                    lengthMenu: \"_MENU_\",\n                    zeroRecords: \"No matching downloads found\",\n                    info: \"Showing _START_ to _END_ of _TOTAL_\",\n                    infoEmpty: \"No downloads available\",\n                    infoFiltered: \"(filtered from _MAX_)\",\n                    emptyTable: \"No downloads available\",\n                    loadingRecords: \"Loading...\",\n                    processing: '<div class=\"wpdm-dt-loading\">Loading...<\/div>',\n                    search: \"Search\",\n                    searchPlaceholder: \"Type to filter...\",\n                    paginate: {\n                        first: \"\u00ab\",\n                        last: \"\u00bb\",\n                        next: \"\u203a\",\n                        previous: \"\u2039\"\n                    }\n                },\n                drawCallback: function() {\n                    $(this).find('tr').addClass('__dt_row');\n                },\n                initComplete: function() {\n                    var $lengthMenu = $('#wpdmmydls-' + tableId + '_wrapper').find('.dt-length');\n                    if ($lengthMenu.length) {\n                        var $categoryFilter = $('#wpdm-category-filter-' + tableId);\n                        if ($categoryFilter.length) {\n                            $categoryFilter.closest('.wpdm-dt-category-wrap').appendTo($lengthMenu).show();\n                        }\n                        var $tagFilter = $('#wpdm-tag-filter-' + tableId);\n                        if ($tagFilter.length) {\n                            $tagFilter.closest('.wpdm-dt-tag-wrap').appendTo($lengthMenu).show();\n                        }\n                    }\n                }\n            });\n\n            \/\/ Category filter change handler\n            $('#wpdm-category-filter-' + tableId).on('change', function() {\n                ajaxParams.categories = $(this).val();\n                __dt.ajax.reload();\n            });\n\n            \/\/ Tag filter change handler\n            $('#wpdm-tag-filter-' + tableId).on('change', function() {\n                ajaxParams.tag = $(this).val();\n                __dt.ajax.reload();\n            });\n\n            \/\/ Clickable taxonomy links in table cells\n            $('#wpdmmydls-' + tableId).on('click', '.wpdm-dt-tax-filter', function(e) {\n                e.preventDefault();\n                var taxonomy = $(this).data('taxonomy');\n                var slug = $(this).data('slug');\n\n                if (taxonomy === 'wpdmcategory') {\n                    ajaxParams.categories = slug;\n                    $('#wpdm-category-filter-' + tableId).val(slug);\n                } else if (taxonomy === 'wpdmtag') {\n                    ajaxParams.tag = slug;\n                    $('#wpdm-tag-filter-' + tableId).val(slug);\n                }\n                __dt.ajax.reload();\n            });\n\n\t\t\t        });\n    <\/script>\n\n<div class=\"w3eden\">\n    <div id=\"wpdm-all-packages\">\n\t\t\t\t        <table id=\"wpdmmydls-wpdm_639261c0-b5ce-4f2e-8305-46b93f070314\" class=\"table table-striped wpdm-all-packages-table\">\n            <thead>\n            <tr>\n\t\t\t\t                    <th  id=\"title\"\n                                                                        class=\"\">Titel<\/th>\n\t\t\t\t                    <th  id=\"publishdate\"\n                                                                        class=\"hidden-sm hidden-xs\">Datum<\/th>\n\t\t\t\t                    <th  id=\"version\"\n                                                                        class=\"hidden-sm hidden-xs\">Version<\/th>\n\t\t\t\t                    <th  id=\"packagesize\"\n                                                                        class=\"hidden-sm hidden-xs\">MB<\/th>\n\t\t\t\t                    <th style='width: 155px !important;min-width: 155px !important;max-width: 155px !important;' id=\"downloadlink\"\n                                                                        class=\"hidden-sm hidden-xs\">Download<\/th>\n\t\t\t\t\n            <\/tr>\n            <\/thead>\n            <tbody><\/tbody>\n        <\/table>\n\n\t\t<!-- Process: Array\n(\n)\n -->\n    <\/div>\n<\/div>\n\n<p><a href=\"https:\/\/bauklimatik-dresden.de\/Installer\/PostProc.changelog\">Changelog<\/a><\/p>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-pb-accordion-item c-accordion__item js-accordion-item no-js accordion-box\" data-initially-open=\"false\" data-click-to-close=\"true\" data-auto-close=\"true\" data-scroll=\"false\" data-scroll-offset=\"0\"><h3 id=\"at-15086\" class=\"c-accordion__title js-accordion-controller\" role=\"button\">SIM-VICUS<\/h3><div id=\"ac-15086\" class=\"c-accordion__content\">\n<p>The download for software and information for building and network simulation is available on the website of <a href=\"https:\/\/vicus-software.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">Vicus Software GmbH<\/a><\/p>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/vicus-software.com\/\" target=\"_blank\" rel=\"https:\/\/www.sim-vicus.de\/download\/ noopener noreferrer noopener\">Download<\/a><\/div>\n<\/div>\n<\/div><\/div>\n\n\n\n<h3 class=\"wp-block-heading\"><em>Available languages<\/em><\/h3>\n\n\n\n<p><em>DELPHIN 6 is available in German, English, French and Italian.<br>For the programs COND, THERAKLES, POSTPROC, MASTERSIM there is a German and an English version.<\/em><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><em><strong>Supported operating systems<\/strong><\/em><\/h3>\n\n\n\n<p><em>The Windows versions are tested on Windows 7, 8, 8.1, 10 and 11.<br>In the event that 32-bit versions are required for Windows XP versions, please send us a support request. Officially, however, Windows XP is no longer supported.<br><br>Mac versions run under Mac OS X 10.11 (El Capitan) or newer versions, unless otherwise stated. To run our software on the Mac under newer versions, you either have to adjust the security settings so that software can also be run from sources other than the Apple Store. Alternatively, you can also right-click on the application file in the Finder and select Open. In the dialog that appears, you can now confirm that you want to open the software so that you are no longer prompted in future.<br><br>Linux versions are distributed without the runtime libraries available in the usual distribution packages. Therefore, the appropriate library packages, primarily the Qt 5 library, must be installed. The Linux versions were created under Ubuntu 18.04 (LTS) and should therefore be executable on comparably old distributions and newer Linux editions (the Qt 5.9 libraries are expected).<br><br>The 7-Zip archives can be unpacked using the following command line:<br><br>p7zip -d &lt;archive&gt;<\/em><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><em>License information<\/em><\/h3>\n\n\n\n<p><em>Commercial software versions must be activated after installation. For more information on available license variants and license conditions, please refer to the corresponding software order pages. Please send an e-mail to <a href=\"mailto:licence@bauklimatik-dresden.de\">licence@bauklimatik-dresden.de<\/a>, if you would like to receive a formal quotation.<\/em><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><em><em><strong>Old software versions<\/strong><\/em><\/em><\/h3>\n\n\n\n<p><em>On request, you can also obtain older software versions that are no longer available for download. If required, we can also create versions for older MacOS versions. In this case, please contact us via the e-mail address given in the imprint.<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Available languages DELPHIN 6 is available in German, English, French and Italian.For the programs COND, THERAKLES, POSTPROC, MASTERSIM there is a German and an English version. Supported operating systems The Windows versions are tested on Windows 7, 8, 8.1, 10 and 11.In the event that 32-bit versions are required for Windows XP versions, please send [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-1508","page","type-page","status-publish","hentry"],"blocksy_meta":{"styles_descriptor":{"styles":{"desktop":"","tablet":"","mobile":""},"google_fonts":[],"version":6}},"_links":{"self":[{"href":"https:\/\/bauklimatik-dresden.de\/en\/wp-json\/wp\/v2\/pages\/1508","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bauklimatik-dresden.de\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/bauklimatik-dresden.de\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/bauklimatik-dresden.de\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/bauklimatik-dresden.de\/en\/wp-json\/wp\/v2\/comments?post=1508"}],"version-history":[{"count":0,"href":"https:\/\/bauklimatik-dresden.de\/en\/wp-json\/wp\/v2\/pages\/1508\/revisions"}],"wp:attachment":[{"href":"https:\/\/bauklimatik-dresden.de\/en\/wp-json\/wp\/v2\/media?parent=1508"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}