Actions

Template

ResourcePage: Difference between revisions

From Dune Awakening DB

mNo edit summary
mNo edit summary
 
(8 intermediate revisions by the same user not shown)
Line 1: Line 1:
<div class="dune-breadcrumb-nav">
<templatestyles src="Template:ResourcePage/styles.css" />{{#get_external_data:source=externaldb|from=data_items|data=ItemID=item_id,InternalName=internal_name,ItemClass=item_class,ItemSubclass=item_subclass,Tier=tier,Rarity=rarity,Faction=faction,Name=name,Description=description,HowToObtain=how_to_obtain,Notes=notes,AdditionalNotes=additional_notes,Weight=weight,MaxStacks=max_stacks,XPPerHarvest=xp_per_harvest,BaseVendorPrice=base_vendor_price,GuideLink=guide_link,IconLink=icon_link,ImageLink=image_link,Category1=category_1,Category2=category_2,Category3=category_3|cache=yes|where=name='{{PAGENAME}}'|limit=1
<templatestyles src="Template:ResourcePage/styles.css" />
}}
{{#for_external_table:|{{#vardefine:ItemID|{{{ItemID}}}}}{{#vardefine:InternalName|{{{InternalName}}}}}{{#vardefine:ItemClass|{{{ItemClass}}}}}{{#vardefine:ItemSubclass|{{{ItemSubclass}}}}}{{#vardefine:Tier|{{{Tier}}}}}{{#vardefine:Rarity|{{{Rarity}}}}}{{#vardefine:Faction|{{{Faction}}}}}{{#vardefine:Name|{{{Name}}}}}{{#vardefine:Description|{{{Description}}}}}{{#vardefine:HowToObtain|{{{HowToObtain}}}}}{{#vardefine:Notes|{{{Notes}}}}}{{#vardefine:AdditionalNotes|{{{AdditionalNotes}}}}}{{#vardefine:Weight|{{{Weight}}}}}{{#vardefine:MaxStacks|{{{MaxStacks}}}}}{{#vardefine:XPPerHarvest|{{{XPPerHarvest}}}}}{{#vardefine:BaseVendorPrice|{{{BaseVendorPrice}}}}}{{#vardefine:GuideLink|{{{GuideLink}}}}}{{#vardefine:IconLink|{{{IconLink}}}}}{{#vardefine:ImageLink|{{{ImageLink}}}}}{{#vardefine:Category1|{{{Category1}}}}}{{#vardefine:Category2|{{{Category2}}}}}{{#vardefine:Category3|{{{Category3}}}}}
  }}
