Экспериментальный снипет для решения проблем с кодировкой.
Выводит :
контент тайп отдаваемый сервером
чарсет базы данных
чарсет модекса
сравнение базы данных
язык админки
Например:
Content-Type: text/html; charset=utf-8
mysql charset: utf8
modx charset: UTF-8
mysql collation: utf8_unicode_ci
manager language: russian-UTF8
Установка:
Создайте новый сниппет и вставьте в него код,который представлен ниже.
В поле название сниппета напишите Вlondinko.
Вставьте на любой страничке вызов сниппета [!Вlondinko!].
$tblsc = $modx->getFullTableName('site_content');
$charset = $modx->db->getValue("select charset (' ".$tblsc ." ')" );
$charset = "mysql charset: $charset <br/>";
$mc = $modx->getConfig('modx_charset');
$mc = " modx charset: $mc<br/>";
$collation = $modx->db->getValue(" select collation(' ".$tblsc ." ')" );
$collation = "mysql collation: $collation <br/>";
$ml = $modx->getConfig('manager_language');
$ml = "manager language: $ml <br/>";
$output = $charset.$mc.$collation.$ml ;
if (extension_loaded('curl')) {
$url = $modx->getConfig('site_url');
$url = $url."index.php";
$ch = curl_init();
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_URL, $url);
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, 20);
curl_setopt($ch, CURLOPT_HEADER, true); // header will be at output
$content = curl_exec ($ch);
curl_close ($ch);
}
$header = "Content-Type";
print parse_header($content, $header);
// function takes HTTP response header, and the header name
// return the valus/values of the header name
function parse_header($content, $header){
$ret_str = "";
if( preg_match_all("/($header.*)/i",$content, $match ) ){
$match = $match[1];
foreach( $match as $str){
$ret_str .= $str . "<br/>";
}
}
return $ret_str;
}
return $output;