{"id":672,"date":"2022-04-13T11:09:25","date_gmt":"2022-04-13T11:09:25","guid":{"rendered":"https:\/\/wirralarchaeology.org\/pages\/?page_id=672"},"modified":"2022-04-13T11:12:15","modified_gmt":"2022-04-13T11:12:15","slug":"downloads","status":"publish","type":"page","link":"https:\/\/wirralarchaeology.org\/pages\/downloads\/","title":{"rendered":"Downloads"},"content":{"rendered":"\t\t\t<script src=\"https:\/\/wirralarchaeology.org\/pages\/wp-content\/plugins\/download-manager\/assets\/datatables\/datatables.min.js\"><\/script>\n\t\t<link href=\"https:\/\/wirralarchaeology.org\/pages\/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\",\"file_count\",\"download_count\"],[\"categories\"],[\"update_date\"],[\"download_link\"]];\n            var colHeads = [\"Title\",\"Categories\",\"Update Date\",\"Download::155px\"];\n            var ajaxParams = {\"cols\":\"title,file_count,download_count|categories|update_date|download_link\",\"categories\":\"\",\"tag\":\"\",\"order_by\":\"title\",\"order\":\"ASC\"};\n            var tableId = 'wpdm_90ece25e-c9b3-47fe-bc14-1e1b363c45d7';\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_90ece25e-c9b3-47fe-bc14-1e1b363c45d7').DataTable({\n                processing: true,\n                serverSide: true,\n                ajax: {\n                    url: 'https:\/\/wirralarchaeology.org\/pages\/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:\/\/wirralarchaeology.org\/pages\/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: 10,\n                lengthMenu: [[10, 10, 25, 50, 100], [10, 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_90ece25e-c9b3-47fe-bc14-1e1b363c45d7\" class=\"table table-striped wpdm-all-packages-table\">\n            <thead>\n            <tr>\n\t\t\t\t                    <th  id=\"title\"\n                                                                        class=\"\">Title<\/th>\n\t\t\t\t                    <th  id=\"categories\"\n                                                                        class=\"hidden-sm hidden-xs\">Categories<\/th>\n\t\t\t\t                    <th  id=\"updatedate\"\n                                                                        class=\"hidden-sm hidden-xs\">Update Date<\/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","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"ngg_post_thumbnail":0,"footnotes":""},"class_list":["post-672","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Downloads - Wirral Archaeology<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/wirralarchaeology.org\/pages\/downloads\/\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Downloads - Wirral Archaeology\" \/>\n<meta property=\"og:url\" content=\"https:\/\/wirralarchaeology.org\/pages\/downloads\/\" \/>\n<meta property=\"og:site_name\" content=\"Wirral Archaeology\" \/>\n<meta property=\"article:modified_time\" content=\"2022-04-13T11:12:15+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/wirralarchaeology.org\\\/pages\\\/downloads\\\/\",\"url\":\"https:\\\/\\\/wirralarchaeology.org\\\/pages\\\/downloads\\\/\",\"name\":\"Downloads - Wirral Archaeology\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/wirralarchaeology.org\\\/pages\\\/#website\"},\"datePublished\":\"2022-04-13T11:09:25+00:00\",\"dateModified\":\"2022-04-13T11:12:15+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/wirralarchaeology.org\\\/pages\\\/downloads\\\/#breadcrumb\"},\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/wirralarchaeology.org\\\/pages\\\/downloads\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/wirralarchaeology.org\\\/pages\\\/downloads\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/wirralarchaeology.org\\\/pages\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Downloads\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/wirralarchaeology.org\\\/pages\\\/#website\",\"url\":\"https:\\\/\\\/wirralarchaeology.org\\\/pages\\\/\",\"name\":\"Wirral Archaeology\",\"description\":\"Wirral&#039;s Hidden History Revealed\",\"publisher\":{\"@id\":\"https:\\\/\\\/wirralarchaeology.org\\\/pages\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/wirralarchaeology.org\\\/pages\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-GB\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/wirralarchaeology.org\\\/pages\\\/#organization\",\"name\":\"Wirral Archaeology\",\"url\":\"https:\\\/\\\/wirralarchaeology.org\\\/pages\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\\/\\\/wirralarchaeology.org\\\/pages\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/i0.wp.com\\\/wirralarchaeology.org\\\/pages\\\/wp-content\\\/uploads\\\/2023\\\/06\\\/cropped-WA_LOGO_820x312_FB.webp?fit=512%2C512&ssl=1\",\"contentUrl\":\"https:\\\/\\\/i0.wp.com\\\/wirralarchaeology.org\\\/pages\\\/wp-content\\\/uploads\\\/2023\\\/06\\\/cropped-WA_LOGO_820x312_FB.webp?fit=512%2C512&ssl=1\",\"width\":512,\"height\":512,\"caption\":\"Wirral Archaeology\"},\"image\":{\"@id\":\"https:\\\/\\\/wirralarchaeology.org\\\/pages\\\/#\\\/schema\\\/logo\\\/image\\\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Downloads - Wirral Archaeology","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/wirralarchaeology.org\/pages\/downloads\/","og_locale":"en_GB","og_type":"article","og_title":"Downloads - Wirral Archaeology","og_url":"https:\/\/wirralarchaeology.org\/pages\/downloads\/","og_site_name":"Wirral Archaeology","article_modified_time":"2022-04-13T11:12:15+00:00","twitter_card":"summary_large_image","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/wirralarchaeology.org\/pages\/downloads\/","url":"https:\/\/wirralarchaeology.org\/pages\/downloads\/","name":"Downloads - Wirral Archaeology","isPartOf":{"@id":"https:\/\/wirralarchaeology.org\/pages\/#website"},"datePublished":"2022-04-13T11:09:25+00:00","dateModified":"2022-04-13T11:12:15+00:00","breadcrumb":{"@id":"https:\/\/wirralarchaeology.org\/pages\/downloads\/#breadcrumb"},"inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["https:\/\/wirralarchaeology.org\/pages\/downloads\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/wirralarchaeology.org\/pages\/downloads\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/wirralarchaeology.org\/pages\/"},{"@type":"ListItem","position":2,"name":"Downloads"}]},{"@type":"WebSite","@id":"https:\/\/wirralarchaeology.org\/pages\/#website","url":"https:\/\/wirralarchaeology.org\/pages\/","name":"Wirral Archaeology","description":"Wirral&#039;s Hidden History Revealed","publisher":{"@id":"https:\/\/wirralarchaeology.org\/pages\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/wirralarchaeology.org\/pages\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-GB"},{"@type":"Organization","@id":"https:\/\/wirralarchaeology.org\/pages\/#organization","name":"Wirral Archaeology","url":"https:\/\/wirralarchaeology.org\/pages\/","logo":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/wirralarchaeology.org\/pages\/#\/schema\/logo\/image\/","url":"https:\/\/i0.wp.com\/wirralarchaeology.org\/pages\/wp-content\/uploads\/2023\/06\/cropped-WA_LOGO_820x312_FB.webp?fit=512%2C512&ssl=1","contentUrl":"https:\/\/i0.wp.com\/wirralarchaeology.org\/pages\/wp-content\/uploads\/2023\/06\/cropped-WA_LOGO_820x312_FB.webp?fit=512%2C512&ssl=1","width":512,"height":512,"caption":"Wirral Archaeology"},"image":{"@id":"https:\/\/wirralarchaeology.org\/pages\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/wirralarchaeology.org\/pages\/wp-json\/wp\/v2\/pages\/672","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wirralarchaeology.org\/pages\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/wirralarchaeology.org\/pages\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/wirralarchaeology.org\/pages\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wirralarchaeology.org\/pages\/wp-json\/wp\/v2\/comments?post=672"}],"version-history":[{"count":1,"href":"https:\/\/wirralarchaeology.org\/pages\/wp-json\/wp\/v2\/pages\/672\/revisions"}],"predecessor-version":[{"id":1899,"href":"https:\/\/wirralarchaeology.org\/pages\/wp-json\/wp\/v2\/pages\/672\/revisions\/1899"}],"wp:attachment":[{"href":"https:\/\/wirralarchaeology.org\/pages\/wp-json\/wp\/v2\/media?parent=672"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}