[Scummvm-git-logs] scummvm-web master -> dc30ee7885e90aa00e7ef3eb9b9c944356ca8800

Mataniko mataniko at gmail.com
Tue Sep 29 20:39:30 UTC 2020


This automated email contains information about 2 new commits which have been
pushed to the 'scummvm-web' repo located at https://github.com/scummvm/scummvm-web .

Summary:
11316500b7 WEB: Fix strpos condition ambiguity
dc30ee7885 JANITORIAL: Format smarty templates


Commit: 11316500b78cbbdb964aeb92e55461cfdf5963d0
    https://github.com/scummvm/scummvm-web/commit/11316500b78cbbdb964aeb92e55461cfdf5963d0
Author: Mataniko (mataniko at gmail.com)
Date: 2020-09-29T16:38:00-04:00

Commit Message:
WEB: Fix strpos condition ambiguity

Changed paths:
    include/Objects/News.php
    include/Objects/Screenshot.php
    public_html/index.php


diff --git a/include/Objects/News.php b/include/Objects/News.php
index 2f156397..ee37b16a 100644
--- a/include/Objects/News.php
+++ b/include/Objects/News.php
@@ -56,11 +56,11 @@ class News
         if (\preg_match_all($regex, $body, $matches)) {
             foreach ($matches[1] as $url) {
                 // Don't replace FRS links or static files
-                if (\strpos($url, "/frs") || file_exists("./$url")) {
+                if (\strpos($url, "/frs") !== false || file_exists("./$url")) {
                     continue;
                 } elseif (\preg_match("/^\//", $url)) { // Relative path (/screenshots/)
                     $body = str_replace($url, "/$lang" . $url, $body);
-                } elseif (\strpos($url, "www.scummvm.org")) { // Absolute url (www.scummvm.org/*)
+                } elseif (\strpos($url, "www.scummvm.org") !== false) { // Absolute url (www.scummvm.org/*)
                     $newUrl = preg_replace("/\.org(\/|$)?/i", ".org/$lang/", $url);
                     $body = str_replace($url, $newUrl, $body);
                 }
diff --git a/include/Objects/Screenshot.php b/include/Objects/Screenshot.php
index 548b3393..94b92339 100644
--- a/include/Objects/Screenshot.php
+++ b/include/Objects/Screenshot.php
@@ -24,7 +24,7 @@ class Screenshot extends DataObject
         $this->game = $this->assignFromArray($data['id'], $games);
         $this->files = [];
         foreach (glob("./" . DIR_SCREENSHOTS . "/" . $this->filename) as $file) {
-            if (\strpos($file, "_full.") > 0) {
+            if (\strpos($file, "_full.") !== false) {
                 continue;
             }
             // Remove the base folder and extension
diff --git a/public_html/index.php b/public_html/index.php
index 28e2596a..cd059aed 100644
--- a/public_html/index.php
+++ b/public_html/index.php
@@ -30,13 +30,16 @@ foreach ($languages as $l) {
 // Backwards compatibility for lang query param & cookie
 if (!empty($_GET['lang'])) {
   $lang = $_GET['lang'];
+  setcookie("lang", $lang, time()+3600);
   $uri = str_replace("?lang=$lang", "", $_SERVER['REQUEST_URI']);
   header("Location: " . "/$lang" . $uri);
 } elseif (!empty($_COOKIE['lang'])) {
   $lang = $_COOKIE['lang'];
   unset($_COOKIE['lang']);
   setcookie("lang", "", -1);
-  header("Location: " . "/$lang" . $_SERVER['REQUEST_URI']);
+  if (\strpos($_SERVER['REQUEST_URI'], "/$lang/") === false) {
+    header("Location: " . "/$lang" . $_SERVER['REQUEST_URI']);
+  }
 }
 
 $langs = join("|", array_keys($available_languages));


Commit: dc30ee7885e90aa00e7ef3eb9b9c944356ca8800
    https://github.com/scummvm/scummvm-web/commit/dc30ee7885e90aa00e7ef3eb9b9c944356ca8800
Author: Mataniko (mataniko at gmail.com)
Date: 2020-09-29T16:39:18-04:00

Commit Message:
JANITORIAL: Format smarty templates

Changed paths:
    templates/base/base.tpl
    templates/components/banners.tpl
    templates/components/box.tpl
    templates/components/compatibility_details.tpl
    templates/components/cookie.tpl
    templates/components/credits_entry.tpl
    templates/components/exception.tpl
    templates/components/intro_header.tpl
    templates/components/lang_menu.tpl
    templates/components/list_items.tpl
    templates/components/menu_group.tpl
    templates/components/random_screenshot.tpl
    templates/components/recommended_download.tpl
    templates/components/roundbox.tpl
    templates/layout/footer.tpl
    templates/layout/header.tpl
    templates/layout/menu.tpl
    templates/pages/compatibility.tpl
    templates/pages/contact.tpl
    templates/pages/credits.tpl
    templates/pages/documentation.tpl
    templates/pages/downloads.tpl
    templates/pages/faq.tpl
    templates/pages/feed_atom.tpl
    templates/pages/feed_rss.tpl
    templates/pages/game_demos.tpl
    templates/pages/games.tpl
    templates/pages/index.tpl
    templates/pages/links.tpl
    templates/pages/news.tpl
    templates/pages/press.tpl
    templates/pages/press_snowberry.tpl
    templates/pages/screenshots.tpl
    templates/pages/screenshots_category.tpl
    templates/pages/sponsors.tpl
    templates/pages/subprojects.tpl


diff --git a/templates/base/base.tpl b/templates/base/base.tpl
index 5402ac2b..29c4fc51 100644
--- a/templates/base/base.tpl
+++ b/templates/base/base.tpl
@@ -1,48 +1,51 @@
 <!DOCTYPE html>
 <html>
+
 <head>
-	<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-	<meta name="viewport" content="width=device-width, initial-scale=1">
-	<base href="{$baseurl|lang}">
-	<link rel="stylesheet" href="/css/main.css">
-	<link rel="alternate" type="application/atom+xml" title="{#indexAtomFeed#}" href="{$baseurl|lang}feeds/atom/">
-	<link rel="alternate" type="application/rss+xml" title="{#indexRSSFeed#}" href="{$baseurl|lang}feeds/rss/">
-	<link rel="apple-touch-icon" href="/images/scummvm.png">
-	<title>ScummVM :: {block name=title}{/block}</title>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+    <base href="{$baseurl|lang}">
+    <link rel="stylesheet" href="/css/main.css">
+    <link rel="alternate" type="application/atom+xml" title="{#indexAtomFeed#}" href="{$baseurl|lang}feeds/atom/">
+    <link rel="alternate" type="application/rss+xml" title="{#indexRSSFeed#}" href="{$baseurl|lang}feeds/rss/">
+    <link rel="apple-touch-icon" href="/images/scummvm.png">
+    <title>ScummVM :: {block name=title}{/block}</title>
 </head>
+
 <body>
-	<input type="checkbox" autocomplete="off" id="nav-trigger" class="nav-trigger" />
-	<label for="nav-trigger"></label>
-
-	<div class="site-wrap">
-
-    {block name=header}{/block}
-
-		<div class="container row">
-			<div class="col-4-5 col-sm-1">
-        {block name=content}{/block}
-			</div>
-
-			<div class="col-1-5 col-sm-1">
-        {block name=menu}{/block}
-			</div>
-		</div>
-
-    {block name=footer}{/block}
-	</div>
-
-{foreach from=$js_files item=script}
-	<script src="/js/{$script}"></script>
-{/foreach}
-{
-	<script>
-		document.querySelector('.nav-trigger').addEventListener('change', function() {
-			if (this.checked)
-				document.body.classList.add('no-scroll');
-			else
-				document.body.classList.remove('no-scroll');
-		});
-	</script>
-}
+    <input type="checkbox" autocomplete="off" id="nav-trigger" class="nav-trigger" />
+    <label for="nav-trigger"></label>
+
+    <div class="site-wrap">
+
+        {block name=header}{/block}
+
+        <div class="container row">
+            <div class="col-4-5 col-sm-1">
+                {block name=content}{/block}
+            </div>
+
+            <div class="col-1-5 col-sm-1">
+                {block name=menu}{/block}
+            </div>
+        </div>
+
+        {block name=footer}{/block}
+    </div>
+
+    {foreach from=$js_files item=script}
+    <script src="/js/{$script}"></script>
+    {/foreach}
+    {
+    <script>
+        document.querySelector('.nav-trigger').addEventListener('change', function() {
+            if (this.checked)
+                document.body.classList.add('no-scroll');
+            else
+                document.body.classList.remove('no-scroll');
+        });
+    </script>
+    }
 </body>
-</html>
+
+</html>
\ No newline at end of file
diff --git a/templates/components/banners.tpl b/templates/components/banners.tpl
index 06d17026..39afa3c9 100644
--- a/templates/components/banners.tpl
+++ b/templates/components/banners.tpl
@@ -20,4 +20,4 @@
     <a href="https://twitter.com/ScummVM">
         <img src="/images/twitter.png" width="88" height="32" alt="{#indexTwitter#}">
     </a>
-</div>
+</div>
\ No newline at end of file
diff --git a/templates/components/box.tpl b/templates/components/box.tpl
index e989c8ff..617868d4 100644
--- a/templates/components/box.tpl
+++ b/templates/components/box.tpl
@@ -1,15 +1,15 @@
-<{if $article}article{else}section{/if} class="box" {if $id}id="{$id}"{/if}>
-	{if $head}
-	<header class="head">
-		{$head}
-	</header>
-	{/if}
-	{if $intro}
-	<section class="intro">		
-		{$intro}
-	</section>
-	{/if}
-	<section class="content">
-		{$content}
-	</section>
-</{if $article}article{else}section{/if}>
+<{if $article}article{else}section{/if} class="box" {if $id}id="{$id}" {/if}>
+    {if $head}
+        <header class="head">
+            {$head}
+        </header>
+    {/if}
+    {if $intro}
+        <section class="intro">
+            {$intro}
+        </section>
+    {/if}
+    <section class="content">
+        {$content}
+    </section>
+</{if $article}article{else}section{/if}>
\ No newline at end of file
diff --git a/templates/components/compatibility_details.tpl b/templates/components/compatibility_details.tpl
index 183b8e4d..ce6a6862 100644
--- a/templates/components/compatibility_details.tpl
+++ b/templates/components/compatibility_details.tpl
@@ -4,31 +4,31 @@
 {assign var="support_description" value=$support_level_description.$x}
 
 {capture "content"}
-	<table class="chart color4">
-		<caption>{#compatibilityDetailsChartTitle#}</caption>
-		<thead>
-			<tr class="color4">
-				<th>{#compatibilityDetailsChartCol1#}</th>
-				<th>{#compatibilityDetailsChartCol2#}</th>
-				<th>{#compatibilityDetailsChartCol4#}</th>
-			</tr>
-		</thead>
-		<tbody>
-			<tr class="color0">
-				<td>{$game->getGame()->getName()}</td>
-				<td>{$game->getGame()->getId()}</td>
-				<td align="center" class="{$pct_class}">{$support_level}</td>
-			</tr>
-			<tr class="color2">
-				<td colspan="3" class="details">
-					{$game->getNotes()|regex_replace:"/%.+%/":$support_description}
-				</td>
-			</tr>
-		</tbody>
-	</table>
-	<p class="bottom-link">
-		<a href="{'/compatibility/'|lang}{$version}/">{#compatibilityDetailsBack#}</a>
-	</p>
+<table class="chart color4">
+    <caption>{#compatibilityDetailsChartTitle#}</caption>
+    <thead>
+        <tr class="color4">
+            <th>{#compatibilityDetailsChartCol1#}</th>
+            <th>{#compatibilityDetailsChartCol2#}</th>
+            <th>{#compatibilityDetailsChartCol4#}</th>
+        </tr>
+    </thead>
+    <tbody>
+        <tr class="color0">
+            <td>{$game->getGame()->getName()}</td>
+            <td>{$game->getGame()->getId()}</td>
+            <td align="center" class="{$pct_class}">{$support_level}</td>
+        </tr>
+        <tr class="color2">
+            <td colspan="3" class="details">
+                {$game->getNotes()|regex_replace:"/%.+%/":$support_description}
+            </td>
+        </tr>
+    </tbody>
+</table>
+<p class="bottom-link">
+    <a href="{'/compatibility/'|lang}{$version}/">{#compatibilityDetailsBack#}</a>
+</p>
 {/capture}
 
-{include "components/box.tpl" head={#compatibilityDetailsInto#} content=$smarty.capture.content}
+{include "components/box.tpl" head={#compatibilityDetailsInto#} content=$smarty.capture.content}
\ No newline at end of file
diff --git a/templates/components/cookie.tpl b/templates/components/cookie.tpl
index 46adb416..5b7fc5f9 100644
--- a/templates/components/cookie.tpl
+++ b/templates/components/cookie.tpl
@@ -1,13 +1,13 @@
 <div class="cookie-consent">
-	<div class="middle">
-	 <span class="text">{#cookieText#}</span>
-	 <span class="buttons"><a class="accept" onclick="cookie_consent(true)">{#cookieAccept#}</a><a onclick="cookie_consent(false)">{#cookieDecline#}</a></span>
-	</div>
+    <div class="middle">
+        <span class="text">{#cookieText#}</span>
+        <span class="buttons"><a class="accept" onclick="cookie_consent(true)">{#cookieAccept#}</a><a onclick="cookie_consent(false)">{#cookieDecline#}</a></span>
+    </div>
 </div>
 
 <script>
-	function cookie_consent(allowCookies) {
-		document.cookie = "cookie_consent=" + allowCookies + "; expires=Fri, 31 Dec 9999 23:59:59 GMT; domain=scummvm.org";
-		document.querySelector('.cookie-consent').style.display = "none";
-	}
-</script>
+    function cookie_consent(allowCookies) {
+        document.cookie = "cookie_consent=" + allowCookies + "; expires=Fri, 31 Dec 9999 23:59:59 GMT; domain=scummvm.org";
+        document.querySelector('.cookie-consent').style.display = "none";
+    }
+</script>
\ No newline at end of file
diff --git a/templates/components/credits_entry.tpl b/templates/components/credits_entry.tpl
index c81792d9..dd8f18e4 100644
--- a/templates/components/credits_entry.tpl
+++ b/templates/components/credits_entry.tpl
@@ -1,24 +1,24 @@
 {if is_array($groups) && $groups|@count > 0}
-	{foreach from=$groups item=group}
-	<table class="credits">
-		{if $group.name != null}
-		<caption>{$group.name}:</caption>
-		{/if}
-		<tbody>
-		{foreach from=$group.persons item=person}
-			<tr>
-				<td class="name">{$person->getName()}</td>
-				<td class="alias">{$person->getAlias()}</td>
-				<td>{$person->getDescription()}</td>
-			</tr>
-		{/foreach}
-		</tbody>
-	</table>
-	{/foreach}
+    {foreach from=$groups item=group}
+        <table class="credits">
+            {if $group.name != null}
+                <caption>{$group.name}:</caption>
+            {/if}
+            <tbody>
+                {foreach from=$group.persons item=person}
+                    <tr>
+                        <td class="name">{$person->getName()}</td>
+                        <td class="alias">{$person->getAlias()}</td>
+                        <td>{$person->getDescription()}</td>
+                    </tr>
+                {/foreach}
+            </tbody>
+        </table>
+    {/foreach}
 {/if}
 
 {if is_array($paragraphs) && $paragraphs|@count > 0}
-	{foreach from=$paragraphs item=paragraph}
-	<p class="credits">{$paragraph}</p>
-	{/foreach}
-{/if}
+{foreach from=$paragraphs item=paragraph}
+<p class="credits">{$paragraph}</p>
+{/foreach}
+{/if}
\ No newline at end of file
diff --git a/templates/components/exception.tpl b/templates/components/exception.tpl
index ef2aac28..7e52445f 100644
--- a/templates/components/exception.tpl
+++ b/templates/components/exception.tpl
@@ -1,6 +1,6 @@
 {capture "content"}
-	<img src="/images/three-headed-monkey.png" alt="{#exceptionAlt#}" class="float_right" style="margin-bottom: 5px;">
-	<h3>{#exceptionContent#}</h3>
-	<p>{$exception->getMessage()|nl2br:false}</p>
+    <img src="/images/three-headed-monkey.png" alt="{#exceptionAlt#}" class="float_right" style="margin-bottom: 5px;">
+    <h3>{#exceptionContent#}</h3>
+    <p>{$exception->getMessage()|nl2br:false}</p>
 {/capture}
-{include "components/box.tpl" head=#exceptionHeading# intro="<h2>{#exceptionIntro#}</h2>" content=$smarty.capture.content}
+{include "components/box.tpl" head=#exceptionHeading# intro="<h2>{#exceptionIntro#}</h2>" content=$smarty.capture.content}
\ No newline at end of file
diff --git a/templates/components/intro_header.tpl b/templates/components/intro_header.tpl
index f7ffa124..5e31b2b3 100644
--- a/templates/components/intro_header.tpl
+++ b/templates/components/intro_header.tpl
@@ -1,23 +1,23 @@
 {* Introduction header, included from index.tpl *}
 {capture "content"}
-<div class="col-2-3 col-md-1">
-  <p>{#introHeaderContentP1#}</p>
-  <p>{#introHeaderContentP2#}</p>
-  <p>{#introHeaderContentP3#}</p>
-  <p>{#introHeaderContentP4#}</p>
-  <form id="donate-header" action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_top">
-    <input type="hidden" name="cmd" value="_s-xclick">
-    <input type="hidden" name="hosted_button_id" value="U6E6SLL7E8MAS">
-    <input type="image" src="/images/ppdonate.png" style="width: 63px; height: 25px; border: 0 none;" align="right" name="submit" alt="{#indexSupport#}">
-    <img alt="" border="0" src="https://www.paypalobjects.com/en_US/i/scr/pixel.gif" width="1" height="1">
-  </form>
-  <p>{#introHeaderContentP5#}</p>
-</div>
-<div class="col-1-3 col-md-1">
-  {include file='components/random_screenshot.tpl'}
-</div>
+    <div class="col-2-3 col-md-1">
+        <p>{#introHeaderContentP1#}</p>
+        <p>{#introHeaderContentP2#}</p>
+        <p>{#introHeaderContentP3#}</p>
+        <p>{#introHeaderContentP4#}</p>
+        <form id="donate-header" action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_top">
+            <input type="hidden" name="cmd" value="_s-xclick">
+            <input type="hidden" name="hosted_button_id" value="U6E6SLL7E8MAS">
+            <input type="image" src="/images/ppdonate.png" style="width: 63px; height: 25px; border: 0 none;" align="right" name="submit" alt="{#indexSupport#}">
+            <img alt="" border="0" src="https://www.paypalobjects.com/en_US/i/scr/pixel.gif" width="1" height="1">
+        </form>
+        <p>{#introHeaderContentP5#}</p>
+    </div>
+    <div class="col-1-3 col-md-1">
+        {include file='components/random_screenshot.tpl'}
+    </div>
 {/capture}
 
 <div id="intro_header">
-  {include file='components/roundbox.tpl' header=#introHeaderWhatIs# class="text row" content=$smarty.capture.content}
-</div>
+    {include file='components/roundbox.tpl' header=#introHeaderWhatIs# class="text row" content=$smarty.capture.content}
+</div>
\ No newline at end of file
diff --git a/templates/components/lang_menu.tpl b/templates/components/lang_menu.tpl
index 8438fe3f..dee32f64 100644
--- a/templates/components/lang_menu.tpl
+++ b/templates/components/lang_menu.tpl
@@ -4,14 +4,14 @@
         <label for="menu-lang">Language</label>
     </dt>
     {foreach from=$available_languages key=key item=item}
-    {if $key != $lang}
-    <dd>
-        {if $key == $smarty.const.DEFAULT_LOCALE}
-        <span class="bullet"></span><a href="{$pageurl}">{$item}</a>
-        {else}
-        <span class="bullet"></span><a href="/{$key}{$pageurl}">{$item}</a>
+        {if $key != $lang}
+            <dd>
+                {if $key == $smarty.const.DEFAULT_LOCALE}
+                    <span class="bullet"></span><a href="{$pageurl}">{$item}</a>
+                {else}
+                    <span class="bullet"></span><a href="/{$key}{$pageurl}">{$item}</a>
+                {/if}
+            </dd>
         {/if}
-    </dd>
-    {/if}
     {/foreach}
-</dl>
+</dl>
\ No newline at end of file
diff --git a/templates/components/list_items.tpl b/templates/components/list_items.tpl
index 593c3ea9..92439511 100644
--- a/templates/components/list_items.tpl
+++ b/templates/components/list_items.tpl
@@ -1,48 +1,48 @@
 {if is_array($list) && $list|@count > 0}
-	<ul class="downloads">
-  {foreach from=$list item=item}
-    {if $item instanceof ScummVM\Objects\File}
-			{assign var='data' value=$item->getExtraInfo()}
-			<li class="file">
-				<span class="sprite-{$type}-{$item->getCategoryIcon()} sprite"></span>
-				<a href="{eval var=$item->getURL()}">{eval var=$item->getName()}</a>
-				{strip}
-				<span class="download-extras">
-					{if is_array($data)}
-						(
-							{if $item->getType() == 'daily'}{#listItemsBuildFromRepo#} {/if}
-              {$data.size} {if $data.ext == '.exe'}Win32 {/if}{$data.ext}{if $data.date != ""}{#listItemsDate#} {$data.date} {/if}
-			   <a href="{eval var=$item->getURL()}.mirrorlist">mirrorlist</a>
-              {if $data.sha256 != ""} <span class="sha256-toggle" onclick="this.nextSibling.classList.toggle('hidden')"> sha256</span><span class="sha256-text hidden"> <a href="{eval var=$item->getURL()}.sha256">{$data.sha256}</a></span>{/if}
-						)  {if $data.msg != ""}{$data.msg}{/if}
-					{else}
-						{if $item->getType() != 'daily'}
-							{eval var=$data|default:' '}
-						{/if}
-					{/if}
-				</span>
-				{if $item->getType() == 'daily'}
-					<span class="daily_provider">
-						{if is_array($data)}
-							{eval var=$data.info}
-						{else}
-							{eval var=$data}
-						{/if}
-					</span>
-				{/if}
-				{/strip}
-			</li>
-		{elseif $item instanceof ScummVM\Objects\WebLink}
-			<li class="link">
-				<a href="{$item->getURL()}">{$item->getName()}</a>{$item->getDescription()}
-      </li>
-    {elseif $item instanceof ScummVM\Objects\Screenshot}
-      <li class="file">
-        <span class="sprite-games-{$item->getCategory()} sprite"></span>
-				<a href="{'/screenshots/'|lang}{$arr.category}/{$item->getCategory()}/">{$item->getName()}</a>
-        <span class="green">({$item->getFiles()|@count} shots)</span>
-      </li>
-    {/if}
-	{/foreach}
-	</ul>
-{/if}
+    <ul class="downloads">
+        {foreach from=$list item=item}
+            {if $item instanceof ScummVM\Objects\File}
+                {assign var='data' value=$item->getExtraInfo()}
+                <li class="file">
+                    <span class="sprite-{$type}-{$item->getCategoryIcon()} sprite"></span>
+                    <a href="{eval var=$item->getURL()}">{eval var=$item->getName()}</a>
+                    {strip}
+                        <span class="download-extras">
+                            {if is_array($data)}
+                                (
+                                {if $item->getType() == 'daily'}{#listItemsBuildFromRepo#} {/if}
+                                {$data.size} {if $data.ext == '.exe'}Win32 {/if}{$data.ext}{if $data.date != ""}{#listItemsDate#} {$data.date} {/if}
+                                 <a href="{eval var=$item->getURL()}.mirrorlist">mirrorlist</a>
+                                {if $data.sha256 != ""} <span class="sha256-toggle" onclick="this.nextSibling.classList.toggle('hidden')"> sha256</span><span class="sha256-text hidden"> <a href="{eval var=$item->getURL()}.sha256">{$data.sha256}</a></span>{/if}
+                                ) {if $data.msg != ""}{$data.msg}{/if}
+                            {else}
+                                {if $item->getType() != 'daily'}
+                                    {eval var=$data|default:' '}
+                                {/if}
+                            {/if}
+                        </span>
+                        {if $item->getType() == 'daily'}
+                            <span class="daily_provider">
+                                {if is_array($data)}
+                                    {eval var=$data.info}
+                                {else}
+                                    {eval var=$data}
+                                {/if}
+                            </span>
+                        {/if}
+                    {/strip}
+                </li>
+            {elseif $item instanceof ScummVM\Objects\WebLink}
+                <li class="link">
+                    <a href="{$item->getURL()}">{$item->getName()}</a>{$item->getDescription()}
+                </li>
+            {elseif $item instanceof ScummVM\Objects\Screenshot}
+                <li class="file">
+                    <span class="sprite-games-{$item->getCategory()} sprite"></span>
+                    <a href="{'/screenshots/'|lang}{$arr.category}/{$item->getCategory()}/">{$item->getName()}</a>
+                    <span class="green">({$item->getFiles()|@count} shots)</span>
+                </li>
+            {/if}
+        {/foreach}
+    </ul>
+{/if}
\ No newline at end of file
diff --git a/templates/components/menu_group.tpl b/templates/components/menu_group.tpl
index 5d64cc30..a6d2cc3c 100644
--- a/templates/components/menu_group.tpl
+++ b/templates/components/menu_group.tpl
@@ -1,9 +1,9 @@
 <dl>
-	<input type="checkbox" autocomplete="off" id="{$menu->getClass()}" class="menu-trigger" />
-	<dt>
-		<label for="{$menu->getClass()}">{eval var=$menu->getName()}</label>
-	</dt>
-	{foreach from=$menu->getEntries() key=text item=url}
-		<dd><span class="bullet"></span><a href="{eval var=$url|lang}">{eval var=$text}</a></dd>
-	{/foreach}
-</dl>
+    <input type="checkbox" autocomplete="off" id="{$menu->getClass()}" class="menu-trigger" />
+    <dt>
+        <label for="{$menu->getClass()}">{eval var=$menu->getName()}</label>
+    </dt>
+    {foreach from=$menu->getEntries() key=text item=url}
+        <dd><span class="bullet"></span><a href="{eval var=$url|lang}">{eval var=$text}</a></dd>
+    {/foreach}
+</dl>
\ No newline at end of file
diff --git a/templates/components/random_screenshot.tpl b/templates/components/random_screenshot.tpl
index f9c4e5ed..69b9ecaa 100644
--- a/templates/components/random_screenshot.tpl
+++ b/templates/components/random_screenshot.tpl
@@ -5,13 +5,13 @@
 
 {capture "content"}
 <a href="{$smarty.const.DIR_SCREENSHOTS}/{$rand_file.filename}_full.png" title="{$rand_file.caption}">
-  <img class="random-screenshot" src="{$smarty.const.DIR_SCREENSHOTS}/{$rand_file.filename}_full.png" alt="{$rand_file.caption}">
+    <img class="random-screenshot" src="{$smarty.const.DIR_SCREENSHOTS}/{$rand_file.filename}_full.png" alt="{$rand_file.caption}">
 </a>
 {/capture}
 {include file='components/roundbox.tpl' class="gallery" content=$smarty.capture.content}
 
 <script>
-	window.addEventListener('DOMContentLoaded', function() {
-		baguetteBox.run('.gallery');
-	});
-</script>
+    window.addEventListener('DOMContentLoaded', function() {
+        baguetteBox.run('.gallery');
+    });
+</script>
\ No newline at end of file
diff --git a/templates/components/recommended_download.tpl b/templates/components/recommended_download.tpl
index 04910e98..36bdd625 100644
--- a/templates/components/recommended_download.tpl
+++ b/templates/components/recommended_download.tpl
@@ -1,13 +1,13 @@
 <div id="recommended-download" class="{($recommendedDownload) ? 'visible':'hidden'}">
-  <div class="subhead">{#downloadsBadge#}</div>
-  <div class="subhead-content">
-    <div id="downloadContainer">
-      <a id="downloadButton" href={$recommendedDownload.url}>
-        <img src="images/scummvm.png" alt="Download ScummVM icon">
-        <div class="downloadText">Download ScummVM</div>
-        <div id="downloadDetails">Version {$recommendedDownload.ver} • {$recommendedDownload.os} • {$recommendedDownload.desc}</div>
-      </a>
+    <div class="subhead">{#downloadsBadge#}</div>
+    <div class="subhead-content">
+        <div id="downloadContainer">
+            <a id="downloadButton" href={$recommendedDownload.url}>
+                <img src="images/scummvm.png" alt="Download ScummVM icon">
+                <div class="downloadText">Download ScummVM</div>
+                <div id="downloadDetails">Version {$recommendedDownload.ver} • {$recommendedDownload.os} • {$recommendedDownload.desc}</div>
+            </a>
+        </div>
     </div>
-  </div>
 </div>
-<br>
+<br>
\ No newline at end of file
diff --git a/templates/components/roundbox.tpl b/templates/components/roundbox.tpl
index e31cfce5..e99af406 100644
--- a/templates/components/roundbox.tpl
+++ b/templates/components/roundbox.tpl
@@ -1,10 +1,10 @@
 <section class="round-box">
-  {if $header}
-  <header class="header">
-    {$header}
-  </header>
-  {/if}
-  <section class="content{if $class} {$class}{/if}">
-    {$content}
-  </section>  
-</section>
+    {if $header}
+        <header class="header">
+            {$header}
+        </header>
+    {/if}
+    <section class="content{if $class} {$class}{/if}">
+        {$content}
+    </section>
+</section>
\ No newline at end of file
diff --git a/templates/layout/footer.tpl b/templates/layout/footer.tpl
index 2516ae1d..0b482211 100644
--- a/templates/layout/footer.tpl
+++ b/templates/layout/footer.tpl
@@ -1,10 +1,10 @@
 <footer class="row">
-  <div class="col-4-5 col-sm-1">
-    {#indexLegal#}
-  </div>
-  <div class="col-1-5 hide-small">
-    <div class="tentacle">
-      <img src="/images/tentacle.svg" alt="Tentacle">
+    <div class="col-4-5 col-sm-1">
+        {#indexLegal#}
     </div>
-  </div>
-</footer>
+    <div class="col-1-5 hide-small">
+        <div class="tentacle">
+            <img src="/images/tentacle.svg" alt="Tentacle">
+        </div>
+    </div>
+</footer>
\ No newline at end of file
diff --git a/templates/layout/header.tpl b/templates/layout/header.tpl
index 3ab2453a..41659686 100644
--- a/templates/layout/header.tpl
+++ b/templates/layout/header.tpl
@@ -1,16 +1,16 @@
 <header>
-  <div class="row hide-small">
-    <div class="col-1-1 top">
-      <img class="header-image" src="/images/heroes{$heroes_num|rand:0}.png" alt="{#indexCharacters#}">
+    <div class="row hide-small">
+        <div class="col-1-1 top">
+            <img class="header-image" src="/images/heroes{$heroes_num|rand:0}.png" alt="{#indexCharacters#}">
+        </div>
     </div>
-  </div>
-  <div class="row topper">
-    <div class="col-1-2 col-sm-1">
-      <img class="logo maniac hide-small" src="/images/maniac-half.png" alt="Maniac Mansion kids">
-      <a href="{$baseurl|lang}"><img class="logo" src="/images/scummvm_logo.png" alt="{#indexLogo#}"></a>
+    <div class="row topper">
+        <div class="col-1-2 col-sm-1">
+            <img class="logo maniac hide-small" src="/images/maniac-half.png" alt="Maniac Mansion kids">
+            <a href="{$baseurl|lang}"><img class="logo" src="/images/scummvm_logo.png" alt="{#indexLogo#}"></a>
+        </div>
+        <div class="col-1-2 hide-small float_right">
+            <span class="scummvm float_right">Script Creation Utility for Maniac Mansion Virtual Machine</span>
+        </div>
     </div>
-    <div class="col-1-2 hide-small float_right">
-      <span class="scummvm float_right">Script Creation Utility for Maniac Mansion Virtual Machine</span>
-    </div>
-  </div>
-</header>
+</header>
\ No newline at end of file
diff --git a/templates/layout/menu.tpl b/templates/layout/menu.tpl
index 18aa2637..86644644 100644
--- a/templates/layout/menu.tpl
+++ b/templates/layout/menu.tpl
@@ -1,12 +1,12 @@
 <nav>
-  {foreach from=$menus item=menu}
-    {include file='components/menu_group.tpl' menu=$menu}
-  {/foreach}
+    {foreach from=$menus item=menu}
+        {include file='components/menu_group.tpl' menu=$menu}
+    {/foreach}
 
-  {include file='components/lang_menu.tpl'}
+    {include file='components/lang_menu.tpl'}
 </nav>
 
 <div class="menu-bottom hide-small">
-  <img src="/images/hangmonk.gif" alt="monkey" class="monkey float_right">
-  {include file='components/banners.tpl'}
-</div>
+    <img src="/images/hangmonk.gif" alt="monkey" class="monkey float_right">
+    {include file='components/banners.tpl'}
+</div>
\ No newline at end of file
diff --git a/templates/pages/compatibility.tpl b/templates/pages/compatibility.tpl
index 09a2eaec..1bb96e9a 100644
--- a/templates/pages/compatibility.tpl
+++ b/templates/pages/compatibility.tpl
@@ -1,90 +1,90 @@
 {capture "intro"}
-  <p>
-    {#compatibilityIntro#}
-  </p>
-  <p>
-    {#compatibilityIntroExplanation#}
-  </p>
-  {if $version == 'DEV'}
     <p>
-      {#compatibilityDevContent#}
-      <select name="versions" class="version-select">
-        {foreach from=$versions item=ver}
-          <option {($version==$ver) ? 'selected' : ''} value="{'/compatibility/'|lang}{$ver}/">{$ver}</option>
-        {/foreach}
-      </select>)
+        {#compatibilityIntro#}
     </p>
     <p>
-      {#compatibilityDevDisclaimer#}
+        {#compatibilityIntroExplanation#}
     </p>
-  {else}
+    {if $version == 'DEV'}
+        <p>
+            {#compatibilityDevContent#}
+            <select name="versions" class="version-select">
+                {foreach from=$versions item=ver}
+                    <option {($version==$ver) ? 'selected' : '' } value="{'/compatibility/'|lang}{$ver}/">{$ver}</option>
+                {/foreach}
+            </select>)
+        </p>
+        <p>
+            {#compatibilityDevDisclaimer#}
+        </p>
+    {else}
+        <p>
+            {'/\x7bversion\x7d/'|preg_replace:$version:#compatibilityStableContent#}
+        </p>
+        <p>
+            {#compatibilityStableReleases#}
+            <select name="versions" class="version-select">
+                {foreach from=$versions item=ver}
+                    <option {($version==$ver) ? 'selected' : '' } value="/compatibility/{$ver}/">{$ver}</option>
+                {/foreach}
+            </select>
+        </p>
+    {/if}
     <p>
-      {'/\x7bversion\x7d/'|preg_replace:$version:#compatibilityStableContent#}
+        <small>{#compatiblityLastUpdated#} {$last_updated|date_localized}</small>
     </p>
-    <p>
-      {#compatibilityStableReleases#}
-      <select name="versions" class="version-select">
-        {foreach from=$versions item=ver}
-          <option {($version==$ver) ? 'selected' : ''} value="/compatibility/{$ver}/">{$ver}</option>
-        {/foreach}
-      </select>
-    </p>
-  {/if}
-  <p>
-    <small>{#compatiblityLastUpdated#} {$last_updated|date_localized}</small>
-  </p>
 
-  <script>
+<script>
     document.querySelector('.version-select').addEventListener('change', (select) => {
-      location.href = select.target.value;
+        location.href = select.target.value;
     });
-  </script>
+</script>
 {/capture}
 
 {capture "content"}
-  <table class="chart color4 colorKeyTable">
+<table class="chart color4 colorKeyTable">
     <caption>{#compatibilityLegendTitle#}</caption>
     <tbody>
-      <tr class="color2">
-        {foreach from=$support_level_header key=level item=desc}
-          <td class={$support_level_class.$level} align='center'>{$desc}</td>
-        {/foreach}
-          <td class='updated' align='center'>Updated</td>
-      </tr>
+        <tr class="color2">
+            {foreach from=$support_level_header key=level item=desc}
+            <td class={$support_level_class.$level} align='center'>{$desc}</td>
+            {/foreach}
+            <td class='updated' align='center'>Updated</td>
+        </tr>
     </tbody>
-  </table>
+</table>
 
-  {foreach from=$compat_data key=company item=games name=compat_loop}
-    <table class="chart color4">
-      <caption>{'/\x7bcompany\x7d/'|preg_replace:$company:#compatibilitySectionTitle#}</caption>
-      <thead>
+{foreach from=$compat_data key=company item=games name=compat_loop}
+<table class="chart color4">
+    <caption>{'/\x7bcompany\x7d/'|preg_replace:$company:#compatibilitySectionTitle#}</caption>
+    <thead>
         <tr class="color4">
-          <th class="gameFullName">{#compatibilityDetailsChartCol1#}</th>
-          <th class="gameShortName">{#compatibilityDetailsChartCol2#}</th>
-          <th class="gameDatafiles">{#compatibilityDetailsChartCol3#}</th>
-          <th class="gameSupportLevel">{#compatibilityDetailsChartCol4#}</th>
+            <th class="gameFullName">{#compatibilityDetailsChartCol1#}</th>
+            <th class="gameShortName">{#compatibilityDetailsChartCol2#}</th>
+            <th class="gameDatafiles">{#compatibilityDetailsChartCol3#}</th>
+            <th class="gameSupportLevel">{#compatibilityDetailsChartCol4#}</th>
         </tr>
-      </thead>
-      <tbody>
-      {foreach from=$games item=game}
+    </thead>
+    <tbody>
+        {foreach from=$games item=game}
         {assign var="x" value=$game->getSupportLevel()}
         {assign var="pct_class" value=$support_level_class.$x}
         {assign var="support_level" value=$support_level_header.$x}
         <tr class="color{cycle values='2,0'}">
-          <td class="gameFullName"><a href="{'/compatibility/'|lang}{$version}/{$game->getGame()->getId()}/">{$game->getGame()->getName()}</a></td>
-          <td class="gameShortName">{$game->getGame()->getId()}</td>
-          <td class="gameDatafiles">
-          {if $game->getDatafiles()}
-            <a href="https://wiki.scummvm.org/index.php?title=Datafiles#{$game->getDatafiles()}">{#compatabilityDetailsDetails#}</a></td>
-          {else}
+            <td class="gameFullName"><a href="{'/compatibility/'|lang}{$version}/{$game->getGame()->getId()}/">{$game->getGame()->getName()}</a></td>
+            <td class="gameShortName">{$game->getGame()->getId()}</td>
+            <td class="gameDatafiles">
+                {if $game->getDatafiles()}
+                <a href="https://wiki.scummvm.org/index.php?title=Datafiles#{$game->getDatafiles()}">{#compatabilityDetailsDetails#}</a></td>
+            {else}
             ---
-          {/if}
-          <td class="gameSupportLevel {($game->getVersion() == $version) ? ' updated' : $pct_class}">{$support_level}</td>
+            {/if}
+            <td class="gameSupportLevel {($game->getVersion() == $version) ? ' updated' : $pct_class}">{$support_level}</td>
         </tr>
-      {/foreach}
-      </tbody>
-    </table>
-  {/foreach}
+        {/foreach}
+    </tbody>
+</table>
+{/foreach}
 {/capture}
 
-{include file="components/box.tpl" head=$content_title intro=$smarty.capture.intro content=$smarty.capture.content}
+{include file="components/box.tpl" head=$content_title intro=$smarty.capture.intro content=$smarty.capture.content}
\ No newline at end of file
diff --git a/templates/pages/contact.tpl b/templates/pages/contact.tpl
index b86d773d..33f63e53 100644
--- a/templates/pages/contact.tpl
+++ b/templates/pages/contact.tpl
@@ -1,27 +1,27 @@
 {capture "content"}
-  <div class="subhead">{#contactDiscordHeader#}</div>
-  <div class="subhead-content">
-    <p>{#contactDiscord#}</p>
-  </div>
+    <div class="subhead">{#contactDiscordHeader#}</div>
+    <div class="subhead-content">
+        <p>{#contactDiscord#}</p>
+    </div>
 
-  <div class="subhead">{#contactIRCHeader#}</div>
-  <div class="subhead-content">
+<div class="subhead">{#contactIRCHeader#}</div>
+<div class="subhead-content">
     <p>{#contactIRC#}</p>
-  </div>
+</div>
 
-  <div class="subhead">{#contactForumsHeader#}</div>
-  <div class="subhead-content">
+<div class="subhead">{#contactForumsHeader#}</div>
+<div class="subhead-content">
     <p>{#contactForums#}</p>
-  </div>
+</div>
 
-  <div class="subhead">{#contactTrackersHeader#}</div>
-  <div class="subhead-content">
+<div class="subhead">{#contactTrackersHeader#}</div>
+<div class="subhead-content">
     <p>{#contactTrackers#}</p>
-  </div>
+</div>
 
-  <div class="subhead">{#contactListsHeader#}</div>
-  <div class="subhead-content">
+<div class="subhead">{#contactListsHeader#}</div>
+<div class="subhead-content">
     <p>{#contactLists#}</p>
-  </div>
+</div>
 {/capture}
-{include file="components/box.tpl" head=$content_title intro=#contactIntro# content=$smarty.capture.content}
+{include file="components/box.tpl" head=$content_title intro=#contactIntro# content=$smarty.capture.content}
\ No newline at end of file
diff --git a/templates/pages/credits.tpl b/templates/pages/credits.tpl
index 12af2d86..7dda648c 100644
--- a/templates/pages/credits.tpl
+++ b/templates/pages/credits.tpl
@@ -1,53 +1,53 @@
 {capture "intro"}
-<div class="row">
-  <div class="navigation col-1-1">
-    <h4 class="subhead">{#screenshotsNavigation#}</h4>
-    <ul>
-      {foreach from=$credits item=csection}
-        {if $csection->getSubsections()|@count > 0}
-          {foreach from=$csection->getSubsections() item=subcsection}
-          <li><a href="{'/credits/'|lang}#{$subcsection->getAnchor()}">{$subcsection->getTitle()}</a></li>
-          {/foreach}
-        {else}
-          <li><a href="{'/credits/'|lang}#{$csection->getAnchor()}">{$csection->getTitle()}</a></li>
-        {/if}
-      {/foreach}
-    </ul>
-  </div>
-</div>
+    <div class="row">
+        <div class="navigation col-1-1">
+            <h4 class="subhead">{#screenshotsNavigation#}</h4>
+            <ul>
+                {foreach from=$credits item=csection}
+                    {if $csection->getSubsections()|@count > 0}
+                        {foreach from=$csection->getSubsections() item=subcsection}
+                            <li><a href="{'/credits/'|lang}#{$subcsection->getAnchor()}">{$subcsection->getTitle()}</a></li>
+                        {/foreach}
+                    {else}
+                        <li><a href="{'/credits/'|lang}#{$csection->getAnchor()}">{$csection->getTitle()}</a></li>
+                    {/if}
+                {/foreach}
+            </ul>
+        </div>
+    </div>
 {/capture}
 
 {foreach from=$credits item=csection name=credits}
-  {capture "content"}
-    {if $csection->getSubsections()|@count > 0}
-      {foreach from=$csection->getSubsections() item=subcsection}
-        <div class="subhead" id="{$subcsection->getAnchor()}">{$subcsection->getTitle()}</div>
-        <div class="subhead-content">
-          {include
-            file='components/credits_entry.tpl'
-            groups=$subcsection->getGroups()
-            paragraphs=$subcsection->getParagraphs()
-          }
-        </div>
-      {/foreach}
-      {* If the section itself has paragraphs, we must process them here. *}
-      {include
-        file='components/credits_entry.tpl'
-        paragraphs=$csection->getParagraphs()
-      }
-    {else}
-      {include
-        file='components/credits_entry.tpl'
-        groups=$csection->getGroups()
-        paragraphs=$csection->getParagraphs()
-      }
-    {/if}
-  {/capture}
+{capture "content"}
+{if $csection->getSubsections()|@count > 0}
+{foreach from=$csection->getSubsections() item=subcsection}
+<div class="subhead" id="{$subcsection->getAnchor()}">{$subcsection->getTitle()}</div>
+<div class="subhead-content">
+    {include
+    file='components/credits_entry.tpl'
+    groups=$subcsection->getGroups()
+    paragraphs=$subcsection->getParagraphs()
+    }
+</div>
+{/foreach}
+{* If the section itself has paragraphs, we must process them here. *}
+{include
+file='components/credits_entry.tpl'
+paragraphs=$csection->getParagraphs()
+}
+{else}
+{include
+file='components/credits_entry.tpl'
+groups=$csection->getGroups()
+paragraphs=$csection->getParagraphs()
+}
+{/if}
+{/capture}
 
-  {if $smarty.foreach.credits.first}
-    {include file="components/box.tpl" head=$csection->getTitle() id=$csection->getAnchor() intro=$smarty.capture.intro content=$smarty.capture.content}
-  {else}
-    {include file="components/box.tpl" head=$csection->getTitle() id=$csection->getAnchor() content=$smarty.capture.content}
-  {/if}
+{if $smarty.foreach.credits.first}
+{include file="components/box.tpl" head=$csection->getTitle() id=$csection->getAnchor() intro=$smarty.capture.intro content=$smarty.capture.content}
+{else}
+{include file="components/box.tpl" head=$csection->getTitle() id=$csection->getAnchor() content=$smarty.capture.content}
+{/if}
 
-{/foreach}
+{/foreach}
\ No newline at end of file
diff --git a/templates/pages/documentation.tpl b/templates/pages/documentation.tpl
index 66778fec..6259dddd 100644
--- a/templates/pages/documentation.tpl
+++ b/templates/pages/documentation.tpl
@@ -1,10 +1,10 @@
 {capture "content"}
-{foreach from=$documents item=document}
-<p>
-  <a href="{eval var=$document->getURL()}">{eval var=$document->getName()}</a><br>
-  {eval var=$document->getDescription()}
-</p>
-{/foreach}
+    {foreach from=$documents item=document}
+        <p>
+            <a href="{eval var=$document->getURL()}">{eval var=$document->getName()}</a><br>
+            {eval var=$document->getDescription()}
+        </p>
+    {/foreach}
 {/capture}
 
-{include file="components/box.tpl" head=$content_title intro=#documentationIntro# content=$smarty.capture.content}
+{include file="components/box.tpl" head=$content_title intro=#documentationIntro# content=$smarty.capture.content}
\ No newline at end of file
diff --git a/templates/pages/downloads.tpl b/templates/pages/downloads.tpl
index e876ec0c..544a198c 100644
--- a/templates/pages/downloads.tpl
+++ b/templates/pages/downloads.tpl
@@ -1,59 +1,59 @@
 {capture "intro"}
-<div class="row">
-	<div class="navigation col-1-2 col-md-1">
-		<h4 class="subhead">{#downloadsHeader#}</h4>
-		<ul>
-			{foreach from=$sections item=arr}
-			<li><a href="{'/downloads/'|lang}#{$arr.anchor}">{eval var=$arr.title}</a></li>
-			{/foreach}
-		</ul>
-	</div>
-	<div class="text col-1-2 col-md-1">
-		<p>{'/\x7brelease\x7d/'|preg_replace:$release:#downloadsContentP1#}</p>
-		<ul>
-			<li>{'/\x7brelease\x7d/'|preg_replace:$release:#downloadsContentP2#}</li>
-			<li>{#downloadsContentP3#}</li>
-			<li>{#downloadsContentP4#}</li>
-		</ul>
-	</div>
-</div>
+    <div class="row">
+        <div class="navigation col-1-2 col-md-1">
+            <h4 class="subhead">{#downloadsHeader#}</h4>
+            <ul>
+                {foreach from=$sections item=arr}
+                    <li><a href="{'/downloads/'|lang}#{$arr.anchor}">{eval var=$arr.title}</a></li>
+                {/foreach}
+            </ul>
+        </div>
+        <div class="text col-1-2 col-md-1">
+            <p>{'/\x7brelease\x7d/'|preg_replace:$release:#downloadsContentP1#}</p>
+            <ul>
+                <li>{'/\x7brelease\x7d/'|preg_replace:$release:#downloadsContentP2#}</li>
+                <li>{#downloadsContentP3#}</li>
+                <li>{#downloadsContentP4#}</li>
+            </ul>
+        </div>
+    </div>
 {/capture}
 
 {foreach from=$downloads item=dsection name=downloads_loop}
 
-  {capture "content"}
-    {if $smarty.foreach.downloads_loop.first}
-      {include
-        file="components/recommended_download.tpl"
-        recommendedDownload=$recommendedDownload
-      }
-    {/if}
-
-    {foreach from=$dsection->getSubSections() item=dsubsection}
-    {if $dsubsection->getTitle() != ''}
-      <div class="subhead" id="{if $dsubsection->getAnchor() != ''}{$dsubsection->getAnchor()}{/if}">{eval var=$dsubsection->getTitle()}</div>
-    {/if}
+{capture "content"}
+{if $smarty.foreach.downloads_loop.first}
+{include
+file="components/recommended_download.tpl"
+recommendedDownload=$recommendedDownload
+}
+{/if}
 
-      <div class="subhead-content">
-        {if $dsubsection->getNotes() != ''} {'/\x7brelease\x7d/'|preg_replace:$release:{eval var=$dsubsection->getNotes()}} {/if} {include file='components/list_items.tpl' list=$dsubsection->getItems() type='platforms'}
-      </div>
-    {/foreach}
-  {/capture}
+{foreach from=$dsection->getSubSections() item=dsubsection}
+{if $dsubsection->getTitle() != ''}
+<div class="subhead" id="{if $dsubsection->getAnchor() != ''}{$dsubsection->getAnchor()}{/if}">{eval var=$dsubsection->getTitle()}</div>
+{/if}
 
-  {if $smarty.foreach.downloads_loop.first}
-    {include
-      file="components/box.tpl"
-      head={eval var=$dsection->getTitle()}
-      intro=$smarty.capture.intro
-      id=$dsection->getAnchor()
-      content=$smarty.capture.content
-    }
-  {else}
-    {include
-      file="components/box.tpl"
-      head={eval var=$dsection->getTitle()}
-      content=$smarty.capture.content
-      id=$dsection->getAnchor()
-    }
-  {/if}
+<div class="subhead-content">
+    {if $dsubsection->getNotes() != ''} {'/\x7brelease\x7d/'|preg_replace:$release:{eval var=$dsubsection->getNotes()}} {/if} {include file='components/list_items.tpl' list=$dsubsection->getItems() type='platforms'}
+</div>
 {/foreach}
+{/capture}
+
+{if $smarty.foreach.downloads_loop.first}
+{include
+file="components/box.tpl"
+head={eval var=$dsection->getTitle()}
+intro=$smarty.capture.intro
+id=$dsection->getAnchor()
+content=$smarty.capture.content
+}
+{else}
+{include
+file="components/box.tpl"
+head={eval var=$dsection->getTitle()}
+content=$smarty.capture.content
+id=$dsection->getAnchor()
+}
+{/if}
+{/foreach}
\ No newline at end of file
diff --git a/templates/pages/faq.tpl b/templates/pages/faq.tpl
index d65759d9..c19d6489 100644
--- a/templates/pages/faq.tpl
+++ b/templates/pages/faq.tpl
@@ -1,39 +1,39 @@
 {capture "intro"}
-<div>{#faqLastUpdated#} {$modified}</div>
-<dl>
-  {foreach from=$contents item=section name='toc_loop'}
-    {assign var='toc_num' value=$smarty.foreach.toc_loop.iteration}
-    <dt>{$toc_num}. <a href="{'/faq/'|lang}#{$toc_num}">{$section->getTitle()}</a></dt>
-    <dd>
-      <dl>
-      {foreach from=$section->getTOC() key=href item=name name='toc_section_loop'}
-        {assign var='toc_section_num' value=$smarty.foreach.toc_section_loop.iteration}
-        <dt>{$toc_num}.{$toc_section_num}. <a href="{'/faq/'|lang}#{$toc_num}_{$toc_section_num}">{$name}</a></dt>
-      {/foreach}
-      </dl>
-    </dd>
-  {/foreach}
-</dl>
+    <div>{#faqLastUpdated#} {$modified}</div>
+    <dl>
+        {foreach from=$contents item=section name='toc_loop'}
+            {assign var='toc_num' value=$smarty.foreach.toc_loop.iteration}
+            <dt>{$toc_num}. <a href="{'/faq/'|lang}#{$toc_num}">{$section->getTitle()}</a></dt>
+            <dd>
+                <dl>
+                    {foreach from=$section->getTOC() key=href item=name name='toc_section_loop'}
+                        {assign var='toc_section_num' value=$smarty.foreach.toc_section_loop.iteration}
+                        <dt>{$toc_num}.{$toc_section_num}. <a href="{'/faq/'|lang}#{$toc_num}_{$toc_section_num}">{$name}</a></dt>
+                    {/foreach}
+                </dl>
+            </dd>
+        {/foreach}
+    </dl>
 {/capture}
 
 {capture "content"}
 {foreach from=$contents item=section name='section_loop'}
-			{assign var='section_num' value=$smarty.foreach.section_loop.iteration}
-			<div class="section">
-				<h3 class="title" id="{$section_num}">{$section_num}. {$section->getTitle()}</h3>
-				<dl>
-					{foreach from=$section->getTOC() key=href item=name name='question_loop'}
-						{assign var='question_num' value=$smarty.foreach.question_loop.iteration}
-						<dt>{$section_num}.{$question_num}. <a href="{'/faq/'|lang}#{$section_num}_{$question_num}">{$name}</a></dt>
-					{/foreach}
-				</dl>
-				{foreach from=$section->getEntries() item=entry name='entry_loop'}
-					{assign var='entry_num' value=$smarty.foreach.entry_loop.iteration}
-					<div class="question" id="{$section_num}_{$entry_num}">{$section_num}.{$entry_num}.
-						{$entry->getQuestion()}</div>
-					<div class="answer">{$entry->getAnswer()}</div>
-				{/foreach}
-			</div>
-		{/foreach}
+{assign var='section_num' value=$smarty.foreach.section_loop.iteration}
+<div class="section">
+    <h3 class="title" id="{$section_num}">{$section_num}. {$section->getTitle()}</h3>
+    <dl>
+        {foreach from=$section->getTOC() key=href item=name name='question_loop'}
+        {assign var='question_num' value=$smarty.foreach.question_loop.iteration}
+        <dt>{$section_num}.{$question_num}. <a href="{'/faq/'|lang}#{$section_num}_{$question_num}">{$name}</a></dt>
+        {/foreach}
+    </dl>
+    {foreach from=$section->getEntries() item=entry name='entry_loop'}
+    {assign var='entry_num' value=$smarty.foreach.entry_loop.iteration}
+    <div class="question" id="{$section_num}_{$entry_num}">{$section_num}.{$entry_num}.
+        {$entry->getQuestion()}</div>
+    <div class="answer">{$entry->getAnswer()}</div>
+    {/foreach}
+</div>
+{/foreach}
 {/capture}
-{include file="components/box.tpl" head=#faqHeading# intro=$smarty.capture.intro content=$smarty.capture.content}
+{include file="components/box.tpl" head=#faqHeading# intro=$smarty.capture.intro content=$smarty.capture.content}
\ No newline at end of file
diff --git a/templates/pages/feed_atom.tpl b/templates/pages/feed_atom.tpl
index 715cedb1..03a9289e 100644
--- a/templates/pages/feed_atom.tpl
+++ b/templates/pages/feed_atom.tpl
@@ -3,33 +3,37 @@
 {assign var='updated' value=$news[0]->getDate()-$timezone_offset}
 <?xml version="1.0" encoding="UTF-8" ?>
 <feed xml:lang="{$lang}" xmlns="http://www.w3.org/2005/Atom">
-	<id>{$baseurl|lang}</id>
-	<link rel="alternate" type="text/html" href="{$baseurl|lang}" />
-	<link rel="self" type="application/atom+xml" href="{$baseurl|lang}feeds/atom/" />
-	<title type="text">{#feedAtomTitle#}</title>
-	<subtitle type="html"><![CDATA[{#feedAtomDescription#}]]></subtitle>
-	<icon>{$baseurl}favicon.ico</icon>
-	<author>
-		<name>ScummVM team</name>
-		<uri>{$baseurl|lang}/</uri>
-	</author>
-	<updated>{$updated|date_format:'Y-m-d\TH:i:s\Z'}</updated>
-	{foreach from=$news item=n}
-		{assign var='timezone_offset' value=$n->getDate()|date_format:'Z'}
-		{assign var='updated' value=$n->getDate()-$timezone_offset}
-		{assign var='news_filename' value=$n->getFilename()|substr:'0':'-5'}
-    {assign var='link' value=$n->getLink()}
+    <id>{$baseurl|lang}</id>
+    <link rel="alternate" type="text/html" href="{$baseurl|lang}" />
+    <link rel="self" type="application/atom+xml" href="{$baseurl|lang}feeds/atom/" />
+    <title type="text">{#feedAtomTitle#}</title>
+    <subtitle type="html">
+        <![CDATA[{#feedAtomDescription#}]]>
+    </subtitle>
+    <icon>{$baseurl}favicon.ico</icon>
+    <author>
+        <name>ScummVM team</name>
+        <uri>{$baseurl|lang}/</uri>
+    </author>
+    <updated>{$updated|date_format:'Y-m-d\TH:i:s\Z'}</updated>
+    {foreach from=$news item=n}
+        {assign var='timezone_offset' value=$n->getDate()|date_format:'Z'}
+        {assign var='updated' value=$n->getDate()-$timezone_offset}
+        {assign var='news_filename' value=$n->getFilename()|substr:'0':'-5'}
+        {assign var='link' value=$n->getLink()}
 
-		<entry xml:lang="{$lang}">
-			<id>{$baseurl|lang}news/archive/#{$n->getDate()|date_format:'Y-m-d'}{if $news_filename|strlen == 9}{$news_filename|substr:'-1'}{/if}</id>
-			<link rel="alternate" href="{$link|lang}" />
-			<updated>{$updated|date_format:'Y-m-d\TH:i:s\Z'}</updated>
-			<published>{$updated|date_format:'Y-m-d\TH:i:s\Z'}</published>
-			<title type="html">{htmlspecialchars($n->getTitle())}</title>
-			<content type="html" xml:base="{$baseurl|lang}">{htmlspecialchars($n->getContent())}</content>
-			{if $n->getAuthor() != ''}
-			<author><name>{$n->getAuthor()}</name></author>
-			{/if}
-		</entry>
-	{/foreach}
-</feed>
+    <entry xml:lang="{$lang}">
+        <id>{$baseurl|lang}news/archive/#{$n->getDate()|date_format:'Y-m-d'}{if $news_filename|strlen == 9}{$news_filename|substr:'-1'}{/if}</id>
+        <link rel="alternate" href="{$link|lang}" />
+        <updated>{$updated|date_format:'Y-m-d\TH:i:s\Z'}</updated>
+        <published>{$updated|date_format:'Y-m-d\TH:i:s\Z'}</published>
+        <title type="html">{htmlspecialchars($n->getTitle())}</title>
+        <content type="html" xml:base="{$baseurl|lang}">{htmlspecialchars($n->getContent())}</content>
+        {if $n->getAuthor() != ''}
+        <author>
+            <name>{$n->getAuthor()}</name>
+        </author>
+        {/if}
+    </entry>
+    {/foreach}
+</feed>
\ No newline at end of file
diff --git a/templates/pages/feed_rss.tpl b/templates/pages/feed_rss.tpl
index 39f04d4b..3e518524 100644
--- a/templates/pages/feed_rss.tpl
+++ b/templates/pages/feed_rss.tpl
@@ -1,23 +1,23 @@
 <?xml version='1.0' encoding='UTF-8' ?>
 <rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom">
-	<channel>
-		<title>{#feedRSSTitle#}</title>
-		<link>{$baseurl|lang}</link>
-		<atom:link rel="self" type="application/rss+xml" href="{$baseurl|lang}feeds/rss/" />
-		<description>{#feedRSSDescription#}</description>
-		<language>{$lang}</language>
-		{foreach from=$news item=n}
-		{assign var='news_filename' value=$n->getFilename()|substr:'0':'-4'}
-		<item>
-			<title>{htmlspecialchars($n->getTitle())}</title>
-			<description>{htmlspecialchars($n->getContent())}></description>
-			<pubDate>{$n->getDate()|date_format:'r'}</pubDate>
-			{if $n->getAuthor() != ''}
-			<author>nospam at scummvm.org ({$n->getAuthor()})</author>
-			{/if}
-			<guid isPermaLink='true'>{$baseurl|lang}news/archive/#{$n->getDate()|date_format:'Y-m-d'}{if $news_filename|strlen == 9}{$news_filename|substr:'-1'}{/if}</guid>
-			<link>{$n->getLink()|lang}/</link>
-		</item>
-		{/foreach}
-	</channel>
-</rss>
+    <channel>
+        <title>{#feedRSSTitle#}</title>
+        <link>{$baseurl|lang}</link>
+        <atom:link rel="self" type="application/rss+xml" href="{$baseurl|lang}feeds/rss/" />
+        <description>{#feedRSSDescription#}</description>
+        <language>{$lang}</language>
+        {foreach from=$news item=n}
+            {assign var='news_filename' value=$n->getFilename()|substr:'0':'-4'}
+            <item>
+                <title>{htmlspecialchars($n->getTitle())}</title>
+                <description>{htmlspecialchars($n->getContent())}></description>
+                <pubDate>{$n->getDate()|date_format:'r'}</pubDate>
+                {if $n->getAuthor() != ''}
+                    <author>nospam at scummvm.org ({$n->getAuthor()})</author>
+                {/if}
+                <guid isPermaLink='true'>{$baseurl|lang}news/archive/#{$n->getDate()|date_format:'Y-m-d'}{if $news_filename|strlen == 9}{$news_filename|substr:'-1'}{/if}</guid>
+                <link>{$n->getLink()|lang}/</link>
+            </item>
+        {/foreach}
+    </channel>
+</rss>
\ No newline at end of file
diff --git a/templates/pages/game_demos.tpl b/templates/pages/game_demos.tpl
index 1c513623..b3379608 100644
--- a/templates/pages/game_demos.tpl
+++ b/templates/pages/game_demos.tpl
@@ -1,55 +1,55 @@
 <script type="text/javascript" src="/js/game_demos.js"></script>
 
 {capture "intro"}
-  <div class="row">
-		<div class="navigation col-1-2 col-md-1">
-			<h4 class="subhead">{#gamesDemosHeading#}</h4>
-			<ul>
-			{foreach $demos $group}
-				<li><a href="{'/demos/'|lang}#{$group.href}">{$group.name}</a></li>
-			{/foreach}
-			</ul>
-		</div>
-		<div class="text col-1-2 col-md-1">
-			<p>
-				{#gamesDemosContentP1#}
-			</p>
-			<p>
-				{#gamesDemosContentP2#}
-			</p>
-		</div>
-	</div>
+<div class="row">
+    <div class="navigation col-1-2 col-md-1">
+        <h4 class="subhead">{#gamesDemosHeading#}</h4>
+        <ul>
+            {foreach $demos $group}
+            <li><a href="{'/demos/'|lang}#{$group.href}">{$group.name}</a></li>
+            {/foreach}
+        </ul>
+    </div>
+    <div class="text col-1-2 col-md-1">
+        <p>
+            {#gamesDemosContentP1#}
+        </p>
+        <p>
+            {#gamesDemosContentP2#}
+        </p>
+    </div>
+</div>
 {/capture}
 
 {capture "content"}
-  {foreach $demos as $group}
-  <table class="chart color4 gameDemos" id="{$group.href}">
+{foreach $demos as $group}
+<table class="chart color4 gameDemos" id="{$group.href}">
     <caption>{$group.name}</caption>
     <thead>
-      <tr class="color4">
-        <th>{#gamesDemosH1#}</th>
-        <th class="gameTarget">{#gamesDemosH2#}</th>
-      </tr>
+        <tr class="color4">
+            <th>{#gamesDemosH1#}</th>
+            <th class="gameTarget">{#gamesDemosH2#}</th>
+        </tr>
     </thead>
     <tbody>
-    {foreach $group.demos as $i => $demo}
-      {if $demo at first}
+        {foreach $group.demos as $i => $demo}
+        {if $demo at first}
         {$collapse = ''}
-      {elseif $group.demos[$i]->getId() == $group.demos[$i-1]->getId()}
+        {elseif $group.demos[$i]->getId() == $group.demos[$i-1]->getId()}
         {$collapse = 'collapse'}
-      {else}
+        {else}
         {$collapse = ''}
-      {/if}
-      <tr class="{if $collapse}{$collapse}{else}{cycle values="color2, color0"}{/if}">
-        <td>
-          <a href="{$demo->getURL()}">{$demo->getName()}</a>
-        </td>
-        <td class="gameTarget">{$demo->getId()}</td>
-      </tr>
-    {/foreach}
+        {/if}
+        <tr class="{if $collapse}{$collapse}{else}{cycle values="color2, color0"}{/if}">
+            <td>
+                <a href="{$demo->getURL()}">{$demo->getName()}</a>
+            </td>
+            <td class="gameTarget">{$demo->getId()}</td>
+        </tr>
+        {/foreach}
     </tbody>
-  </table>
-  {/foreach}
+</table>
+{/foreach}
 {/capture}
 
-{include file="components/box.tpl" head=$content_title intro=$smarty.capture.intro content=$smarty.capture.content}
+{include file="components/box.tpl" head=$content_title intro=$smarty.capture.intro content=$smarty.capture.content}
\ No newline at end of file
diff --git a/templates/pages/games.tpl b/templates/pages/games.tpl
index 90a3bffd..bf975c40 100644
--- a/templates/pages/games.tpl
+++ b/templates/pages/games.tpl
@@ -1,55 +1,55 @@
 {capture "intro"}
-  <div class="row">
-    <div class="navigation col-1-2 col-md-1">
-      <h4 class="subhead">{#gamesHeader#}</h4>
-      <ul>
-      {foreach from=$sections item=arr}
-        <li><a href="{'/games/'|lang}#{$arr.anchor}">{eval var=$arr.title}</a></li>
-      {/foreach}
-      </ul>
+    <div class="row">
+        <div class="navigation col-1-2 col-md-1">
+            <h4 class="subhead">{#gamesHeader#}</h4>
+            <ul>
+                {foreach from=$sections item=arr}
+                    <li><a href="{'/games/'|lang}#{$arr.anchor}">{eval var=$arr.title}</a></li>
+                {/foreach}
+            </ul>
+        </div>
+        <div class="text col-1-2 col-md-1">
+            <ul>
+                <li>{#gamesContentP1#}</li>
+                <li>{#gamesContentP2#}</li>
+            </ul>
+        </div>
     </div>
-    <div class="text col-1-2 col-md-1">
-      <ul>
-        <li>{#gamesContentP1#}</li>
-        <li>{#gamesContentP2#}</li>
-      </ul>
-    </div>
-  </div>
 {/capture}
 
 {foreach from=$downloads item=dsection name=downloads_loop}
 
-  {capture "content"}
-   {foreach from=$dsection->getSubSections() item=dsubsection}
-			{if $dsubsection->getTitle() != ''}
-				<div class="subhead" id="{if $dsubsection->getAnchor() != ''}{$dsubsection->getAnchor()}{/if}">{eval var=$dsubsection->getTitle()}</div>
-			{/if}
+{capture "content"}
+{foreach from=$dsection->getSubSections() item=dsubsection}
+{if $dsubsection->getTitle() != ''}
+<div class="subhead" id="{if $dsubsection->getAnchor() != ''}{$dsubsection->getAnchor()}{/if}">{eval var=$dsubsection->getTitle()}</div>
+{/if}
 
-			<div class="subhead-content">
-				{if $dsubsection->getNotes() != ''}
-					<p>{eval var=$dsubsection->getNotes()}</p>
-				{/if}
+<div class="subhead-content">
+    {if $dsubsection->getNotes() != ''}
+    <p>{eval var=$dsubsection->getNotes()}</p>
+    {/if}
 
-				{include file='components/list_items.tpl' list=$dsubsection->getItems() type='games'}
-			</div>
-		{/foreach}
-  {/capture}
+    {include file='components/list_items.tpl' list=$dsubsection->getItems() type='games'}
+</div>
+{/foreach}
+{/capture}
 
-  {if $smarty.foreach.downloads_loop.first}
-    {include
-      file="components/box.tpl"
-      head={eval var=$dsection->getTitle()}
-      intro=$smarty.capture.intro
-      id=$dsection->getAnchor()
-      content=$smarty.capture.content
-    }
-  {else}
-    {include
-      file="components/box.tpl"
-      head={eval var=$dsection->getTitle()}
-      id=$dsection->getAnchor()
-      content=$smarty.capture.content
-    }
-  {/if}
+{if $smarty.foreach.downloads_loop.first}
+{include
+file="components/box.tpl"
+head={eval var=$dsection->getTitle()}
+intro=$smarty.capture.intro
+id=$dsection->getAnchor()
+content=$smarty.capture.content
+}
+{else}
+{include
+file="components/box.tpl"
+head={eval var=$dsection->getTitle()}
+id=$dsection->getAnchor()
+content=$smarty.capture.content
+}
+{/if}
 
-{/foreach}
+{/foreach}
\ No newline at end of file
diff --git a/templates/pages/index.tpl b/templates/pages/index.tpl
index a574a164..d164577e 100644
--- a/templates/pages/index.tpl
+++ b/templates/pages/index.tpl
@@ -1,146 +1,157 @@
 <!DOCTYPE html>
 <html lang="{$lang}">
+
 <head>
-	<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-	<meta name="viewport" content="width=device-width, initial-scale=1">
-	<meta name="referrer" content="no-referrer">
-  	<base href="{$baseurl|lang}">
-  	<link rel="alternate" type="application/atom+xml" title="{#indexAtomFeed#}" href="{$baseurl|lang}/feeds/atom/">
-	<link rel="alternate" type="application/rss+xml" title="{#indexRSSFeed#}" href="{$baseurl|lang}/feeds/rss/">
-	<title>ScummVM :: {$title}</title>
-	<!-- Favicon -->
-	<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png?v=oLBEjaJ9ag">
-	<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png?v=oLBEjaJ9ag">
-	<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png?v=oLBEjaJ9ag">
-	<link rel="manifest" href="/site.webmanifest?v=oLBEjaJ9ag">
-	<link rel="mask-icon" href="/safari-pinned-tab.svg?v=oLBEjaJ9ag" color="#046c00">
-	<link rel="shortcut icon" href="/favicon.ico?v=oLBEjaJ9ag">
-	<meta name="apple-mobile-web-app-title" content="ScummVM">
-	<meta name="application-name" content="ScummVM">
-	<meta name="msapplication-TileColor" content="#cc6600">
-	<meta name="theme-color" content="#cc6600">
-	<!-- OpenGraph -->
-	<meta property="og:image:width" content="1200">
-	<meta property="og:image:height" content="630">
-	<meta property="og:title" content="ScummVM">
-	<meta property="og:description" content="ScummVM is a collection of game engines for playing classic graphical RPGs and point-and-click adventure games on modern hardware.">
-	<meta property="og:url" content="{'https://www.scummvm.org'|lang}">
-	<meta property="og:image" content="https://www.scummvm.org/images/og-image.jpg">
-	<!-- Translations -->
-	{foreach from=$available_languages key=key item=item}
-	{if $lang != $key}
-    	<link rel="alternate" hreflang="{$key}" href="{$baseurl}{$key}{$pageurl}">
-	{/if}
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+    <meta name="referrer" content="no-referrer">
+    <base href="{$baseurl|lang}">
+    <link rel="alternate" type="application/atom+xml" title="{#indexAtomFeed#}" href="{$baseurl|lang}/feeds/atom/">
+    <link rel="alternate" type="application/rss+xml" title="{#indexRSSFeed#}" href="{$baseurl|lang}/feeds/rss/">
+    <title>ScummVM :: {$title}</title>
+    <!-- Favicon -->
+    <link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png?v=oLBEjaJ9ag">
+    <link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png?v=oLBEjaJ9ag">
+    <link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png?v=oLBEjaJ9ag">
+    <link rel="manifest" href="/site.webmanifest?v=oLBEjaJ9ag">
+    <link rel="mask-icon" href="/safari-pinned-tab.svg?v=oLBEjaJ9ag" color="#046c00">
+    <link rel="shortcut icon" href="/favicon.ico?v=oLBEjaJ9ag">
+    <meta name="apple-mobile-web-app-title" content="ScummVM">
+    <meta name="application-name" content="ScummVM">
+    <meta name="msapplication-TileColor" content="#cc6600">
+    <meta name="theme-color" content="#cc6600">
+    <!-- OpenGraph -->
+    <meta property="og:image:width" content="1200">
+    <meta property="og:image:height" content="630">
+    <meta property="og:title" content="ScummVM">
+    <meta property="og:description" content="ScummVM is a collection of game engines for playing classic graphical RPGs and point-and-click adventure games on modern hardware.">
+    <meta property="og:url" content="{'https://www.scummvm.org'|lang}">
+    <meta property="og:image" content="https://www.scummvm.org/images/og-image.jpg">
+    <!-- Translations -->
+    {foreach from=$available_languages key=key item=item}
+    {if $lang != $key}
+    <link rel="alternate" hreflang="{$key}" href="{$baseurl}{$key}{$pageurl}">
+    {/if}
+    {/foreach}
+    {* Cache bust CSS if making major changes *}
+    {$css = "2.0.0"}
+    <link rel="stylesheet" href="/css/main_{($rtl) ? 'rtl' : 'ltr'}.css?v={$css}">
+    {* Page specific, or other extra CSS rules. *}
+    {foreach from=$css_files item=filename}
+    <link rel="stylesheet" href="/css/{$filename}">
     {/foreach}
-	{* Cache bust CSS if making major changes *}
-	{$css = "2.0.0"}
-	<link rel="stylesheet" href="/css/main_{($rtl) ? 'rtl' : 'ltr'}.css?v={$css}">
-	{* Page specific, or other extra CSS rules. *}
-	{foreach from=$css_files item=filename}
-	<link rel="stylesheet" href="/css/{$filename}">
-	{/foreach}
 
-	{if $smarty.cookies.cookie_consent == "true"}
-		<!-- Matomo -->
-		<script type="text/javascript">
-		var _paq = _paq || [];
-		/* tracker methods like "setCustomDimension" should be called before "trackPageView" */
-		_paq.push(["setCookieDomain", "*.scummvm.org"]);
-		_paq.push(['trackPageView']);
-		_paq.push(['enableLinkTracking']);
-		(function() {
-			var u="https://analytics.scummvm.org/";
-			_paq.push(['setTrackerUrl', u+'piwik.php']);
-			_paq.push(['setSiteId', '1']);
-			var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
-			g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'piwik.js'; s.parentNode.insertBefore(g,s);
-		})();
-		</script>
-		<noscript><p><img src="https://analytics.scummvm.org/piwik.php?idsite=1&rec=1" style="border:0;" alt="" /></p></noscript>
-		<!-- End Matomo Code -->
-	{/if}
+    {if $smarty.cookies.cookie_consent == "true"}
+    <!-- Matomo -->
+    <script type="text/javascript">
+        var _paq = _paq || [];
+        /* tracker methods like "setCustomDimension" should be called before "trackPageView" */
+        _paq.push(["setCookieDomain", "*.scummvm.org"]);
+        _paq.push(['trackPageView']);
+        _paq.push(['enableLinkTracking']);
+        (function() {
+            var u = "https://analytics.scummvm.org/";
+            _paq.push(['setTrackerUrl', u + 'piwik.php']);
+            _paq.push(['setSiteId', '1']);
+            var d = document,
+                g = d.createElement('script'),
+                s = d.getElementsByTagName('script')[0];
+            g.type = 'text/javascript';
+            g.async = true;
+            g.defer = true;
+            g.src = u + 'piwik.js';
+            s.parentNode.insertBefore(g, s);
+        })();
+    </script>
+    <noscript>
+        <p><img src="https://analytics.scummvm.org/piwik.php?idsite=1&rec=1" style="border:0;" alt="" /></p>
+    </noscript>
+    <!-- End Matomo Code -->
+    {/if}
 </head>
+
 <body>
-	<input type="checkbox" autocomplete="off" id="nav-trigger" class="nav-trigger" />
-	<label for="nav-trigger"></label>
+    <input type="checkbox" autocomplete="off" id="nav-trigger" class="nav-trigger" />
+    <label for="nav-trigger"></label>
 
-	<div class="site-wrap">
-		{* Header. *}
-		<header class="site-header">
-			<div class="logo">
-					<img class="background hide-small" src="/images/maniac-half.png" alt="Maniac Mansion kids">
-					<a href="{$baseurl|lang}">
-						<img class="foreground" src="/images/scummvm_logo.png" alt="{#indexLogo#}">
-					</a>
-			</div>
-			<div class="row top">
-				<div class="col-1-1">
-					<img class="heroes hide-small" src="/images/heroes{$heroes_num|rand:0}.png" alt="{#indexCharacters#}">
-				</div>
-			</div>
-			<div class="row bottom hide-small">
-				<div class="col-1-1">
-					<span class="scummvm float_right">Script Creation Utility for Maniac Mansion Virtual Machine</span>
-				</div>
-			</div>
-		</header>
+    <div class="site-wrap">
+        {* Header. *}
+        <header class="site-header">
+            <div class="logo">
+                <img class="background hide-small" src="/images/maniac-half.png" alt="Maniac Mansion kids">
+                <a href="{$baseurl|lang}">
+                    <img class="foreground" src="/images/scummvm_logo.png" alt="{#indexLogo#}">
+                </a>
+            </div>
+            <div class="row top">
+                <div class="col-1-1">
+                    <img class="heroes hide-small" src="/images/heroes{$heroes_num|rand:0}.png" alt="{#indexCharacters#}">
+                </div>
+            </div>
+            <div class="row bottom hide-small">
+                <div class="col-1-1">
+                    <span class="scummvm float_right">Script Creation Utility for Maniac Mansion Virtual Machine</span>
+                </div>
+            </div>
+        </header>
 
-		{* Content *}
-		<div class="container row">
-			<div class="col-4-5 col-sm-1">
+        {* Content *}
+        <div class="container row">
+            <div class="col-4-5 col-sm-1">
                 <div class="content">
-					{* Introduction text and screenshot viewer. *}
-					{if isset($show_intro) && $show_intro}
-						{include file='components/intro_header.tpl'}
-					{/if}
+                    {* Introduction text and screenshot viewer. *}
+                    {if isset($show_intro) && $show_intro}
+                    {include file='components/intro_header.tpl'}
+                    {/if}
 
-					{* The actual content. *}
-					{include file='components/roundbox.tpl' header=$content_title content=$content}
-				</div>
-			</div>
+                    {* The actual content. *}
+                    {include file='components/roundbox.tpl' header=$content_title content=$content}
+                </div>
+            </div>
 
-			{* Menu. *}
-			<div class="col-1-5 col-sm-1">
-        {include file='layout/menu.tpl'}
-			</div>
-		</div>
-		<footer class="row">
-			<div class="col-4-5 col-sm-1">
-				{#indexLegal#}
-			</div>
-			<div class="col-1-5 hide-small">
-				<div class="tentacle">
-					<img src="/images/tentacle.svg" alt="Tentacle">
-				</div>
-			</div>
-		</footer>
-	</div>
+            {* Menu. *}
+            <div class="col-1-5 col-sm-1">
+                {include file='layout/menu.tpl'}
+            </div>
+        </div>
+        <footer class="row">
+            <div class="col-4-5 col-sm-1">
+                {#indexLegal#}
+            </div>
+            <div class="col-1-5 hide-small">
+                <div class="tentacle">
+                    <img src="/images/tentacle.svg" alt="Tentacle">
+                </div>
+            </div>
+        </footer>
+    </div>
+
+    {foreach from=$js_files item=script}
+    <script src="/js/{$script}"></script>
+    {/foreach}
 
-{foreach from=$js_files item=script}
-	<script src="/js/{$script}"></script>
-{/foreach}
+    <script>
+        document.querySelector('.nav-trigger').addEventListener('change', function() {
+            if (this.checked)
+                document.body.classList.add('no-scroll');
+            else
+                document.body.classList.remove('no-scroll');
+        });
+    </script>
+    {if $smarty.cookies.cookie_consent == "true"}
+    {* Google analytics javascript. *}
+    <script src="https://www.google-analytics.com/urchin.js" type="text/javascript"></script>
+    <script type="text/javascript">
+        _uacct = "UA-1455743-1";
+        _udn = "scummvm.org";
+        urchinTracker();
+    </script>
+    {* End Google analytics javascript. *}
+    {else if $smarty.cookies.cookie_consent == "false"}
+    {* Do nothing *}
+    {else}
+    {include file='components/cookie.tpl'}
+    {/if}
+</body>
 
-	<script>
-		document.querySelector('.nav-trigger').addEventListener('change', function() {
-			if (this.checked)
-				document.body.classList.add('no-scroll');
-			else
-				document.body.classList.remove('no-scroll');
-		});
-	</script>
-	{if $smarty.cookies.cookie_consent == "true"}
-		{* Google analytics javascript. *}
-			<script src="https://www.google-analytics.com/urchin.js" type="text/javascript"></script>
-			<script type="text/javascript">
-				_uacct = "UA-1455743-1";
-				_udn = "scummvm.org";
-				urchinTracker();
-			</script>
-		{* End Google analytics javascript. *}
-	{else if $smarty.cookies.cookie_consent == "false"}
-		{* Do nothing *}
-	{else}
-		{include file='components/cookie.tpl'}
-	{/if}
-	</body>
-</html>
+</html>
\ No newline at end of file
diff --git a/templates/pages/links.tpl b/templates/pages/links.tpl
index 343065d6..1332a81f 100644
--- a/templates/pages/links.tpl
+++ b/templates/pages/links.tpl
@@ -1,25 +1,25 @@
 {capture "intro"}
-  <img src="/images/scummvm-link.png" width="88" height="31" alt="ScummVM">
-  {#linksIntro#}
+    <img src="/images/scummvm-link.png" width="88" height="31" alt="ScummVM">
+    {#linksIntro#}
 {/capture}
 
 {capture "content"}
-  {foreach from=$links item=group}
-    <div class="subhead">{$group.name}</div>
-    <div class="subhead-content">
-      <p>{$group.description}</p>
-      <div class="linklist">
+{foreach from=$links item=group}
+<div class="subhead">{$group.name}</div>
+<div class="subhead-content">
+    <p>{$group.description}</p>
+    <div class="linklist">
         {foreach from=$group.links item=link}
-          <div class="linkentry">
+        <div class="linkentry">
             <div class="linkhead">
-              <a href="{$link->getURL()}">{$link->getName()}</a>
+                <a href="{$link->getURL()}">{$link->getName()}</a>
             </div>
             <div class="linkbody">{$link->getDescription()}</div>
-          </div>
+        </div>
         {/foreach}
-      </div>
     </div>
-  {/foreach}
+</div>
+{/foreach}
 {/capture}
 
-{include file="components/box.tpl" head=#linksHeading# intro=$smarty.capture.intro content=$smarty.capture.content}
+{include file="components/box.tpl" head=#linksHeading# intro=$smarty.capture.intro content=$smarty.capture.content}
\ No newline at end of file
diff --git a/templates/pages/news.tpl b/templates/pages/news.tpl
index 82eab574..ef313d6c 100644
--- a/templates/pages/news.tpl
+++ b/templates/pages/news.tpl
@@ -1,28 +1,28 @@
 {foreach from=$news_items item=news}
-	{$news_filename = $news->getFilename()|substr:'0':'-4'}
-	{$id = "{$news->getDate()|date_format:"%Y-%m-%d"}{if $news_filename|strlen == 9}{$news_filename|substr:'-1'}{/if}"}
-	{capture "head"}
-		<a href="{$news->getLink()|lang}/">
-			<span class="news-date">{$news->getDate()|date_localized}</span>:
-			{$news->getTitle()}
-		</a>
-	{/capture}
-	{capture "content"}
-		<div class="news-author">
-        {#newsPostedBy#} {$news->getAuthor()}
-    </div>
-    {$news->getContent()}
-	{/capture}
-	{include "components/box.tpl" id=$id head=$smarty.capture.head content=$smarty.capture.content article="true"}
+    {$news_filename = $news->getFilename()|substr:'0':'-4'}
+    {$id = "{$news->getDate()|date_format:"%Y-%m-%d"}{if $news_filename|strlen == 9}{$news_filename|substr:'-1'}{/if}"}
+    {capture "head"}
+        <a href="{$news->getLink()|lang}/">
+            <span class="news-date">{$news->getDate()|date_localized}</span>:
+            {$news->getTitle()}
+        </a>
+    {/capture}
+    {capture "content"}
+        <div class="news-author">
+            {#newsPostedBy#} {$news->getAuthor()}
+        </div>
+        {$news->getContent()}
+    {/capture}
+    {include "components/box.tpl" id=$id head=$smarty.capture.head content=$smarty.capture.content article="true"}
 {/foreach}
 
 {* Only show the 'more news' link if we're on the main page *}
 {if is_bool($news_archive_link) && $news_archive_link}
 <p class="bottom-link">
-	<span class="feeds float_left">
-		<a href="{'/feeds/atom/'|lang}">Atom</a> |
-		<a href="{'/feeds/rss/'|lang}">RSS</a>
-	</span>
-	<a href="{'/news/archive/'|lang}" class="float_right">{#newsMoreNews#}</a>
+    <span class="feeds float_left">
+        <a href="{'/feeds/atom/'|lang}">Atom</a> |
+        <a href="{'/feeds/rss/'|lang}">RSS</a>
+    </span>
+    <a href="{'/news/archive/'|lang}" class="float_right">{#newsMoreNews#}</a>
 </p>
-{/if}
+{/if}
\ No newline at end of file
diff --git a/templates/pages/press.tpl b/templates/pages/press.tpl
index 69ea9826..58ef85ef 100644
--- a/templates/pages/press.tpl
+++ b/templates/pages/press.tpl
@@ -1,17 +1,17 @@
 {capture "intro"}
-  <p>{#pressIntro#}</p>
+    <p>{#pressIntro#}</p>
 {/capture}
 
-{capture "content"}  
-  {foreach from=$articles item=article}
-  <p>
+{capture "content"}
+{foreach from=$articles item=article}
+<p>
     {if $article->getLanguage() != null}
-      <a href="{$article->getURL()}"><b>{$article->getName()}</b></a> ({$article->getLanguage()}), {$article->getSource()}, {$article->getDate()}
+    <a href="{$article->getURL()}"><b>{$article->getName()}</b></a> ({$article->getLanguage()}), {$article->getSource()}, {$article->getDate()}
     {else}
-      <a href="{$article->getURL()}"><b>{$article->getName()}</b></a>, {$article->getSource()}, {$article->getDate()}
+    <a href="{$article->getURL()}"><b>{$article->getName()}</b></a>, {$article->getSource()}, {$article->getDate()}
     {/if}
-  </p>
-  {/foreach}
+</p>
+{/foreach}
 {/capture}
 
-{include file="components/box.tpl" head=#pressHeading# intro=$smarty.capture.intro content=$smarty.capture.content}
+{include file="components/box.tpl" head=#pressHeading# intro=$smarty.capture.intro content=$smarty.capture.content}
\ No newline at end of file
diff --git a/templates/pages/press_snowberry.tpl b/templates/pages/press_snowberry.tpl
index 9cc91f26..6c78850f 100644
--- a/templates/pages/press_snowberry.tpl
+++ b/templates/pages/press_snowberry.tpl
@@ -1,67 +1,67 @@
 <div class="par-item">
-	<div class="par-head"></div>
-	<div class="par-content">
+    <div class="par-head"></div>
+    <div class="par-content">
 
-<p>June 24, 2009</p>
+        <p>June 24, 2009</p>
 
-<p>
-Wonderful news for all the fans of classical adventure games: Snowberry Connection and Société Pollene announce that the first three games in the legendary Goblins series are now available to every customer of Gobliiins 4 as a free bonus (only via digital distribution channels: Gamersgate and Impulse).
-</p>
+        <p>
+            Wonderful news for all the fans of classical adventure games: Snowberry Connection and Société Pollene announce that the first three games in the legendary Goblins series are now available to every customer of Gobliiins 4 as a free bonus (only via digital distribution channels: Gamersgate and Impulse).
+        </p>
 
-<p>
-Playing these games on modern operating systems is made possible by the ScummVM program — the easiest way to enjoy the greatest adventure hits of the past.
-</p>
+        <p>
+            Playing these games on modern operating systems is made possible by the ScummVM program — the easiest way to enjoy the greatest adventure hits of the past.
+        </p>
 
-<p>
-Alexander Souslov (Snowberry Connection):
-"Thanks to ScummVM, thousands of gamers around the world can enjoy the good old Goblins without any compatibility problems and headache"
-</p>
+        <p>
+            Alexander Souslov (Snowberry Connection):
+            "Thanks to ScummVM, thousands of gamers around the world can enjoy the good old Goblins without any compatibility problems and headache"
+        </p>
 
-<p>
-Max Horn (ScummVM):
-"Playing the Gobliiins games has been fun over a decade ago, and stil is. ScummVM allows you to enjoy them (and other classics) again on modern hardware, like your smartphone — if you are lucky enough to own them. That's why we at ScummVM are excited to see these gems being
-re-released to the public, together with the latest installment of this wonderful series. Thanks, Snowberry!"
-</p>
+        <p>
+            Max Horn (ScummVM):
+            "Playing the Gobliiins games has been fun over a decade ago, and stil is. ScummVM allows you to enjoy them (and other classics) again on modern hardware, like your smartphone — if you are lucky enough to own them. That's why we at ScummVM are excited to see these gems being
+            re-released to the public, together with the latest installment of this wonderful series. Thanks, Snowberry!"
+        </p>
 
-<h4>About ScummVM</h4>
+        <h4>About ScummVM</h4>
 
-<p>
-ScummVM is a program which allows you to run certain classic graphical point-and-click adventure games, provided you already have their data files. The clever part about this: ScummVM just replaces the executables shipped with the games, allowing you to play them on systems for which they were never designed!
-</p>
+        <p>
+            ScummVM is a program which allows you to run certain classic graphical point-and-click adventure games, provided you already have their data files. The clever part about this: ScummVM just replaces the executables shipped with the games, allowing you to play them on systems for which they were never designed!
+        </p>
 
-<p>
-More information is available here: <a href="{'/'|lang}">http://www.scummvm.org/</a>
-</p>
+        <p>
+            More information is available here: <a href="{'/'|lang}">http://www.scummvm.org/</a>
+        </p>
 
-<h4>About Gobliiins 4</h4>
+        <h4>About Gobliiins 4</h4>
 
-<p>
-Designer: Pierre Gilhodes<br>
-Developer: Société Pollene<br>
-Int'l publisher: Snowberry Connection<br>
-Genre: Quest<br>
-Release: Spring 2009<br>
-Languages: English, French, Italian, German, Spanish,
-Russian, Polish, Czech, Hungarian<br>
-Official site: <a href="http://www.goblins4.ru/">http://www.goblins4.ru/</a><br>
-Format: DVD-ROM (PC Windows)<br>
-Also available via digital distribution systems: Impulse and Gamersgate
-</p>
+        <p>
+            Designer: Pierre Gilhodes<br>
+            Developer: Société Pollene<br>
+            Int'l publisher: Snowberry Connection<br>
+            Genre: Quest<br>
+            Release: Spring 2009<br>
+            Languages: English, French, Italian, German, Spanish,
+            Russian, Polish, Czech, Hungarian<br>
+            Official site: <a href="http://www.goblins4.ru/">http://www.goblins4.ru/</a><br>
+            Format: DVD-ROM (PC Windows)<br>
+            Also available via digital distribution systems: Impulse and Gamersgate
+        </p>
 
-<p>
-Designed by original Gobliiins co-creator Pierre Gilhodes and developed by Societe Pollene, Gobliiins 4 brings back the beloved three original main characters in a zany adventure you won't be able to put down. Gobliiins 4 blends elements of adventure and puzzle gaming: the player must find a solution to each level in order to progress to the next. The race through this colorful adventure-land spans more than 30 hours, including a secret bonus level.
-</p>
+        <p>
+            Designed by original Gobliiins co-creator Pierre Gilhodes and developed by Societe Pollene, Gobliiins 4 brings back the beloved three original main characters in a zany adventure you won't be able to put down. Gobliiins 4 blends elements of adventure and puzzle gaming: the player must find a solution to each level in order to progress to the next. The race through this colorful adventure-land spans more than 30 hours, including a secret bonus level.
+        </p>
 
-<h4>About Gobliiins</h4>
+        <h4>About Gobliiins</h4>
 
-<p>
-Characters & universe originally created by Muriel Tramis and Pierre Gilhodes. Gobliiins 4 designed by Pierre Gilhodes, developed by Société Pollene. © by Société Pollene & Snowberry Connection LRM Inc. Original music: Didier Sallustro. All rights reserved. To find more about Gobliiins and its creators, visit official websites at <a href="http://www.goblins4.com">www.goblins4.com</a> and <a href="http://www.goblins4.ru">www.goblins4.ru</a>.
-</p>
+        <p>
+            Characters & universe originally created by Muriel Tramis and Pierre Gilhodes. Gobliiins 4 designed by Pierre Gilhodes, developed by Société Pollene. © by Société Pollene & Snowberry Connection LRM Inc. Original music: Didier Sallustro. All rights reserved. To find more about Gobliiins and its creators, visit official websites at <a href="http://www.goblins4.com">www.goblins4.com</a> and <a href="http://www.goblins4.ru">www.goblins4.ru</a>.
+        </p>
 
-<p>
-<font size=-2>Snowberry press release <a href="http://news.snowball.ru/?id=1684">in Russian</a>.</font>
-</p>
+        <p>
+            <font size=-2>Snowberry press release <a href="http://news.snowball.ru/?id=1684">in Russian</a>.</font>
+        </p>
 
-	</div>
+    </div>
 
-</div>
+</div>
\ No newline at end of file
diff --git a/templates/pages/screenshots.tpl b/templates/pages/screenshots.tpl
index 152f2c0a..dd0d03ef 100644
--- a/templates/pages/screenshots.tpl
+++ b/templates/pages/screenshots.tpl
@@ -1,28 +1,28 @@
 {capture "intro"}
-  <div class="row">
-    <div class="navigation col-1-2 col-md-1">
-      <h4 class="subhead">{#screenshotsNavigation#}</h4>
-      <ul>
-      {foreach from=$screenshots item=arr}
-        <li><a href="{'/screenshots/'|lang}#{$arr.category}">{eval var=$arr.title}</a></li>
-      {/foreach}
-      </ul>
+    <div class="row">
+        <div class="navigation col-1-2 col-md-1">
+            <h4 class="subhead">{#screenshotsNavigation#}</h4>
+            <ul>
+                {foreach from=$screenshots item=arr}
+                    <li><a href="{'/screenshots/'|lang}#{$arr.category}">{eval var=$arr.title}</a></li>
+                {/foreach}
+            </ul>
+        </div>
+        <div class="text col-1-2 col-md-1">
+            {include file='components/random_screenshot.tpl'}
+        </div>
     </div>
-    <div class="text col-1-2 col-md-1">
-      {include file='components/random_screenshot.tpl'}
-    </div>
-  </div>
 {/capture}
 
 {capture "content"}
-  {foreach from=$screenshots item=arr}
-    <div class="subhead" id="{$arr.category}">
-      <a href="{'/screenshots/'|lang}{$arr.category}/">{$arr.title}</a>
-    </div>
-    <div class="scr-content scr-content-{$arr.category}">
-      {include file='components/list_items.tpl' list=$arr.games type='games'}
-    </div>
-  {/foreach}
+{foreach from=$screenshots item=arr}
+<div class="subhead" id="{$arr.category}">
+    <a href="{'/screenshots/'|lang}{$arr.category}/">{$arr.title}</a>
+</div>
+<div class="scr-content scr-content-{$arr.category}">
+    {include file='components/list_items.tpl' list=$arr.games type='games'}
+</div>
+{/foreach}
 {/capture}
 
-{include file="components/box.tpl" head=#screenshotsHeading# intro=$smarty.capture.intro content=$smarty.capture.content}
+{include file="components/box.tpl" head=#screenshotsHeading# intro=$smarty.capture.intro content=$smarty.capture.content}
\ No newline at end of file
diff --git a/templates/pages/screenshots_category.tpl b/templates/pages/screenshots_category.tpl
index 172eebd2..ffab29a1 100644
--- a/templates/pages/screenshots_category.tpl
+++ b/templates/pages/screenshots_category.tpl
@@ -1,42 +1,42 @@
 {* List all screenshots for an entry or category. *}
 {capture "content"}
-  {foreach from=$screenshots.games item=g name=cat_loop}
-    {if $game and $game != $g->getCategory()}
-      {continue}
-    {/if}
-    <div class="gallery">
-      <div class="row">
-        <h3 class="subhead"><a href="{'/screenshots/'|lang}{$category}/{$g->getCategory()}/">{$g->getName()}</a></h3>
-        {foreach from=$g->getFiles() item=fdata name=game_loop}
-          <div class="col-1-4 col-md-1">
-            <div class="card">
-              <div class="image">
-                <a href="{$smarty.const.DIR_SCREENSHOTS}/{$fdata.filename}_full.png" title="{$fdata.caption}">
-                  <img class="pixelated" src="{$smarty.const.DIR_SCREENSHOTS}/{$fdata.filename}.jpg" alt="{$g->getName()} screenshot #{$smarty.foreach.cat_loop.iteration}">
-                </a>
-              </div>
-              <div class="caption">{$fdata.caption}</div>
+    {foreach from=$screenshots.games item=g name=cat_loop}
+        {if $game and $game != $g->getCategory()}
+            {continue}
+        {/if}
+        <div class="gallery">
+            <div class="row">
+                <h3 class="subhead"><a href="{'/screenshots/'|lang}{$category}/{$g->getCategory()}/">{$g->getName()}</a></h3>
+                {foreach from=$g->getFiles() item=fdata name=game_loop}
+                    <div class="col-1-4 col-md-1">
+                        <div class="card">
+                            <div class="image">
+                                <a href="{$smarty.const.DIR_SCREENSHOTS}/{$fdata.filename}_full.png" title="{$fdata.caption}">
+                                    <img class="pixelated" src="{$smarty.const.DIR_SCREENSHOTS}/{$fdata.filename}.jpg" alt="{$g->getName()} screenshot #{$smarty.foreach.cat_loop.iteration}">
+                                </a>
+                            </div>
+                            <div class="caption">{$fdata.caption}</div>
+                        </div>
+                    </div>
+                {/foreach}
             </div>
-          </div>
-        {/foreach}
-      </div>
-    </div>
-    {if $game and $game == $g->getCategory()}
-      {break}
-    {/if}
-  {/foreach}
+        </div>
+        {if $game and $game == $g->getCategory()}
+            {break}
+        {/if}
+    {/foreach}
 {/capture}
 
 {include file="components/box.tpl" head=#screenshotsCategoryHeading# content=$smarty.capture.content}
 
 {if $game}
-  <a href="{'/screenshots/'|lang}{$category}/">{#screenshotsCategoryBack#}</a>
+<a href="{'/screenshots/'|lang}{$category}/">{#screenshotsCategoryBack#}</a>
 {else}
-  <a href="{'/screenshots/'|lang}">{#screenshotsCategoryBack#}</a>
+<a href="{'/screenshots/'|lang}">{#screenshotsCategoryBack#}</a>
 {/if}
 
 <script>
-		document.addEventListener('DOMContentLoaded', function() {
-			baguetteBox.run('.gallery');
-		});
-</script>
+    document.addEventListener('DOMContentLoaded', function() {
+        baguetteBox.run('.gallery');
+    });
+</script>
\ No newline at end of file
diff --git a/templates/pages/sponsors.tpl b/templates/pages/sponsors.tpl
index 3830978a..b80f2c79 100644
--- a/templates/pages/sponsors.tpl
+++ b/templates/pages/sponsors.tpl
@@ -1,24 +1,24 @@
 {capture "intro"}
-  <p>{#sponsorsIntro#}</p>
+    <p>{#sponsorsIntro#}</p>
 {/capture}
 
 {capture "content"}
-  <div class="gallery">
+<div class="gallery">
     <div class="row">
-      {foreach from=$sponsors item=sponsor}
-      <div class="col-1-3 col-md-1">
-        <div class="sponsor card">
-          <div class="image">
-            <a href="{$sponsor->getLink()}" title="{$sponsor->getName()}">
-              <img src="{$sponsor->getImage()}" alt="{$sponsor->getName()}">
-            </a>
-          </div>
-          <div class="caption">{$sponsor->getDescription()}</div>
+        {foreach from=$sponsors item=sponsor}
+        <div class="col-1-3 col-md-1">
+            <div class="sponsor card">
+                <div class="image">
+                    <a href="{$sponsor->getLink()}" title="{$sponsor->getName()}">
+                        <img src="{$sponsor->getImage()}" alt="{$sponsor->getName()}">
+                    </a>
+                </div>
+                <div class="caption">{$sponsor->getDescription()}</div>
+            </div>
         </div>
-      </div>
-      {/foreach}
+        {/foreach}
     </div>
-  </div>
+</div>
 {/capture}
 
-{include file="components/box.tpl" head=#sponsorsHeading# intro=$smarty.capture.intro content=$smarty.capture.content}
+{include file="components/box.tpl" head=#sponsorsHeading# intro=$smarty.capture.intro content=$smarty.capture.content}
\ No newline at end of file
diff --git a/templates/pages/subprojects.tpl b/templates/pages/subprojects.tpl
index 260b7004..818a410b 100644
--- a/templates/pages/subprojects.tpl
+++ b/templates/pages/subprojects.tpl
@@ -1,20 +1,20 @@
 {capture "intro"}
-  <p>
-    {#subprojectsIntroP1#}
-  </p>
-  <p>
-    {#subprojectsIntroP2#}
-  </p>
+    <p>
+        {#subprojectsIntroP1#}
+    </p>
+    <p>
+        {#subprojectsIntroP2#}
+    </p>
 {/capture}
 
 {capture "content"}
-  {foreach from=$subprojects item=project}
-  <div class="subhead">{$project->getName()}</div>
-  <div class="subhead-content">
+{foreach from=$subprojects item=project}
+<div class="subhead">{$project->getName()}</div>
+<div class="subhead-content">
     {$project->getInfo()}
     {include file='components/list_items.tpl' list=$project->getDownloads() type='platforms'}
-  </div>
-  {/foreach}
+</div>
+{/foreach}
 {/capture}
 
-{include file="components/box.tpl" head=$content_title intro=$smarty.capture.intro content=$smarty.capture.content}
+{include file="components/box.tpl" head=$content_title intro=$smarty.capture.intro content=$smarty.capture.content}
\ No newline at end of file




More information about the Scummvm-git-logs mailing list