Задача - осуществить смену языка сайта работающего на ProcessWire.
Решение на главной странице:
Пример кода ($homeurl инициализирован у нас в заранее для всего проекта в файле "init.php".
Пример
<nav class="uk-navbar" uk-navbar="mode: click">
<ul class="uk-navbar-nav">
<li>
<a class="uk-navbar-droopdown-link" href="#">
<?php
$url = $_SERVER['REQUEST_URI'];
if($url == $homeurl) {echo "<img class='uk-header-navbar-logo-flag' src='{$page->flag_america->url}' alt='' uk-img>";}
if($url == $homeurl . 'es/') {echo "<img class='uk-header-navbar-logo-flag' src='{$page->flag_spain->url}' alt='' uk-img>";}
?>
<img class="uk-header-navbar-logo-droopdown" src="<?php echo $config->urls->templates; ?>images/droopdown.svg" alt="" uk-img>
</a>
<div class="uk-navbar-dropdown">
<ul class="uk-nav uk-navbar-dropdown-nav">
<li class="uk-active">
<?php
if($url == $homeurl) {
echo "<a href='{$homeurl}es/'>";
echo "<img class='uk-header-navbar-logo-flag' src='{$page->flag_spain->url}' alt='' uk-img>";
echo "</a>";
}
if($url == $homeurl . 'es/') {
echo "<a href='{$homeurl}'>";
echo "<img class='uk-header-navbar-logo-flag' src='{$page->flag_america->url}' alt='' uk-img>";
echo "</a>";
}
?>
</li>
</ul>
</div>
</li>
<li>
<a class="uk-navbar-person-link" href="#">
<img class="uk-header-navbar-logo-person" src="<?php echo $page->login_icon->url; ?>" alt="" uk-img>
</a>
</li>
</ul>
</nav>
Решение на внутренних страницах, которые используют header.php и footer.php.
Пример
<div class="uk-navbar-dropdown">
<ul class="uk-nav uk-navbar-dropdown-nav">
<li class="uk-active">
<?php
$url = $_SERVER['REQUEST_URI'];
if (strpos($url,'es') !== false) {
echo "<a href='{$homeurl}'>";
echo "<img class='uk-header-navbar-logo-flag' src='{$pages->get(1)->flag_america->url}' alt='' uk-img>";
echo "</a>";
} else {
$langurl = $homeurl . 'es/';
echo "<a href='{$langurl}'>";
echo "<img class='uk-header-navbar-logo-flag' src='{$pages->get(1)->flag_spain->url}' alt='' uk-img>";
echo "</a>";
}
?>
</li>
</ul>
</div>