{"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=\"5eb9e2ad41\" \/><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=\"General - Madeira Island (Not on a specific PR trail)\" data-display=\"short\">General<\/td><td data-label=\"Issue\">Other<\/td><td data-label=\"Notes\">Due to the Santana Rally, access roads to some hiking trails will be closed on April 11, 2026.<br \/>\n<br \/>\nFor ... <span class=\"show-more\" data-full=\"Due to the Santana Rally, access roads to some hiking trails will be closed on April 11, 2026.&lt;br \/&gt;\n&lt;br \/&gt;\nFor the Island Classification Special Stage, roads providing access to the hiking trails:&lt;br \/&gt;\r\nPR 1.2 - Vereda do Pico Ruivo, &lt;br \/&gt;\r\nPR 9 - Levada do Caldeir\u00e3o Verde and PR 9.1 - Levada do Caldeir\u00e3o Verde - Um caminho para todos (Pico das Pedras-Queimadas) will be closed on April 11 between 8:51 and 12:15.&lt;br \/&gt;\n&lt;br \/&gt;\nFor S\u00e3o Jorge Special Stage, roads leading to PR 18 - Levada do Rei will be closed between 13:50 \">Show More<\/span><\/td><td data-label=\"Image\"><\/td><td data-label=\"Submitted By\">IFCN<\/td><td data-label=\"Date (Local Time)\">7 April 2026 17:07<\/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 weather conditions all PR trails will be closed today 20\/03\/2026 for safety reasons.<br \/>\n<br \/>\nPlease ... <span class=\"show-more\" data-full=\"Due to weather conditions all PR trails will be closed today 20\/03\/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)\">20 March 2026 12:09<\/td><\/tr><tr><td class=\"trail-cell\" data-label=\"Trail\" data-full=\"PR5 - Vereda das Funduras\" data-display=\"short\">PR5<\/td><td data-label=\"Issue\">Rock Slide<\/td><td data-label=\"Notes\">Temporarily closed for safety reasons<\/td><td data-label=\"Image\"><\/td><td data-label=\"Submitted By\">IFCN<\/td><td data-label=\"Date (Local Time)\">16 March 2026 15:49<\/td><\/tr><tr><td class=\"trail-cell\" data-label=\"Trail\" data-full=\"PR18 - Levada do Rei\" data-display=\"short\">PR18<\/td><td data-label=\"Issue\">Rock Slide<\/td><td data-label=\"Notes\">Temporarily closed for safety reasons<\/td><td data-label=\"Image\"><\/td><td data-label=\"Submitted By\">IFCN<\/td><td data-label=\"Date (Local Time)\">13 March 2026 20:06<\/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}]}}