Михаил

Михаил

С нами с 23 декабря 2013; Место в рейтинге пользователей: #115
Евгений Дубровин
18 января 2023, 23:34
1
+1
вот оказывается решение:

$eventName = $modx->event->name;
switch($eventName) {
    case 'msOnChangeOrderStatus':
    if ($status == '2') {
$token = $modx->getOption('mstelegram_token', null, false);
$recipients = explode(',', $modx->getOption('mstelegram_recipients', null, ''));
Alex Zhuravlev
16 октября 2017, 22:24
2
0
Дописал под себя getLanguages.
Сделал вывод в placeholders и добавил css class «active»

getLanguages
<?php
$pdo = $modx->getService('pdoTools');

$uri = $_SERVER['REQUEST_URI'];
if(substr($uri, 0, 1)) {
    $uri = mb_substr($uri, 1);
    $tmp = explode('/', $uri);
    if($path = $tmp[0]) {
        $tmp = $modx->getObject('localizatorLanguage', array('http_host:LIKE' => "%/{$path}/"));
        if($tmp) {
            $uri = str_replace("{$path}/", "", $uri);
        }
    }
}

$protocol = 'https://';
$languages = $modx->getIterator('localizatorLanguage');
foreach($languages as $language) {
    if(mb_substr($language->http_host, -1) == '/') {
        $placeholders = array(
            'cultureKey'=>$language->key,
            'active'=>$language->key == $modx->localizator_key ? 'active' : '',
            'url'=>$protocol . $language->http_host . $uri,
        );
    } else {
        $placeholders = array(
            'cultureKey'=>$language->key,
            'active'=>$language->key == $modx->localizator_key ? 'active' : '',
            'url'=>$protocol . $language->http_host . '/' . $uri,
        );
    }
    $output .= $pdo->getChunk($tpl, $placeholders);
}

return $output;

В шаблоне
<div class="langs">
	{$_modx->runSnippet('!getLanguages', ['tpl' => 'section-langs-1',])}
	<div class="dropdown-menu">
		{$_modx->runSnippet('!getLanguages', ['tpl' => 'section-langs-2',])}
	</div>
</div>

Содержимое section-langs-1
<a href="#" data-toggle="dropdown" role="button" aria-expanded="false"></a><img class="imglang {$active}" src="/assets/img/flags/{$cultureKey}.png" alt="{$cultureKey}">

Содержимое section-langs-2
<div class="dropdown-item">
    {if $active != 'active'}
        <a class="{$active}" href="{$url}"><img class="imglang {$active}" src="/assets/img/flags/{$cultureKey}.png" alt="{$cultureKey}"></a>
    {else}
        <div class="{$active}"><img class="imglang {$active}" src="/assets/img/flags/{$cultureKey}.png" alt="{$cultureKey}"></div>
    {/if}
</div>

На уникальность не претендую, но уверен что кому то поможет.
Критика и правки приветствуются.
Алексей Яковлев
13 августа 2017, 17:00
2
0
а, ну вот так вроде получилось:
<?php
$output = "<div>";

$languages = $modx->getIterator('localizatorLanguage', ['active' => 1]);
foreach($languages as $lang) {
	if($lang->key == $modx->localizator_key) continue;
	$url = 'http://' . $lang->http_host;
	$output .= "<a href=\"{$url}/[[*alias]].html\"><img src=\"../layout/{$lang->key}-icon.png\" style=\"width:24px\"><span>{$lang->name}</span></a>";
}
$output .= "</div>";
return $output;
Тоже, правда, костылем выглядит…
Николай Савин
29 сентября 2016, 14:43
1
0
Так дизайн будет в виде уже готовой верстки? Верстать не надо?
Это снижает цену еще тыс. на 10-15