but1head

but1head

Был в сети 04 ноября 2021, 20:02
Заказы принимаю
yadi.sk/i/QddzUsVX3LwnAm
<?php
$output = "<ul>";
$languages = $modx->getIterator('localizatorLanguage', ['active' => 1]);
foreach($languages as $lang) {
	if($lang->key == $modx->localizator_key) continue;
	$url = 'http://' . $lang->http_host . $_SERVER['REQUEST_URI'];
	$output .= "<li><a href=\"{$url}\"><img src=\"assets/template/img/lang/{$lang->key}.svg\"><span>{$lang->name}</span></a></li>";
}
$output .= "</ul>";
return $output;
словари локализатора = родным словарям, вынес для удобства. в mfilter2 пункты добавляются в словари ms2, тут можно добавить в словари локализатора. все хранится в «теме» (или как там она) localizator — frontend.

про категории только джойны
Как вариант кто-то пытается ломануть админку, а стандартно после 5 (не точно) не правильных паролей — блок юзера. У меня клиент был недоразвитый, свой пароль даже на 5й раз не мог ввести правильно, а я понять не мог почему блочит постоянно.
<?php
$lang = 'ru',
$localizator = $modx->getService('localizator');
$resources = $modx->getIterator('modResource');
foreach($resources as $resource) {
	$tmp = $modx->getObject('localizatorContent', array('resource_id' => $resource->id, 'key' => $lang));
	if($tmp) {
		$tmp = $modx->newObject('localizatorContent');
		$tmp->fromArray(array(
			'key' => $lang,
			'resource_id' => $resource->id,
			'active' => 1,
			'pagetitle' => $resource->pagetitle,
			// ...
		));
	} else {
		// обновление если нужно, fromArray или ->set(key, value);
	}
	$tmp->save();
}
ну а потом уже можно вызывать процессор core/components/localizator/processors/mgr/content/translate.class.php