Перевод title страницы с помощью Яндекс переводчика
Разработка данного модуля не моя - идея была взята с блога modx.im. Для начала необходимо получить API ключ для переводчика у Яндекса. Сделать можно тут. Далее идем в Элементы - Управление элементами - Плагины - Создать новый плагин Название указывайте любое, я выбрал yatranslate Вот собственно код данного плагина
global $e;
$e = &$modx->Event;
$e->output('<!-- yandexTranslation --->
<script>
window.$j = jQuery.noConflict();
key="ВАШ КЛЮЧ АПИ";
source=$j("input[name=\'pagetitle\']");
result=$j("input[name=\'alias\']");
url=\'https://translate.yandex.net/api/v1.5/tr.json/translate\';
function get_translate(source,result,key,debugTxt){
if(source.val().length>0)
{
$j.ajax({
type:\'POST\',
url: url,
cache: false,
data:{
key:key,
text:source.val(),
lang:\'ru-en\'
},
success:function(data){
responseStatus=data[\'code\'];
if (responseStatus==200)
{
responseText=data[\'text\'][0];
}
else
{
responseText=\'Error! \' + responseStatus;
}
re=/[^a-zа-я]/g;
responseText=responseText.toLowerCase();
responseText = responseText.replace(re,"-",responseText);
result.val(responseText);
},
error: function (xhr, ajaxOptions, thrownError) {
alert(\'Error ajax\');
}
});
}
else
{
source.css(\'border\',\'1px solid red\');
}
};
$j(source).bind(\'blur change click\',function(){
get_translate(source,result,key,"change");
});
</script>
<!-- // yandexTranslation --->');
Далее устанавливаем галочку на вкладке системных событий на событии "OnDocFormRender"
Все готово. Теперь при изменении названия страницы alias будет автоматически переводиться