Template:POI: Difference between revisions

From ManyWays
No edit summary
No edit summary
Line 1: Line 1:
<noinclude>
<noinclude>
Master POI template.
Master POI template.
Stores semantic data and renders public POI page.
Stores schema data + renders public page.
 
Required:
- poi_schema_type
- poi_name_txt
- poi_slug_txt
- poi_description_txt
 
Optional:
- poi_byline_txt
- poi_images_arr
</noinclude>
</noinclude>


Line 20: Line 10:
{{#set:
{{#set:
  | POI schema type = {{{poi_schema_type|}}}
  | POI schema type = {{{poi_schema_type|}}}
| POI name = {{{poi_name_txt|}}}
| POI slug = {{{poi_slug_txt|}}}
| POI description = {{{poi_description_txt|}}}
| POI byline = {{{poi_byline_txt|}}}


  | POI latitude = {{{poi_latitude_num|}}}
  | POI ID = {{{poi_id_txt|}}}
  | POI longitude = {{{poi_longitude_num|}}}
  | POI Name = {{{poi_name_txt|}}}
  | POI region = {{{poi_region_txt|}}}
  | POI Slug = {{{poi_slug_txt|}}}
  | POI altitude (m) = {{{poi_altitude_m_num|}}}
  | POI Description = {{{poi_description_txt|}}}
| POI distance from start (m) = {{{poi_distance_from_start_m_num|}}}


  | POI images = {{{poi_images_arr|}}}
  | POI Latitude = {{{poi_latitude_num|}}}
  | POI tags = {{{poi_tags_arr|}}}
  | POI Longitude = {{{poi_longitude_num|}}}
  | POI route IDs = {{{poi_route_ids_arr|}}}
  | POI Region = {{{poi_region_txt|}}}
| POI Altitude (m) = {{{poi_altitude_m_num|}}}
| POI Distance from Start (m) = {{{poi_distance_from_start_m_num|}}}


<!-- Food place -->
  | POI Images = {{{poi_images_arr|}}}
| Food type = {{{poi_food_type_txt|}}}
  | POI Tags = {{{poi_tags_arr|}}}
| Opening hours = {{{poi_opening_hours_txt|}}}
  | POI Route IDs = {{{poi_route_ids_arr|}}}
| Serves breakfast = {{{poi_serves_breakfast_bool|}}}
| Serves lunch = {{{poi_serves_lunch_bool|}}}
| Serves dinner = {{{poi_serves_dinner_bool|}}}
| Serves alcohol = {{{poi_serves_alcohol_bool|}}}
  | Pilgrim menu available = {{{poi_pilgrim_menu_available_bool|}}}
  | Price range = {{{poi_price_range_txt|}}}
  | Dietary options = {{{poi_dietary_options_arr|}}}


  <!-- Accommodation -->
  <!-- All other schema fields stored raw (no rendering) -->
| Accommodation type = {{{poi_accommodation_type_txt|}}}
| Beds total = {{{poi_beds_total_num|}}}
| Private rooms = {{{poi_private_rooms_num|}}}
| Shared rooms = {{{poi_shared_rooms_num|}}}
| Price min = {{{poi_price_min_num|}}}
| Price max = {{{poi_price_max_num|}}}
| Currency = {{{poi_currency_txt|}}}


<!-- Town -->
  | POI Population = {{{poi_population_num|}}}
  | Population = {{{poi_population_num|}}}
  | POI Has Albergue = {{{poi_has_albergue_bool|}}}
  | Has albergue = {{{poi_has_albergue_bool|}}}
  | POI Has Pharmacy = {{{poi_has_pharmacy_bool|}}}
  | Has pharmacy = {{{poi_has_pharmacy_bool|}}}
  | POI Has Supermarket = {{{poi_has_supermarket_bool|}}}
  | Has supermarket = {{{poi_has_supermarket_bool|}}}
  | POI Has Medical = {{{poi_has_medical_bool|}}}
  | Has medical = {{{poi_has_medical_bool|}}}
| POI Quiet Level = {{{poi_quiet_level_num|}}}
| POI Services Available = {{{poi_services_available_arr|}}}


  <!-- Transport -->
  | POI From Town = {{{poi_from_town_txt|}}}
  | Transport type = {{{poi_transport_type_txt|}}}
| POI To Town = {{{poi_to_town_txt|}}}
| POI Distance (km) = {{{poi_distance_km_num|}}}
| POI Elevation Gain (m) = {{{poi_elevation_gain_m_num|}}}
| POI Elevation Loss (m) = {{{poi_elevation_loss_m_num|}}}
| POI Difficulty = {{{poi_difficulty_txt|}}}
| POI Surface Type = {{{poi_surface_type_txt|}}}
| POI Waypoints = {{{poi_waypoints_arr|}}}
| POI Water Available = {{{poi_water_available_bool|}}}
| POI Shade Level = {{{poi_shade_level_num|}}}
  | POI Notes = {{{poi_notes_txt|}}}


  <!-- Medical -->
  | POI Accommodation Type = {{{poi_accommodation_type_txt|}}}
  | Medical type = {{{poi_medical_type_txt|}}}
| POI Price Min = {{{poi_price_min_num|}}}
| POI Price Max = {{{poi_price_max_num|}}}
| POI Currency = {{{poi_currency_txt|}}}
| POI Beds Total = {{{poi_beds_total_num|}}}
| POI Private Rooms = {{{poi_private_rooms_num|}}}
| POI Shared Rooms = {{{poi_shared_rooms_num|}}}
| POI Opening Months = {{{poi_opening_months_arr|}}}
| POI Check-in Time = {{{poi_check_in_time_txt|}}}
| POI Check-out Time = {{{poi_check_out_time_txt|}}}
| POI Booking Required = {{{poi_booking_required_bool|}}}
| POI Contact Phone = {{{poi_contact_phone_txt|}}}
| POI Website = {{{poi_website_txt|}}}
| POI Pet Friendly = {{{poi_pet_friendly_bool|}}}
  | POI WiFi Available = {{{poi_wifi_available_bool|}}}


  <!-- Service -->
  | POI Transport Type = {{{poi_transport_type_txt|}}}
  | Service type = {{{poi_service_type_txt|}}}
| POI Bus Lines = {{{poi_bus_lines_arr|}}}
| POI Train Lines = {{{poi_train_lines_arr|}}}
| POI Taxi Available = {{{poi_taxi_available_bool|}}}
  | POI Bike Transport = {{{poi_bike_transport_bool|}}}


  <!-- Shop -->
  | POI Medical Type = {{{poi_medical_type_txt|}}}
  | Shop type = {{{poi_shop_type_txt|}}}
| POI Emergency Available = {{{poi_emergency_available_bool|}}}
  | POI Languages Spoken = {{{poi_languages_spoken_arr|}}}


  <!-- Historical -->
  | POI Service Type = {{{poi_service_type_txt|}}}
  | Period = {{{poi_period_txt|}}}
  | POI Opening Hours = {{{poi_opening_hours_txt|}}}
  | Year built = {{{poi_year_built_num|}}}
  | POI Seasonal = {{{poi_seasonal_bool|}}}


  <!-- Religious -->
  | POI Food Type = {{{poi_food_type_txt|}}}
  | Religion = {{{poi_religion_txt|}}}
| POI Serves Breakfast = {{{poi_serves_breakfast_bool|}}}
  | Site type = {{{poi_site_type_txt|}}}
| POI Serves Lunch = {{{poi_serves_lunch_bool|}}}
| POI Serves Dinner = {{{poi_serves_dinner_bool|}}}
| POI Serves Alcohol = {{{poi_serves_alcohol_bool|}}}
| POI Pilgrim Menu Available = {{{poi_pilgrim_menu_available_bool|}}}
  | POI Price Range = {{{poi_price_range_txt|}}}
  | POI Dietary Options = {{{poi_dietary_options_arr|}}}


<!-- Cultural -->
  | POI Shop Type = {{{poi_shop_type_txt|}}}
  | Culture type = {{{poi_culture_type_txt|}}}


  <!-- Museum -->
  | POI Period = {{{poi_period_txt|}}}
  | Museum type = {{{poi_museum_type_txt|}}}
| POI Year Built = {{{poi_year_built_num|}}}
| POI Year Abandoned = {{{poi_year_abandoned_num|}}}
| POI Historical Theme = {{{poi_historical_theme_txt|}}}
| POI UNESCO Status = {{{poi_unesco_status_bool|}}}
  | POI Entry Required = {{{poi_entry_required_bool|}}}


  <!-- Natural -->
  | POI Religion = {{{poi_religion_txt|}}}
  | Nature type = {{{poi_nature_type_txt|}}}
| POI Site Type = {{{poi_site_type_txt|}}}
| POI Mass Times = {{{poi_mass_times_txt|}}}
| POI Confession Available = {{{poi_confession_available_bool|}}}
| POI Relics Present = {{{poi_relics_present_bool|}}}
  | POI Quiet Hours = {{{poi_quiet_hours_txt|}}}


  <!-- Agricultural -->
  | POI Culture Type = {{{poi_culture_type_txt|}}}
  | Farm type = {{{poi_farm_type_txt|}}}
  | POI Events = {{{poi_events_arr|}}}


  <!-- Workspace -->
  | POI Museum Type = {{{poi_museum_type_txt|}}}
  | Workspace type = {{{poi_workspace_type_txt|}}}
| POI Entry Price = {{{poi_entry_price_num|}}}
  | POI Free Days = {{{poi_free_days_arr|}}}


| POI Nature Type = {{{poi_nature_type_txt|}}}
| POI Protected Area = {{{poi_protected_area_bool|}}}
| POI Access Difficulty = {{{poi_access_difficulty_txt|}}}
| POI Best Season = {{{poi_best_season_txt|}}}
| POI Farm Type = {{{poi_farm_type_txt|}}}
| POI Visits Allowed = {{{poi_visits_allowed_bool|}}}
| POI Products = {{{poi_products_arr|}}}
| POI Workspace Type = {{{poi_workspace_type_txt|}}}
| POI WiFi Speed = {{{poi_wifi_speed_num|}}}
| POI Power Available = {{{poi_power_available_bool|}}}
| POI Day Pass Available = {{{poi_day_pass_available_bool|}}}
| POI Price = {{{poi_price_num|}}}
}}
}}