<div class="responsive-container">
<div class="responsive-col col1">
<div class="skin-pivot">
<div class="dune-card">
<div class="dune-card-decoration"></div>
<div class="dune-card-inner">
<div class="dune-card-label">{{#var:ItemClass}} - {{#var:ItemSubclass}}</div>
<div class="dune-card-title"><span class="icon">◆</span> Resource Information</div>
<div style="padding:3px;"></div>
<div class="dune-card-image" style="text-align:center;"><div class="has-border">{{#if:{{#var:ImageLink}}|[[File:{{#var:ImageLink}}|200px|alt={{#var:Name}}]]|[[File:Placeholder.png|200px|alt=No image available]]}}</div></div>
<div style="padding:3px;"></div>
<div class="dune-card-description">{{#invoke:DataTableParserV2|iconize|{{#var:Description}}}}</div>
<div class="dune-table-wrapper">
<table class="infobox-dune-two-column">
<tr><th><span class="icon">{{#if:{{#var:IconLink}}|[[File:{{#var:IconLink}}|16px]]|}}</span> Tier</th><td>{{#var:Tier}}</td></tr>
<tr><th><span class="icon">✦</span> Rarity</th><td>{{#var:Rarity}}</td></tr>
<tr><th><span class="icon">🏛</span> Faction</th><td>{{#var:Faction}}</td></tr>
<tr><th><span class="icon">⚖</span> Weight</th><td>{{#var:Weight}} kg</td></tr>
<tr><th><span class="icon">📦</span> Max Stacks</th><td>{{#var:MaxStacks}}</td></tr>
<tr><th><span class="icon">💰</span> Base Vendor Price</th><td>{{#var:BaseVendorPrice}} Solaris</td></tr>
<tr><th><span class="icon">⭐</span> XP per Harvest</th><td>{{#var:XPPerHarvest}}</td></tr>
</table>
</div>
{{#get_external_data:
source=externaldb
|from=data_item_locations
|data=LocationName=location_name,Note=note
|cache=yes
|where=internal_name='{{PAGENAME}}'
}}
{{#if:{{{LocationName|}}}|<div style="clear:both; padding:10px;"></div><div class="dune-card-title"><span class="icon">🗺</span> Harvest Locations</div><div style="padding:3px;"></div><div class="dune-card-description"><ul class="location-list">{{#for_external_table:|<li>'''{{{LocationName}}}'''{{#if:{{{Note|}}}|: {{{Note}}}}}</li>}}</ul></div>}}
</div>
</div>
</div>
</div>
<div class="responsive-col col2">
<div class="skin-pivot">
<div class="dune-card">
<div class="dune-card-decoration"></div>
<div class="dune-card-inner">
<div class="dune-card-label">CRAFTING</div>
<div class="dune-card-title"><span class="icon">⚒</span> Crafting Recipes</div>
<div style="padding:3px;"></div>
<div class="crafting-section">
<h3 class="dune-section-header">Crafted With</h3>
<div class="dune-card-description">Items that require {{#var:Name}} as an ingredient</div>
<div id="craftedWithPreview" class="recipe-table-preview">
{{#get_external_data:
{{#get_external_data:
  source=externaldb
source=externaldb
  |from=data_items
|from=vw_recipe_by_ingredient
  |data=ItemID=item_id,InternalName=internal_name,ResourceClass=resource_class,ResourceSubclass=resource_subclass,Tier=tier,Rarity=rarity,Faction=faction,Name=name,Description=description,HowToObtain=how_to_obtain,Notes=notes,AdditionalNotes=additional_notes,Weight=weight,MaxStacks=max_stacks,XPPerHarvest=xp_per_harvest,BaseVendorPrice=base_vendor_price,LocationsToHarvest=locations_to_harvest,GuideLink=guide_link,IconLink=icon_link,ImageLink=image_link,Category1=category_1,Category2=category_2,Category3=category_3
|data=OutputItem=output_item,Resources=resources,Stations=stations
  |cache=yes
|cache=yes
  |where=name='{{PAGENAME}}'
|where=ingredient='{{PAGENAME}}'
  |limit=1
|order by=Stations
|limit=5
|table=crafted_with_preview
}}
}}
{{#for_external_table:|{{#vardefine:ItemID|{{{ItemID}}}}}{{#vardefine:InternalName|{{{InternalName}}}}}{{#vardefine:ResourceClass|{{{ResourceClass}}}}}{{#vardefine:ResourceSubclass|{{{ResourceSubclass}}}}}{{#vardefine:Tier|{{{Tier}}}}}{{#vardefine:Rarity|{{{Rarity}}}}}{{#vardefine:Faction|{{{Faction}}}}}{{#vardefine:Name|{{{Name}}}}}{{#vardefine:Description|{{{Description}}}}}{{#vardefine:HowToObtain|{{{HowToObtain}}}}}{{#vardefine:Notes|{{{Notes}}}}}{{#vardefine:AdditionalNotes|{{{AdditionalNotes}}}}}{{#vardefine:Weight|{{{Weight}}}}}{{#vardefine:MaxStacks|{{{MaxStacks}}}}}{{#vardefine:XPPerHarvest|{{{XPPerHarvest}}}}}{{#vardefine:BaseVendorPrice|{{{BaseVendorPrice}}}}}{{#vardefine:LocationsToHarvest|{{{LocationsToHarvest}}}}}{{#vardefine:GuideLink|{{{GuideLink}}}}}{{#vardefine:IconLink|{{{IconLink}}}}}{{#vardefine:ImageLink|{{{ImageLink}}}}}{{#vardefine:Category1|{{{Category1}}}}}{{#vardefine:Category2|{{{Category2}}}}}{{#vardefine:Category3|{{{Category3}}}}} }}
<!-- For Crafted With section, after the table -->
<!-- Breadcrumb navigation -->
<div class="crafted-with-full-data" style="display:none;">
{{#if:{{{AdditionalNotes|}}}
{{#get_external_data:
| {{#vardefine:AdditionalNotes|{{{AdditionalNotes}}}}}
source=externaldb
| <!-- fallback already set inside external data loop -->
|from=vw_recipe_by_ingredient
|data=OutputItem=output_item,Resources=resources,Stations=stations,WaterML=water_ml,CraftTime=craft_time,Schematic=schematic
|format=json
|cache=yes
|where=ingredient='{{PAGENAME}}'
|order by=Stations
}}
}}
<span id="menuRadialTrigger" class="menu-button-wrapper" style="cursor:pointer;">[[File:MenuButton.png|100px|link=|alt=Menu]]</span><span class="dune-breadcrumb-separator">/</span>[[{{#var:Category1}}|{{#var:Category1}}]]<span class="dune-breadcrumb-separator">/</span>[[{{#var:Category2}}|{{#var:Category2}}]]<span class="dune-breadcrumb-separator">/</span>[[{{#var:Category3}}|{{#var:Category3}}]]<span class="dune-breadcrumb-separator">/</span><span>{{PAGENAME}}</span>
</div>
</div>
 
<div class="dune-table-wrapper">
<div class="responsive-container">
<table class="infobox-dune-standard-table recipe-table" id="craftedWithTable">
  <!-- Left Column: Resource Information -->
<tr class="tr-dark"><th style="width:35%;">Item Created</th><th style="width:40%;">Resources Needed</th><th style="width:25%;">Stations</th></tr>
  <div class="responsive-col col1">
{{#for_external_table:|<tr class="recipe-row"><td>{{#invoke:DataTableParserV2|iconize|{{{OutputItem}}}}}</td><td>{{#invoke:DataTableParserV2|formatRecipeList|{{{Resources}}}}}</td><td>{{{Stations}}}</td></tr>}}
</table>
</div>
</div>
<div class="recipe-actions"><span class="dune-action-button view-all-crafted-with" data-resource="{{PAGENAME}}">View All Recipes</span></div>
</div>
<div style="clear:both; padding:10px;"></div>
<div class="crafting-section">
<h3 class="dune-section-header">Crafted From</h3>
<div class="dune-card-description">Recipes that produce {{#var:Name}}</div>
<div id="craftedFromPreview" class="recipe-table-preview">
{{#get_external_data:
source=externaldb
|from=vw_recipe_summary
|data=OutputItem=output_item,Resources=resources,Stations=station,WaterML=water_ml,CraftTime=craft_time,Schematic=schematic
|cache=yes
|where=output_item='{{PAGENAME}}'
|order by=station
|limit=5
}}
<!-- For Crafted From section, after the table -->
<div class="crafted-from-full-data" style="display:none;">
{{#get_external_data:
source=externaldb
|from=vw_recipe_summary
|data=OutputItem=output_item,Resources=resources,Stations=station,WaterML=water_ml,CraftTime=craft_time,Schematic=schematic
|format=json
|cache=yes
|where=output_item='{{PAGENAME}}'
|order by=station
|table=crafted_from_preview
}}
</div>
<div class="dune-table-wrapper">
<table class="infobox-dune-standard-table recipe-table" id="craftedFromTable">
<tr class="tr-dark"><th style="width:35%;">Item Created</th><th style="width:40%;">Resources Needed</th><th style="width:25%;">Stations</th></tr>
{{#for_external_table:|<tr class="recipe-row"><td>{{#invoke:DataTableParserV2|iconize|{{{OutputItem}}}}}</td><td>{{#invoke:DataTableParserV2|formatRecipeList|{{{Resources}}}}}</td><td>{{{Stations}}}</td></tr>}}
</table>
</div>
</div>
<div class="recipe-actions"><span class="dune-action-button view-all-crafted-from" data-resource="{{PAGENAME}}">View All Recipes</span></div>
</div>
</div>
</div>
</div>
</div>
<div class="responsive-col col3">
    <!-- Building Guide Video Card with Notes integrated -->
     <div class="skin-pivot">
     <div class="skin-pivot">
       <div class="dune-card">
       <div class="dune-card">
         <div class="dune-card-decoration"></div>
         <div class="dune-card-decoration"></div>
         <div class="dune-card-inner">
         <div class="dune-card-inner">
           <div class="dune-card-label">{{#var:ResourceClass}} - {{#var:ResourceSubclass}}</div>
           <div class="dune-card-label">VIDEO TUTORIALS</div>
          <div class="dune-card-title"><span class="icon">◆</span> Resource Information</div>
           <div class="dune-card-title"><span class="icon"></span> Building Guide</div>
          <div style="padding:3px;"></div>
          <!-- Image Section -->
          <div class="dune-card-image" style="text-align: center;">
            <div class="has-border">{{#if:{{#var:ImageLink}}| [[File:{{#var:ImageLink}}|200px|alt={{#var:Name}}]] | [[File:Placeholder.png|200px|alt=No image available]]}}
            </div>
          </div>
          <div style="padding:3px;"></div>
          <!-- Description -->
          <div class="dune-card-description">{{#invoke:DataTableParserV2|iconize|{{#var:Description}}}}</div>
          <!-- How to Obtain -->
          {{#if:{{#var:HowToObtain}}|
          <div class="dune-card-locked">
            <div class="dune-card-locked-label"><span class="dune-card-locked-icon">📍</span>How to Obtain</div>
            <div class="dune-card-locked-value">{{#var:HowToObtain}}</div>
          </div>
          |}}
          <!-- Resource Stats Table -->
          <div class="dune-table-wrapper">
            <table class="infobox-dune-two-column">
              <tr><th><span class="icon">{{#if:{{#var:IconLink}}|[[File:{{#var:IconLink}}|16px]]|}}</span> Tier</th><td>{{#var:Tier}}</td></tr>
              <tr><th><span class="icon">✦</span> Rarity</th><td>{{#var:Rarity}}</td></tr>
              <tr><th><span class="icon">🏛</span> Faction</th><td>{{#var:Faction}}</td></tr>
              <tr><th><span class="icon">⚖</span> Weight</th><td>{{#var:Weight}} kg</td></tr>
              <tr><th><span class="icon">📦</span> Max Stacks</th><td>{{#var:MaxStacks}}</td></tr>
              <tr><th><span class="icon">💰</span> Base Vendor Price</th><td>{{#var:BaseVendorPrice}} Solaris</td></tr>
              <tr><th><span class="icon">⭐</span> XP per Harvest</th><td>{{#var:XPPerHarvest}}</td></tr>
            </table>
          </div>
        </div>
      </div>
    </div>
  </div>
 
  <!-- Middle Column: Crafting Recipes -->
  <div class="responsive-col col2">
    <div class="skin-pivot">
      <div class="dune-card">
        <div class="dune-card-decoration"></div>
        <div class="dune-card-inner">
          <div class="dune-card-label">CRAFTING</div>
           <div class="dune-card-title"><span class="icon"></span> Crafting Recipes</div>
           <div style="padding:3px;"></div>
           <div style="padding:3px;"></div>
          <!-- Crafted With Section -->
           <div class="dune-card-video">
           <div class="crafting-section">
             {{#if:{{{YoutubeEmbed|}}}|  
            <h3 class="dune-section-header">Crafted With This Resource</h3>
              {{{YoutubeEmbed}}}
            <div class="dune-card-description">Items that require {{#var:Name}} as an ingredient</div>
             |
             <!-- Quick Search -->
               <youtube id="r8lxVDqoHLQ" />
            <div class="recipe-search-container">
             }}
              <input type="text" id="craftedWithSearch" class="recipe-search-input" placeholder="Search recipes...">
            </div>
            <!-- Crafted With Table Preview -->
            <div id="craftedWithPreview" class="recipe-table-preview">
              {{#get_external_data:
                source=externaldb
                |from=vw_recipe_by_ingredient
                |data=OutputItem=output_item,Resources=resources,Stations=stations
                |cache=yes
                |where=ingredient='{{PAGENAME}}'
                |order by=Stations
                |limit=5
              }}
              <div class="dune-table-wrapper">
                <table class="infobox-dune-standard-table recipe-table" id="craftedWithTable">
                  <thead>
                    <tr class="tr-dark">
                      <th style="width:35%;">Item Created</th>
                      <th style="width:40%;">Resources Needed</th>
                      <th style="width:25%;">Stations</th>
                    </tr>
                  </thead>
                  <tbody>
                    {{#for_external_table:|
                      <tr class="recipe-row">
                        <td>{{#invoke:DataTableParserV2|iconize|{{{OutputItem}}}}}</td>
                        <td>{{#invoke:DataTableParserV2|formatRecipeList|{{{Resources}}}}}</td>
                        <td>{{{Stations}}}</td>
                      </tr>
                    }}
                  </tbody>
                </table>
              </div>
             </div>
            <!-- View All Button -->
            <div class="recipe-actions">
               <button class="dune-action-button view-all-crafted-with" data-resource="{{PAGENAME}}">
                <span class="icon">📋</span> View All Recipes
              </button>
             </div>
           </div>
           </div>
           <div style="clear:both; padding:10px;"></div>
           <div style="clear:both; padding:10px;"></div>
          <!-- Crafted From Section -->
          <div class="crafting-section">
            <h3 class="dune-section-header">Crafted From</h3>
            <div class="dune-card-description">Recipes that produce {{#var:Name}}</div>
            <!-- Quick Search -->
            <div class="recipe-search-container">
              <input type="text" id="craftedFromSearch" class="recipe-search-input" placeholder="Search recipes...">
            </div>
            <!-- Crafted From Table Preview -->
            <div id="craftedFromPreview" class="recipe-table-preview">
              {{#get_external_data:
                source=externaldb
                |from=vw_recipe_summary
                |data=OutputItem=output_item,Resources=resources,Stations=station,WaterML=water_ml,CraftTime=craft_time,Schematic=schematic
                |cache=yes
                |where=output_item='{{PAGENAME}}'
                |order by=station
                |limit=5
              }}
              <div class="dune-table-wrapper">
                <table class="infobox-dune-standard-table recipe-table" id="craftedFromTable">
                  <thead>
                    <tr class="tr-dark">
                      <th style="width:35%;">Item Created</th>
                      <th style="width:40%;">Resources Needed</th>
                      <th style="width:25%;">Stations</th>
                    </tr>
                  </thead>
                  <tbody>
                    {{#for_external_table:|
                      <tr class="recipe-row">
                        <td>{{#invoke:DataTableParserV2|iconize|{{{OutputItem}}}}}</td>
                        <td>{{#invoke:DataTableParserV2|formatRecipeList|{{{Resources}}}}}</td>
                        <td>{{{Stations}}}</td>
                      </tr>
                    }}
                  </tbody>
                </table>
              </div>
            </div>
            <!-- View All Button -->
            <div class="recipe-actions">
              <button class="dune-action-button view-all-crafted-from" data-resource="{{PAGENAME}}">
                <span class="icon">📋</span> View All Recipes
              </button>
            </div>
          </div>
        </div>
      </div>
    </div>
  </div>


  <!-- Right Column: Resource Guide -->
           <div class="dune-card-title"><span class="icon"></span> Notes</div>
  <div class="responsive-col col3">
    <div class="skin-pivot">
      <div class="dune-card">
        <div class="dune-card-decoration"></div>
        <div class="dune-card-inner">
          <div class="dune-card-label">VIDEO TUTORIALS</div>
          <div class="dune-card-title"><span class="icon">▶</span> Resource Guide</div>
          <div style="padding:3px;"></div>
          <div class="dune-card-video" style="border:2px solid #e2d3ae;border-radius:4px;padding:2px;background-color:#262626;">
            {{#if:{{#var:GuideLink}}
              | <youtube>{{#var:GuideLink}}</youtube>
              | <youtube>r8lxVDqoHLQ</youtube>}}
          </div>
          <div style="clear:both; padding:10px;"></div>
          <!-- Notes Section -->
           <div class="dune-card-title"><span class="icon"></span> Notes</div>
           <div style="padding:3px;"></div>
           <div style="padding:3px;"></div>
           <div class="dune-card-description">{{#invoke:DataTableParserV2|iconize|{{#var:AdditionalNotes}}}}</div>
           <div class="dune-card-description">{{#invoke:DataTableParserV2|iconize|{{#var:AdditionalNotes}}}}</div>
          {{#if:{{#var:LocationsToHarvest}}|
          <div style="clear:both; padding:10px;"></div>
          <!-- Harvest Locations -->
          <div class="dune-card-title"><span class="icon">🗺</span> Harvest Locations</div>
          <div style="padding:3px;"></div>
          <div class="dune-card-description">{{#invoke:DataTableParserV2|iconize|{{#var:LocationsToHarvest}}}}</div>
          |}}
         </div>
         </div>
       </div>
       </div>
     </div>
     </div>
  </div>
</div>
</div>


<!-- Recipe Popup Template -->
{{#tag:script|
<script id="recipePopupTemplate" type="text/template">
<nowiki>
  <div class="recipe-popup-overlay">
<div class="recipe-popup-overlay">
    <div class="recipe-popup">
  <div class="recipe-popup">
      <div class="popup-header">
    <div class="popup-header">
        <h3 class="popup-title">{{title}}</h3>
      <h3 class="popup-title">{{title}}</h3>
        <button class="popup-close">×</button>
      <button class="popup-close">×</button>
    </div>
    <div class="popup-content">
      <div class="popup-search-container">
        <input type="text" class="popup-search-input" placeholder="Search recipes…">
       </div>
       </div>
       <div class="popup-content">
       <div class="popup-table-wrapper">
        <div class="popup-search-container">
        <table class="infobox-dune-standard-table recipe-popup-table">
          <input type="text" class="popup-search-input" placeholder="Search recipes...">
          <thead>
        </div>
            <tr class="tr-dark">
        <div class="popup-table-wrapper">
              <th>Item Created</th><th>Resources Needed</th><th>Stations</th>
          <table class="infobox-dune-standard-table recipe-popup-table">
              <th>Water&nbsp;(mL)</th><th>Craft&nbsp;Time</th><th>Schematic</th>
            <thead>
            </tr>
              <tr class="tr-dark">
          </thead>
                <th>Item Created</th>
          <tbody>{{tableRows}}</tbody>
                <th>Resources Needed</th>
        </table>
                <th>Stations</th>
                <th>Water (mL)</th>
                <th>Craft Time</th>
                <th>Schematic</th>
              </tr>
            </thead>
            <tbody>
              {{tableRows}}
            </tbody>
          </table>
        </div>
       </div>
       </div>
     </div>
     </div>
   </div>
   </div>
</script>
</div>
</nowiki>
|type="text/template" id="recipePopupTemplate"}}

Latest revision as of 01:49, 4 June 2025

{{{ItemClass}}} - {{{ItemSubclass}}}
Resource Information
[[File:{{{ImageLink}}}|200px|alt={{{Name}}}]]
{{{Description}}}
[[File:{{{IconLink}}}|16px]] Tier{{{Tier}}}
Rarity{{{Rarity}}}
🏛 Faction{{{Faction}}}
Weight{{{Weight}}} kg
📦 Max Stacks{{{MaxStacks}}}
💰 Base Vendor Price{{{BaseVendorPrice}}} Solaris
XP per Harvest{{{XPPerHarvest}}}


CRAFTING
Crafting Recipes

Crafted With

Items that require {{{Name}}} as an ingredient
Item CreatedResources NeededStations
View All Recipes

Crafted From

Recipes that produce {{{Name}}}
Item CreatedResources NeededStations
View All Recipes
VIDEO TUTORIALS
Building Guide
Notes
{{{AdditionalNotes}}}

<script type="text/template" id="recipePopupTemplate"> <div class="recipe-popup-overlay"> <div class="recipe-popup"> <div class="popup-header"> <h3 class="popup-title">{{title}}</h3> <button class="popup-close">×</button> </div> <div class="popup-content"> <div class="popup-search-container"> <input type="text" class="popup-search-input" placeholder="Search recipes…"> </div> <div class="popup-table-wrapper"> <table class="infobox-dune-standard-table recipe-popup-table"> <thead> <tr class="tr-dark"> <th>Item Created</th><th>Resources Needed</th><th>Stations</th> <th>Water (mL)</th><th>Craft Time</th><th>Schematic</th> </tr> </thead> <tbody>{{tableRows}}</tbody> </table> </div> </div> </div> </div> </script>