Oleg

Oleg

С нами с 16 мая 2018; Место в рейтинге пользователей: #395
Oleg
14 ноября 2018, 09:56
0
Извините за оффтоп.
Но! Нафига трансилом обзывать все подряд?!

И да, меня самого волновал этот же вопрос.
Oleg
14 ноября 2018, 09:50
0
UpgradeMODX отключили и все стало более или менее презентабельно. По крайней мере, пока.
Oleg
14 ноября 2018, 09:27
0
Дык пробовал.
Все равно.
Даже если просто модикс голый поставить, так же будет. Правда через раз.
Oleg
24 октября 2018, 12:38
0
C тремя языками, как будет в исполнении?
Oleg
24 октября 2018, 10:14
0
Можете показать правильно настроенный .htaccess?
Я хотя бы посмотрю как это делается.
Oleg
24 октября 2018, 10:12
0
Все может быть.
Я тогда вот точно так же как автор поста сидел на этом форуме и искал помощи, все что я сюда накидал — это мне подсказали. Либо я перелопатил все найденные мне форумы по этой теме.

И как ни странно, ни в одном из них про .htaccess не было ни слова. Так что, я приятно удивлен, что были более цивилизованные варианты.
Oleg
24 октября 2018, 10:08
0
Не!)
Если были другие варианты, я только за их реализацию)
Но это было давно, и я тогда fenom использовал только с открытыми три тысячи и одной вкладкой справки и документации)
Вообщем колхозил как только мог.
Да и сейчас на звание профессионала не претендую.
Oleg
24 октября 2018, 10:06
0
На сколько я помню .htaccees вообще ни на что не влиял на том хостинге)
Да и вообще, за прошедший почти год, сайт сменил 6-7 хостингов. О_о
Oleg
24 октября 2018, 10:01
0
Вообщем я не помню точно, но я его использовал вместо fenom-овского makeUrl как $id|locUrl
Oleg
24 октября 2018, 10:00
0
На сколько я помню у меня при переключении на другой язык отваливались картинки и стили при переключении на другой язык. Кажется так.
Oleg
24 октября 2018, 08:49
0
Еще тут при вызовах pdoTools есть свои особенности, вот пример pdoCrumbs
{'!pdoCrumbs'|snippet:[
			        'from'=>0,
			        'leftJoin' => '{
                        "localizator" : {
                          "class" : "localizatorContent",
                          "alias" : "localizator",
                          "on" : "localizator.resource_id = modResource.id"
                        }
                      }',
                    'select' => '{ "localizator" : "modResource.*, localizator.*, modResource.id" }',
                    'where' => '{ "localizator.key" : "' ~ ('localizator_key' | option) ~ '"}',
			        'outputSeparator'=>' → ',
			        'tpl'=>'@INLINE <a href="{$id|locUrl}" class="bread_home">{$menutitle}</a>',
			        'tplCurrent'=>'@INLINE <span>{$menutitle}</span>',
			        'tplHome'=>'@INLINE <a href="{$id|locUrl}" class="bread_home">{$menutitle}</a>',
			        'tplWrapper'=>'@INLINE <div class="col-12 wrap_breadcrumbs">{$output}</div>',
			        'showHome'=>1
			    ]}
Oleg
24 октября 2018, 08:48
0
Если вы юзаете pdoTools то при попытке подружить его с localizator будет косяк при генерации sitemap.xml
У меня короче как-то так.
<?php
$output = "";
$resources = $modx->runSnippet('pdoResources', [
	'parents' => 0,
	'limit' => 0,
	'resources'=>'-9, -10',
	'sortby'=>'{"id":"ASC"}',
	'leftJoin' => '{
    		"localizator" : {
    			"class" : "localizatorContent",
    			"alias" : "localizator",
    			"on" : "localizator.resource_id = modResource.id"
    		}
    	}',
	'select' => '{ "localizator" : "modResource.*, localizator.*, modResource.id" }',
	'where' => [
		'localizator.key' => $modx->localizator_key,
		'localizator.active' => 1,
	],
	'return' => 'json',
]);

