UMIhelp
Разработка сайта на UMI.CMS => Шаблоны PHP => Тема начата: Faiffer от 15 Апреля 2020, 13:30:55
-
$data = $this->macros('system', 'getLangsList');
$items = $data['items'];
?>
<?php if (umiCount($items) > 0): ?>
<div>
<ul class="lang_list">
<?php foreach ($items as $item): ?>
<?php if ($item['is-current'] == 1 || $item['is-default'] == 1): ?>
<li class="active">
<a href="<?= $variables['domain'] ?>"
<?= $this->escape($item['prefix']) ?>
</a>
</li>
<?php elseif ($item['is-current'] == 1): ?>
<li class="active">
<a href="<?= $variables['domain'] ?>/<?= $variables['lang'] ?>">
<?= $this->escape($item['prefix']) ?>
</a>
</li>
<?php else: ?>
<li>
<a href="<?= $variables['domain'] ?>/<?= $variables['lang'] ?>">
<?= $this->escape($item['prefix']) ?>
</a>
</li>
<?php endif; ?>
<?php endforeach; ?>
</ul>
</div>
<?php endif; ?>
Но в результате получаю ошибку - Ошибка (Error): Cannot use object of type lang as array
http://prntscr.com/rzqc5x по сути на выходе я получаю массив с 3мя объектами внутри.
-
Лес рук ))) Короче сделал вот так! Все работает, код прилагаю
<?php
$data = $this->macros('system', 'getLangsList');
$items = $data['items'];
$lang = $variables['lang'];
?>
<?php if (umiCount($items) > 0): ?>
<div>
<div class="lang_list">
<?php foreach ($items as $item): ?>
<?php if ($item->getIsDefault() && $lang=='ru'): ?>
<a class="default active" href="/">
<span><?= $this->escape($item->getPrefix()) ?></span>
</a>
<?php elseif ($item->getIsDefault()): ?>
<a class="default" href="/">
<span><?= $this->escape($item->getPrefix()) ?></span>
</a>
<?php elseif (isset($lang) && $item->getPrefix() == $lang): ?>
<a class="<?= 'lang_'.$lang ?> active" href="javascript:void(0)">
<span><?= $this->escape($item->getPrefix()) ?></span>
</a>
<?php else: ?>
<a href="<?= '/'.$item->getPrefix() ?>">
<span><?= $this->escape($item->getPrefix()) ?></span>
</a>
<?php endif; ?>
<?php endforeach; ?>
</div>
</div>
<?php endif; ?>