{"id":5116,"date":"2025-10-03T04:17:13","date_gmt":"2025-10-03T03:17:13","guid":{"rendered":"https:\/\/paragliding-in-madeira.com\/weather\/?page_id=5116"},"modified":"2025-10-10T03:02:08","modified_gmt":"2025-10-10T02:02:08","slug":"trail-user-feedback","status":"publish","type":"page","link":"https:\/\/paragliding-in-madeira.com\/weather\/trail-user-feedback\/","title":{"rendered":"Hiker Feedback"},"content":{"rendered":"\n<figure class=\"wp-block-image alignfull size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1999\" height=\"1024\" src=\"https:\/\/paragliding-in-madeira.com\/weather\/wp-content\/uploads\/2025\/10\/Hiker-in-nature-by-gpt-wide-banner.webp\" alt=\"Hiker in nature by gpt wide banner\" class=\"wp-image-5101\" srcset=\"https:\/\/paragliding-in-madeira.com\/weather\/wp-content\/uploads\/2025\/10\/Hiker-in-nature-by-gpt-wide-banner.webp 1999w, https:\/\/paragliding-in-madeira.com\/weather\/wp-content\/uploads\/2025\/10\/Hiker-in-nature-by-gpt-wide-banner-300x154.webp 300w, https:\/\/paragliding-in-madeira.com\/weather\/wp-content\/uploads\/2025\/10\/Hiker-in-nature-by-gpt-wide-banner-1024x525.webp 1024w, https:\/\/paragliding-in-madeira.com\/weather\/wp-content\/uploads\/2025\/10\/Hiker-in-nature-by-gpt-wide-banner-768x393.webp 768w, https:\/\/paragliding-in-madeira.com\/weather\/wp-content\/uploads\/2025\/10\/Hiker-in-nature-by-gpt-wide-banner-1536x787.webp 1536w\" sizes=\"auto, (max-width: 1999px) 100vw, 1999px\" \/><\/figure>\n\n\n\n<div class=\"wp-block-buttons is-content-justification-center is-layout-flex wp-container-core-buttons-is-layout-a89b3969 wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/www.paragliding-in-madeira.com\/weather\">Home<\/a><\/div>\n\n\n\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/paragliding-in-madeira.com\/weather\/weather-info\/\">Weather info<\/a><\/div>\n<\/div>\n\n\n\n<p class=\"has-text-align-center\"><a href=\"https:\/\/paragliding-in-madeira.com\/weather\/trails-status\/\" title=\"Trails official status\">Trails status<\/a> | <strong>Hikers Feedback<\/strong><\/p>\n\n\n\n<div style=\"height:13px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<div class=\"wp-block-group has-global-padding is-layout-constrained wp-block-group-is-layout-constrained\">\n<p class=\"has-text-align-center\" id=\"user-info\">Madeira trails live info <br>Powered by beautiful users from all around the world<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-group has-global-padding is-layout-constrained wp-block-group-is-layout-constrained\">\n<p class=\"has-text-align-center\">Send feedback on your hike and see live updates from other hikers too<\/p>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<div style=\"height:13px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n    <style>\n        \/* General Form Styling *\/\n        #trail-issue-form { max-width: 600px; margin: auto; padding: 20px; border: 1px solid #ddd; border-radius: 6px; background-color: #f9f9f9; }\n        #trail-issue-form label { display: block; margin-top: 10px; font-weight: normal; color: #333; }\n        #trail-issue-form input[type=text],\n        #trail-issue-form input[type=email],\n        #trail-issue-form select,\n        #trail-issue-form textarea { width: 100%; padding: 8px; margin-top: 4px; box-sizing: border-box; border: 1px solid #ccc; border-radius: 4px; }\n        #trail-issue-form button { margin-top: 15px; padding: 10px 20px; background-color: #0073aa; color: white; border: none; border-radius: 4px; cursor: pointer; transition: background-color 0.3s; }\n        #trail-issue-form button:hover { background-color: #005177; }\n        #trail-issue-message { margin-top: 15px; padding: 10px; border-radius: 4px; text-align: center; }\n\n        \/* --- Output Table Styles for Responsiveness --- *\/\n        .trail-issues { overflow-x: auto; }\n        .trail-issues table { \n            width: 100%; \n            border-collapse: collapse; \n            margin-top: 20px; \n            table-layout: fixed; \n            min-width: 500px; \n            font-size: 0.9em;\n        }\n        .trail-issues th, .trail-issues td { \n            border: 1px solid #ccc; \n            padding: 8px; \n            text-align: left; \n            word-wrap: break-word; \n            vertical-align: top;\n            box-sizing: border-box;\n        }\n        .trail-issues th { background-color: #e9e9e9; font-weight: bold; }\n                          \n            @media (max-width: 600px) {\n    .trail-issues tr {\n        display: block;\n        margin-bottom: 12px;\n        padding: 10px;\n        background-color: #f9f9f9; \/* light row background *\/\n        border-radius: 6px;\n        box-shadow: 0 1px 2px rgba(0,0,0,0.1);\n    }\n\n    .trail-issues td {\n        display: block;  \/* so each cell stacks *\/\n        border: none;    \/* optional, since row already has border *\/\n        padding: 6px 0;  \/* vertical spacing inside each cell *\/\n        min-height: 24px; \/* ensures even empty cells take space *\/\n        background: transparent; \/* ensure cell background doesn't override the row *\/\n    }\n\n    .trail-issues td:empty::after {\n        content: \"-\";\n        color: #aaa;\n        display: block;\n    }\n}\n              \n        \n        \/* Column Widths *\/\n        .trail-issues th:nth-child(1), .trail-issues td:nth-child(1) { width: 15%; cursor: pointer; } \/* Trail (PR) *\/\n                          \n        .trail-issues th:nth-child(2), .trail-issues td:nth-child(2) { width: 15%; } \/* Issue *\/\n        .trail-issues th:nth-child(3), .trail-issues td:nth-child(3) { width: 30%; } \/* Notes *\/\n        .trail-issues th:nth-child(4), .trail-issues td:nth-child(4) { width: 10%; text-align: center; } \/* Image *\/\n        .trail-issues th:nth-child(5), .trail-issues td:nth-child(5) { width: 15%; } \/* Submitted By *\/\n        .trail-issues th:nth-child(6), .trail-issues td:nth-child(6) { width: 15%; font-size: 0.8em; } \/* Date *\/\n\n        .trail-issues img { max-width: 100%; height: auto; display: block; margin: 0 auto; border-radius: 4px; }\n        .show-more { color: #0073aa; cursor: pointer; font-size: 0.9em; font-weight: bold; text-decoration: underline; }\n\n        \/* Mobile View (Stacking Columns) *\/\n        @media (max-width: 600px) {\n            .trail-issues table { min-width: 100%; }\n            .trail-issues table, .trail-issues thead, .trail-issues tbody, .trail-issues th, .trail-issues td, .trail-issues tr { \n                display: block; \n            }\n            .trail-issues thead tr { \n                position: absolute; top: -9999px; left: -9999px; \/* Hide headers *\/\n            }\n            .trail-issues tr { border: 1px solid #ccc; margin-bottom: 15px; border-radius: 4px; overflow: hidden; }\n            .trail-issues td { \n                border: none;\n                border-bottom: 1px solid #eee; \n                position: relative;\n                padding-left: 45%; \n                text-align: right;\n                width: auto !important;\n            }\n            .trail-issues td:before { \n                position: absolute;\n                left: 6px;\n                width: 40%; \n                padding-right: 10px; \n                white-space: nowrap;\n                text-align: left;\n                font-weight: bold;\n                color: #555;\n                content: attr(data-label);\n            }\n            .trail-issues td:last-child { border-bottom: 0; }\n        }\n    <\/style>\n\n    <form id=\"trail-issue-form\" enctype=\"multipart\/form-data\">\n        <label for=\"trail_id\">* Trail:<\/label>\n        <select name=\"trail_id\" id=\"trail_id\" required>\n            <option value=\"\">-- Select a Trail --<\/option>\n                        <optgroup label=\"Madeira\">\n                                    <option value=\"PR1\">PR1 - Vereda do Areeiro<\/option>\n                                    <option value=\"PR1.1\">PR1.1 - Vereda da Ilha<\/option>\n                                    <option value=\"PR1.2\">PR1.2 - Vereda do Pico Ruivo<\/option>\n                                    <option value=\"PR1.3\">PR1.3 - Vereda da Encumeada<\/option>\n                                    <option value=\"PR2\">PR2 - Vereda do Urzal<\/option>\n                                    <option value=\"PR3\">PR3 - Vereda do Burro<\/option>\n                                    <option value=\"PR3.1\">PR3.1 - Caminho Real do Monte<\/option>\n                                    <option value=\"PR4\">PR4 - Levada do Barreiro<\/option>\n                                    <option value=\"PR5\">PR5 - Vereda das Funduras<\/option>\n                                    <option value=\"PR6\">PR6 - Levada das 25 Fontes<\/option>\n                                    <option value=\"PR6.1\">PR6.1 - Levada do Risco<\/option>\n                                    <option value=\"PR6.2\">PR6.2 - Levada do Alecrim<\/option>\n                                    <option value=\"PR6.3\">PR6.3 - Vereda da Lagoa do Vento<\/option>\n                                    <option value=\"PR6.4\">PR6.4 - Levada Velha do Raba\u00e7al<\/option>\n                                    <option value=\"PR6.5\">PR6.5 - Vereda do Pico Fernandes<\/option>\n                                    <option value=\"PR6.6\">PR6.6 - Vereda do T\u00fanel do Cavalo<\/option>\n                                    <option value=\"PR6.7\">PR6.7 - Vereda da C\u00e2mara de Carga do Raba\u00e7al<\/option>\n                                    <option value=\"PR6.8\">PR6.8 - Levada do Paul II \u2013 Um Caminho para todos<\/option>\n                                    <option value=\"PR7\">PR7 - Levada do Moinho<\/option>\n                                    <option value=\"PR8\">PR8 - Vereda da Ponta de S\u00e3o Louren\u00e7o<\/option>\n                                    <option value=\"PR9\">PR9 - Levada do Caldeir\u00e3o Verde<\/option>\n                                    <option value=\"PR9.1\">PR9.1 - Levada do Caldeir\u00e3o Verde - Um Caminho para todos<\/option>\n                                    <option value=\"PR10\">PR10 - Levada do Furado<\/option>\n                                    <option value=\"PR11\">PR11 - Vereda dos Balc\u00f5es<\/option>\n                                    <option value=\"PR12\">PR12 - Caminho Real da Encumeada<\/option>\n                                    <option value=\"PR13\">PR13 - Vereda do Fanal<\/option>\n                                    <option value=\"PR13.1\">PR13.1 - Vereda da Palha Carga<\/option>\n                                    <option value=\"PR14\">PR14 - Levada dos Cedros<\/option>\n                                    <option value=\"PR15\">PR15 - Vereda da Ribeira da Janela<\/option>\n                                    <option value=\"PR16\">PR16 - Levada Faj\u00e3 do Rodrigues<\/option>\n                                    <option value=\"PR17\">PR17 - Caminho do Pin\u00e1culo e Folhadal<\/option>\n                                    <option value=\"PR18\">PR18 - Levada do Rei<\/option>\n                                    <option value=\"PR19\">PR19 - Caminho Real do Paul do Mar<\/option>\n                                    <option value=\"PR20\">PR20 - Vereda do Jardim do Mar<\/option>\n                                    <option value=\"PR21\">PR21 - Caminho do Norte<\/option>\n                                    <option value=\"PR22\">PR22 - Vereda do Ch\u00e3o dos Louros<\/option>\n                                    <option value=\"PR23\">PR23 - Levada da Azenha<\/option>\n                                    <option value=\"PR27\">PR27 - Glaciar de Planalto<\/option>\n                                    <option value=\"PR28\">PR28 - Levada da Rocha Vermelha<\/option>\n                                    <option value=\"General\">General - Madeira Island (Not on a specific PR trail)<\/option>\n                            <\/optgroup>\n                        <optgroup label=\"Porto Santo\">\n                                    <option value=\"PS_PR1\">PR (PS) 1 - Vereda do Pico Branco e Terra Ch\u00e3<\/option>\n                                    <option value=\"PS_PR2\">PR (PS) 2 - Vereda do Pico do Castelo<\/option>\n                                    <option value=\"PS_PR3\">PR (PS) 3 - Levada do Pico Castelo<\/option>\n                                    <option value=\"PS_OTHER\">Porto Santo - Other (Not on a specific PR trail)<\/option>\n                            <\/optgroup>\n                    <\/select>\n\n        <label for=\"issue_type\">* Issue Type:<\/label>\n        <select name=\"issue_type\" id=\"issue_type\" required>\n            <option value=\"\">-- Select an issue --<\/option>\n \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0<option value=\"Maintenance\">Maintenance<\/option>\n            <option value=\"Weather\">Weather<\/option>\n \u00a0 \u00a0 \u00a0 \u00a0 \u00a0  <option value=\"Tree Blockage\">Tree Blockage<\/option>\n            <option value=\"Rock Slide\">Rock Slide<\/option>\n            <option value=\"Mud\">Mud<\/option>\n            <option value=\"Closed\">Closed<\/option>\n            <option value=\"Animals\">Animals<\/option>\n            <option value=\"Other\">Other<\/option>\n        <\/select>\n\n        <label for=\"notes\">Notes (max 500 characters):<\/label>\n        <textarea name=\"notes\" id=\"notes\" maxlength=\"500\"><\/textarea>\n\n        <label for=\"image\">Image (max 5MB):<\/label>\n        <input type=\"file\" name=\"image\" id=\"image\" accept=\"image\/*\">\n\n        <label for=\"user_name\">* Your Name:<\/label>\n        <input type=\"text\" name=\"user_name\" id=\"user_name\" required>\n\n       \n        \n        <input type=\"text\" name=\"_trail_hp_check\" id=\"_trail_hp_check\" value=\"\" \n    style=\"position: absolute; left: -9999px; top: auto; width: 1px; height: 1px; overflow: hidden;\" \n    tabindex=\"-1\" autocomplete=\"off\">\n<input type=\"hidden\" name=\"action\" value=\"submit_trail_issue\">\n        <input type=\"hidden\" id=\"trail_issue_nonce_field\" name=\"trail_issue_nonce_field\" value=\"a766293cb7\" \/><input type=\"hidden\" name=\"_wp_http_referer\" value=\"\/weather\/wp-json\/wp\/v2\/pages\/5116\" \/>\n        <button type=\"submit\">Submit Update<\/button>\n        <p id=\"trail-issue-message\"><\/p>\n    <\/form>\n\n    <script>\n    jQuery(document).ready(function($) {\n        \/\/ Toggle full trail name on click\n        $('.trail-issues').on('click', '.trail-cell', function() {\n            var $this = $(this);\n            var shortName = $this.text();\n            var fullName = $this.data('full');\n            \n            if ($this.data('display') === 'full') {\n                $this.text(shortName); \/\/ Already short, do nothing\n                $this.data('display', 'short');\n            } else {\n                $this.text(fullName);\n                $this.data('display', 'full');\n            }\n        });\n        \/\/ Toggle full notes on click\n        $('.trail-issues').on('click', '.show-more', function() {\n            var $this = $(this);\n            var $parent = $this.parent();\n            var fullText = $this.data('full');\n            var originalText = $parent.data('original');\n            \/\/ Store original text if not already stored (before first expansion)\n            if (!originalText) {\n                originalText = $parent.html();\n                $parent.data('original', originalText);\n            }\n            if ($this.text() === 'Show More') {\n                $parent.html(fullText + ' <span class=\"show-less\" style=\"color: #228B22; cursor: pointer; font-size: 0.9em; font-weight: bold; text-decoration: underline;\">Show Less<\/span>');\n            } else {\n                $parent.html(originalText);\n            }\n        });\n        \/\/ Handle show less from the new span\n        $('.trail-issues').on('click', '.show-less', function() {\n            var $this = $(this);\n            var $parent = $this.parent();\n            var originalText = $parent.data('original');\n            $parent.html(originalText);\n        });\n        $('#trail-issue-form').on('submit', function(e) {\n            e.preventDefault();\n            var formData = new FormData(this);\n            var $message = $('#trail-issue-message');\n            $message.removeClass().text('Submitting...');\n            var imageInput = this.querySelector('input[name=\"image\"]');\n            if (imageInput.files.length > 0) {\n                if (imageInput.files[0].size > 5242880) {\n                    $message.addClass('error').css('color','red').text('Error: Image exceeds 5MB limit.');\n                    return;\n                }\n            }\n            $.ajax({\n                url: 'https:\/\/paragliding-in-madeira.com\/weather\/wp-admin\/admin-ajax.php',\n                type: 'POST',\n                data: formData,\n                contentType: false,\n                processData: false,\n                success: function(response) {\n                    if (response.success) {\n                        $message.addClass('success').css('color','green').text(response.data);\n                        $('#trail-issue-form')[0].reset();\n                        \/\/ Optional: Reload or update the issues table to show the new submission\n                    } else {\n                        $message.addClass('error').css('color','red').text('Error: ' + (response.data || 'Unknown error.'));\n                    }\n                },\n                error: function(xhr, status, error) {\n                    $message.addClass('error').css('color','red').text('An unexpected error occurred: ' + status);\n                }\n            });\n        });\n    });\n    <\/script>\n    \n\n\n\n<div style=\"height:13px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<div class=\"trail-issues\"><h4 style=\"text-align: center;\">Current Trail Updates (Last 60 Days)<\/h4><table><thead><tr><th>Trail<\/th><th>Issue<\/th><th>Notes<\/th><th>Image<\/th><th>Submitted By<\/th><th>Date (Local Time)<\/th><\/tr><\/thead><tbody><tr><td class=\"trail-cell\" data-label=\"Trail\" data-full=\"PR1.1 - Vereda da Ilha\" data-display=\"short\">PR1.1<\/td><td data-label=\"Issue\">Other<\/td><td data-label=\"Notes\">Athletes from the Ultra Skyrunning Madeira USM 2026 event, will be passing by the pedestrian routes ... <span class=\"show-more\" data-full=\"Athletes from the Ultra Skyrunning Madeira USM 2026 event, will be passing by the pedestrian routes PR 1.1 Vereda da Ilha and PR 1.2 Vereda do Pico Ruivo on June 12, between 9am and 2pm, for the Santana KM Vertical (SVK) race.&lt;br \/&gt;\r\nTo take into consideration\">Show More<\/span><\/td><td data-label=\"Image\"><\/td><td data-label=\"Submitted By\">IFCN<\/td><td data-label=\"Date (Local Time)\">10 June 2026 00:46<\/td><\/tr><tr><td class=\"trail-cell\" data-label=\"Trail\" data-full=\"PR1 - Vereda do Areeiro\" data-display=\"short\">PR1<\/td><td data-label=\"Issue\">Other<\/td><td data-label=\"Notes\">PR1 - Vereda do Pico do Areeiro trail, will be fully open to the public from June 26th 2026<\/td><td data-label=\"Image\"><\/td><td data-label=\"Submitted By\">IFCN<\/td><td data-label=\"Date (Local Time)\">1 June 2026 16:38<\/td><\/tr><tr><td class=\"trail-cell\" data-label=\"Trail\" data-full=\"General - Madeira Island (Not on a specific PR trail)\" data-display=\"short\">General<\/td><td data-label=\"Issue\">Weather<\/td><td data-label=\"Notes\">Due to the weather conditions, all PR trails will be closed tomorrow 05\/05\/2026 for safety reasons.<br \/>\n... <span class=\"show-more\" data-full=\"Due to the weather conditions, all PR trails will be closed tomorrow 05\/05\/2026 for safety reasons.&lt;br \/&gt;\n&lt;br \/&gt;\nPlease follow IPMA (local weather institute) recommendations\">Show More<\/span><\/td><td data-label=\"Image\"><\/td><td data-label=\"Submitted By\">IFCN<\/td><td data-label=\"Date (Local Time)\">4 May 2026 16:24<\/td><\/tr><\/tbody><\/table><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Trails status | Hikers Feedback Madeira trails live info Powered by beautiful users from all around the world Send feedback on your hike and see live updates from other hikers too<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"slim_seo":{"title":"Madeira trails live info - Community Feedback","description":"Powered by beautiful users from all around the world. Send feedback on your hike and see live updates from other hikers too"},"footnotes":""},"class_list":["post-5116","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/paragliding-in-madeira.com\/weather\/wp-json\/wp\/v2\/pages\/5116","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/paragliding-in-madeira.com\/weather\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/paragliding-in-madeira.com\/weather\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/paragliding-in-madeira.com\/weather\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/paragliding-in-madeira.com\/weather\/wp-json\/wp\/v2\/comments?post=5116"}],"version-history":[{"count":19,"href":"https:\/\/paragliding-in-madeira.com\/weather\/wp-json\/wp\/v2\/pages\/5116\/revisions"}],"predecessor-version":[{"id":5383,"href":"https:\/\/paragliding-in-madeira.com\/weather\/wp-json\/wp\/v2\/pages\/5116\/revisions\/5383"}],"wp:attachment":[{"href":"https:\/\/paragliding-in-madeira.com\/weather\/wp-json\/wp\/v2\/media?parent=5116"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}