if($resources) {
	$resources = json_decode($resources);
	foreach($resources as $resource) {
	    $lang = $modx->localizator_key;
	    $out_uri = $resource->uri;
	    if($lang != 'ru'){
		    $url = $modx->config['site_url'] .$lang.'/'. $$out_uri;
	        }else{
	        $url = $modx->config['site_url'] . $out_uri;    
	        }
		$changefreq = 'weekly';
		$priority = '0.5';

		// дата изменения
		$lastmod = date('Y-m-d', $resource->editedon ?: $resource->createdon);

		/* if($row['last_review_date']){
		$date = new DateTime($row['last_review_date']);
		$lastmod = $date->format('Y-m-d');
		} */


		// пометка ежечастного обноавления, id категорий
		if(in_array($resource->parent, [35, 36, 4])) $changefreq = 'hourly';

		// приоретитет
		if(in_array($resource->id, [1, 2, 3])) $priority = '1.0';
        $url_our = str_replace('index', '', $url);
		$output .= "
		<url>
		    <loc>{$url_our}</loc>
		    <lastmod>{$lastmod}</lastmod>
		    <changefreq>{$changefreq}</changefreq>
		    <priority>{$priority}</priority>
		</url>
		";
	}

}

return $output;

Я же говорил, что не сайт — а франкенштейн)
Oleg
24 октября 2018, 08:46
0
А это плагин для вызова ссылки. На событие pdoToolsOnFenomInit
У меня весь сайт на fenom. Так что если будете использовать тоже с оглядкой.
<?php
switch ($modx->event->name) {
    case 'pdoToolsOnFenomInit':
        /** @var Fenom $fenom
          Мы получаем переменную $fenom при его первой инициализации и можем вызывать его методы.
          Например, добавим модификатор вывода имени домена сайта из произвольной ссылки.
         */
        $fenom->addModifier('locUrl', function ($input) use ($modx) {
            if (is_numeric ($input)){
                if ($modx->localizator_key != 'ru') {
                    if($input!=1){
                        $output = $modx->localizator_key.'/'.$modx->makeUrl($input);
                    }else{
                        $output = $modx->localizator_key.'/';
                    }
                } else {
                    $output = $modx->makeUrl($input);
                }
                return strtolower($output);
            } else {
                $output = $input;
                return strtolower($output);
            }
        });
        break;
}
Oleg
24 октября 2018, 08:44
0
Это мой сниппет для панельки переключения языков)))
=\ давно писался
Если будете использовать, перепишите под себя. У меня тут на три языка. EN, RU, UZ
<?php
$output = "";

// определяем есть ли языки через "папки"
$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);
        }
    }
}

$languages = $modx->getIterator('localizatorLanguage');
foreach($languages as $language) {
    if(mb_substr($language->http_host, -1) == '/') {
        $link = $language->http_host . $uri;
    } else { 
        $link = $language->http_host . '/' . $uri;
    }
    $langIMG = array(
        'rus' =>'assets/templates/UZVALVE/img/ru_flag.png',
        'eng' =>'assets/templates/UZVALVE/img/en_flag.jpeg',
        'uzb' =>'assets/templates/UZVALVE/img/uz_leng.png'
    );
    $lang = explode("/", $link);
    if($lang[1] == 'uz'){
        $image = $langIMG['uzb'];
    }
    elseif($lang[1] =='en'){
        $image = $langIMG['eng'];
    }
    else{
        $image = $langIMG['rus'];
    }
    $output .= "<li><a href=\"http://{$link}\"><img src=\"{$image}\" alt=\"russian_language\" title=\"{$language->name}\"></a></li>";
}
    
return $output;
Oleg
24 октября 2018, 08:41
0


А так в системных настйроках.
Oleg
24 октября 2018, 08:38
0
А что там настраивать, если он не доменное имя новое задает, а всего-лишь подраздел.

У меня так все стоит.
По умолчанию русский подключен.
Все слова непонятные в словарь забиваю.

А вообще если пройтись по инструкции что в описании плагина есть, все должно работать.
Хотя там не описаны готовые решения по переключению языков, правильное исправление ссылок на переключение и т.п. и т.д.

Хотя большую часть можно решить банальным {if}{/if}
Oleg
24 октября 2018, 08:34
0
И заголовок тоже не нужен.Точнее нужен но не в том, контексте, как привыкли его использовать.
Oleg
23 октября 2018, 16:29
0
О! Я в этом шарю!)))

Короче.
Смотрите, чтобы у вас отображался заголовок другой, вам нужно забить на то, что у вас в настройках ресурса есть такая строка.
У Локализатора это все дублируется в его окне. ВСЕ! Кроме контента. У контента вызов особенный.

Один узбекский сайт на этом дополнении поднял. Но он больше похож на франкенштейна.

http://uzpromarm.uz
Oleg
09 октября 2018, 16:00
0
Кстати, работает на странице после заполнения спика категорий, в списке задач (listbox) только после обновления страницы, если что.
Oleg
09 октября 2018, 15:48
0
@EVAL return $modx->runSnippet('getImageList', array( 'tvname'=>'works_list', 'docid'=>4, 'tpl'=>'@CODE: [[+title]]==work_[[+idx]]', 'outputSeparator'=>'||'));
Решили

в типе listbox добавить в options