Actions

Template

ResourcePage: Difference between revisions

From Dune Awakening DB

mNo edit summary
mNo edit summary
Line 1: Line 1:
<div class="dune-breadcrumb-nav">
<div class="dune-breadcrumb-nav">
<templatestyles src="Template:ResourcePage/styles.css" />
  <templatestyles src="Template:ResourcePage/styles.css" />
{{#get_external_data:
  {{#get_external_data:
  source=externaldb
    source=externaldb
  |from=data_items
    |from=data_items
  |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=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
    |cache=yes
  |where=name='{{PAGENAME}}'
    |where=name='{{PAGENAME}}'
  |limit=1
    |limit=1
}}
  }}
{{#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_external_table:|
<!-- Breadcrumb navigation -->
    {{#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}}}}}
{{#if:{{{AdditionalNotes|}}}
  }}
| {{#vardefine:AdditionalNotes|{{{AdditionalNotes}}}}}
  <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>
| <!-- fallback already set inside external data loop -->
}}
<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="responsive-container">
<div class="responsive-container">
  <!-- Left Column: Resource Information -->
   <div class="responsive-col col1">
   <div class="responsive-col col1">
     <div class="skin-pivot">
     <div class="skin-pivot">
Line 25: Line 20:
         <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">{{#var:ItemClass}} - {{#var:ItemSubclass}}</div>
           <div class="dune-card-title"><span class="icon">◆</span> Resource Information</div>
           <div class="dune-card-title"><span class="icon">◆</span> Resource Information</div>
           <div style="padding:3px;"></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 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 style="padding:3px;"></div>
          <!-- Description -->
           <div class="dune-card-description">{{#invoke:DataTableParserV2|iconize|{{#var:Description}}}}</div>
           <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>}}
           {{#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">
           <div class="dune-table-wrapper">
             <table class="infobox-dune-two-column">
             <table class="infobox-dune-two-column">
Line 55: Line 38:
             </table>
             </table>
           </div>
           </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>
     </div>
   </div>
   </div>
  <!-- Middle Column: Crafting Recipes -->
   <div class="responsive-col col2">
   <div class="responsive-col col2">
     <div class="skin-pivot">
     <div class="skin-pivot">
Line 69: Line 58:
           <div class="dune-card-title"><span class="icon">⚒</span> Crafting Recipes</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="crafting-section">
           <div class="crafting-section">
             <h3 class="dune-section-header">Crafted With This Resource</h3>
             <h3 class="dune-section-header">Crafted With</h3>
             <div class="dune-card-description">Items that require {{#var:Name}} as an ingredient</div>
             <div class="dune-card-description">Items that require {{#var:Name}} as an ingredient</div>
            <!-- Quick Search -->
             <div class="recipe-search-container"><input type="text" id="craftedWithSearch" class="recipe-search-input" placeholder="Search recipes..."></div>
             <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">
             <div id="craftedWithPreview" class="recipe-table-preview">
               {{#get_external_data:
               {{#get_external_data:
Line 90: Line 74:
               <div class="dune-table-wrapper">
               <div class="dune-table-wrapper">
                 <table class="infobox-dune-standard-table recipe-table" id="craftedWithTable">
                 <table class="infobox-dune-standard-table recipe-table" id="craftedWithTable">
                   <thead>
                   <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>
                    <tr class="tr-dark">
                   <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>
                      <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>
                 </table>
               </div>
               </div>
             </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 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">
           <div class="crafting-section">
             <h3 class="dune-section-header">Crafted From</h3>
             <h3 class="dune-section-header">Crafted From</h3>
             <div class="dune-card-description">Recipes that produce {{#var:Name}}</div>
             <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>
             <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">
             <div id="craftedFromPreview" class="recipe-table-preview">
               {{#get_external_data:
               {{#get_external_data:
Line 138: Line 98:
               <div class="dune-table-wrapper">
               <div class="dune-table-wrapper">
                 <table class="infobox-dune-standard-table recipe-table" id="craftedFromTable">
                 <table class="infobox-dune-standard-table recipe-table" id="craftedFromTable">
                   <thead>
                   <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>
                    <tr class="tr-dark">
                   <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>
                      <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>
                 </table>
               </div>
               </div>
             </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 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>
Line 168: Line 109:
     </div>
     </div>
   </div>
   </div>
  <!-- Right Column: Resource Guide -->
   <div class="responsive-col col3">
   <div class="responsive-col col3">
     <div class="skin-pivot">
     <div class="skin-pivot">
Line 175: Line 114:
         <div class="dune-card-decoration"></div>
         <div class="dune-card-decoration"></div>
         <div class="dune-card-inner">
         <div class="dune-card-inner">
          {{#get_external_data:
            source=externaldb
            |from=data_item_videos
            |data=VideoID=video_id,Context=context,Featured=featured
            |cache=yes
            |where=internal_name='{{PAGENAME}}'
            |limit=1
          }}
           <div class="dune-card-label">VIDEO TUTORIALS</div>
           <div class="dune-card-label">VIDEO TUTORIALS</div>
           <div class="dune-card-title"><span class="icon">▶</span> Resource Guide</div>
           <div class="dune-card-title"><span class="icon">▶</span> Resource Guide</div>
           <div style="padding:3px;"></div>
           {{#if:{{{VideoID|}}}|<div class="dune-card-video" style="border:2px solid #e2d3ae;border-radius:4px;padding:2px;background-color:#262626;"><youtube>{{#var:VideoID}}</youtube></div>|{{#if:{{#var:GuideLink}}|<div class="dune-card-video" style="border:2px solid #e2d3ae;border-radius:4px;padding:2px;background-color:#262626;"><youtube>{{#var:GuideLink}}</youtube></div>|<div class="dune-card-video" style="border:2px solid #e2d3ae;border-radius:4px;padding:2px;background-color:#262626;"><youtube>r8lxVDqoHLQ</youtube></div>}}
          <div class="dune-card-video" style="border:2px solid #e2d3ae;border-radius:4px;padding:2px;background-color:#262626;">  
          <div style="clear:both; padding:10px;"></div>
             {{#if:{{#var:GuideLink}}
          {{#get_external_data:
              | <youtube>{{#var:GuideLink}}</youtube>
            source=externaldb
              | <youtube>r8lxVDqoHLQ</youtube>}}
            |from=data_item_gallery
          </div>
            |data=ImageURL=image_url,Caption=caption
            |cache=yes
            |where=internal_name='{{PAGENAME}}'
            |order by=position
             |limit=4
          }}
          {{#if:{{{ImageURL|}}}|<div class="dune-card-label">IMAGE GALLERY</div><div style="padding:3px;"></div><div class="gallery-container">{{#for_external_table:|<div class="gallery-item">[[File:{{{ImageURL}}}|120px|alt={{{Caption}}}]]{{#if:{{{Caption|}}}|<div class="caption">{{{Caption}}}</div>|}}</div>}}</div>}
           <div style="clear:both; padding:10px;"></div>
           <div style="clear:both; padding:10px;"></div>
          <!-- Notes Section -->
           <div class="dune-card-title"><span class="icon">≡</span> Notes</div>
           <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>
Line 200: Line 145:
   </div>
   </div>
</div>
</div>
<!-- Recipe Popup Template -->
<script id="recipePopupTemplate" type="text/template">
<script id="recipePopupTemplate" type="text/template">
   <div class="recipe-popup-overlay">
   <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>
    <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>
</script>

Revision as of 22:33, 2 June 2025

 
 
 
 Menu/[[{{{Category1}}}|{{{Category1}}}]]/[[{{{Category2}}}|{{{Category2}}}]]/[[{{{Category3}}}|{{{Category3}}}]]/ResourcePage
{{{ItemClass}}} - {{{ItemSubclass}}}
Resource Information
[[File:{{{ImageLink}}}|200px|alt={{{Name}}}]]
{{{Description}}}
📍How to Obtain
{{{HowToObtain}}}
[[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
<input type="text" id="craftedWithSearch" class="recipe-search-input" placeholder="Search recipes...">
<thead></thead>
                 <tbody></tbody>
Item CreatedResources NeededStations
<button class="dune-action-button view-all-crafted-with" data-resource="ResourcePage">📋 View All Recipes</button>

Crafted From

Recipes that produce {{{Name}}}
<input type="text" id="craftedFromSearch" class="recipe-search-input" placeholder="Search recipes...">
<thead></thead>
                 <tbody></tbody>
Item CreatedResources NeededStations
<button class="dune-action-button view-all-crafted-from" data-resource="ResourcePage">📋 View All Recipes</button>
VIDEO TUTORIALS
Resource Guide
{{#if:|
Provided ID could not be validated.
|
Provided ID could not be validated.
{{#if:|
IMAGE GALLERY
}
Notes
{{{AdditionalNotes}}}

<script id="recipePopupTemplate" type="text/template">

</script>