<!-- ===================== -->
<!-- ===================== -->
<!-- HERO BLOCK (PUBLIC)  -->
<!-- HERO SECTION -->
<!-- ===================== -->
<!-- ===================== -->


<div class="poi-hero">
<div class="poi-hero">


<div class="poi-hero-left">
<div class="poi-hero-image">
{{#if: {{{poi_images_arr|}}} |
[[File:{{#explode:{{{poi_images_arr}}}|,|0}}|400px]]
}}
</div>


<div class="poi-hero-text">
<h1>{{{poi_name_txt}}}</h1>
<h1>{{{poi_name_txt}}}</h1>
{{#if: {{{poi_byline_txt|}}} |
<div class="poi-byline">
{{{poi_byline_txt}}}
</div>
}}
<div class="poi-description">
<div class="poi-description">
{{{poi_description_txt}}}
{{{poi_description_txt}}}
</div>
</div>
</div>
<div class="poi-hero-right">
{{#if: {{{poi_images_arr|}}} |
[[File:{{#explode:{{{poi_images_arr}}}|,|0}}|350px]]
}}
</div>
</div>


Line 134: Line 150:


<!-- ===================== -->
<!-- ===================== -->
<!-- TYPE SPECIFIC VIEW  -->
<!-- TYPE SPECIFIC RENDER -->
<!-- ===================== -->
<!-- ===================== -->


{{#switch: {{{poi_schema_type}}}
{{#switch: {{{poi_schema_type}}}


  | food_place =
  | food_place = {{POI_View_FoodPlace}}
  {{POI_View_FoodPlace
  | accommodation = {{POI_View_Accommodation}}
    | opening_hours = {{{poi_opening_hours_txt|}}}
  | town = {{POI_View_Town}}
    | price_range = {{{poi_price_range_txt|}}}
  | transport_stop = {{POI_View_Transport}}
    | serves_alcohol = {{{poi_serves_alcohol_bool|}}}
  | medical_place = {{POI_View_Medical}}
    | pilgrim_menu = {{{poi_pilgrim_menu_available_bool|}}}
  | service_point = {{POI_View_Service}}
  }}
  | shop = {{POI_View_Shop}}
 
  | historical_site = {{POI_View_Historical}}
  | accommodation =
  | religious_site = {{POI_View_Religious}}
  {{POI_View_Accommodation
  | cultural_site = {{POI_View_Cultural}}
    | beds_total = {{{poi_beds_total_num|}}}
  | museum = {{POI_View_Museum}}
    | private_rooms = {{{poi_private_rooms_num|}}}
  | natural_site = {{POI_View_Natural}}
    | shared_rooms = {{{poi_shared_rooms_num|}}}
  | agricultural_site = {{POI_View_Agricultural}}
    | price_min = {{{poi_price_min_num|}}}
  | workspace = {{POI_View_Workspace}}
    | price_max = {{{poi_price_max_num|}}}
| animal_service = {{POI_View_AnimalService}}
  }}
  | special_interest = {{POI_View_SpecialInterest}}
 
  | town =
  {{POI_View_Town
    | population = {{{poi_population_num|}}}
    | has_pharmacy = {{{poi_has_pharmacy_bool|}}}
    | has_supermarket = {{{poi_has_supermarket_bool|}}}
    | has_medical = {{{poi_has_medical_bool|}}}
  }}
 
  | transport_stop =
  {{POI_View_Transport
    | transport_type = {{{poi_transport_type_txt|}}}
  }}
 
  | medical_place =
  {{POI_View_Medical
    | medical_type = {{{poi_medical_type_txt|}}}
  }}
 
  | service_point =
  {{POI_View_Service
    | service_type = {{{poi_service_type_txt|}}}
  }}
 
  | shop =
  {{POI_View_Shop
    | shop_type = {{{poi_shop_type_txt|}}}
  }}
 
  | historical_site =
  {{POI_View_Historical
    | period = {{{poi_period_txt|}}}
    | year_built = {{{poi_year_built_num|}}}
  }}
 
  | religious_site =
  {{POI_View_Religious
    | religion = {{{poi_religion_txt|}}}
    | site_type = {{{poi_site_type_txt|}}}
  }}
 
  | cultural_site =
  {{POI_View_Cultural
    | culture_type = {{{poi_culture_type_txt|}}}
  }}
 
  | museum =
  {{POI_View_Museum
    | museum_type = {{{poi_museum_type_txt|}}}
  }}
 
  | natural_site =
  {{POI_View_Natural
    | nature_type = {{{poi_nature_type_txt|}}}
  }}
 
  | agricultural_site =
  {{POI_View_Agricultural
    | farm_type = {{{poi_farm_type_txt|}}}
  }}
 
  | workspace =
  {{POI_View_Workspace
    | workspace_type = {{{poi_workspace_type_txt|}}}
  }}
 
  | #default =
  <div class="poi-warning">
  Unknown POI schema type.
  </div>


| #default = <div class="poi-warning">Unknown POI schema type</div>
}}
}}
<!-- ===================== -->
<!-- CATEGORY            -->
<!-- ===================== -->


[[Category:POI]]
[[Category:POI]]

Revision as of 16:58, 13 January 2026

Master POI template. Stores schema data + renders public page.




{{{poi_name_txt}}}

{{{poi_description_txt}}}



Unknown POI schema type