Kirill | CosmosDrops
вот че надо походу
Kirill | CosmosDrops
после сетлокале modx делать
Kirill | CosmosDrops
тестану сейчас
Sergey_K
Хм
Sergey_K
Там оно так и стоит
Sergey_K
Ничего не поменяется
Sergey_K
Посмотри в сист настройках у тебя
Sergey_K
Что стоит
Sergey_K
Ключ locale
Kirill | CosmosDrops
пусто
Sergey_K
Тогда у тебя какая-то аномалия в окружении
Kirill | CosmosDrops
язык ru, кодировка UTF-8
Sergey_K
Это где такой язык?
Kirill | CosmosDrops
core - словарь и язык. cultureKey - ru, modx_charset - UTF-8
Sergey_K
to get my weekdays in dutch on the page. From that moment on (as I found out many hours later) my floating point values from MYSQL where interpreted as integers because the Dutch locale wants a comma (,) instead of a point (.) before the decimals. I tried printf, number_format, floatval.... all to no avail. 1.50 was always printed as 1.00 :(
Sergey_K
Твой вариант
Sergey_K
Kirill | CosmosDrops
Я думаю это не влияет
влияет это:
if ($this->getOption('setlocale', $options, true)) {
Kirill | CosmosDrops
не могу понять, для чего там по умолчанию true
Sergey_K
Нет
Kirill | CosmosDrops
если я не хочу указывать локаль
Sergey_K
запусти так
Sergey_K
print setlocale(NC_ALL, 0)
Sergey_K
LC_ALL
Sergey_K
то есть
Sergey_K
или даже LC_NUMERIC
Kirill | CosmosDrops
в modx или чисто в php?
Sergey_K
пох
Sergey_K
оно одно и то же
Sergey_K
там для всего процесса локаль
Kirill | CosmosDrops
PHP warning: Use of undefined constant NC_ALL - assumed 'NC_ALL' (this will throw an Error in a future version of PHP)
Kirill | CosmosDrops
PHP warning: setlocale() expects parameter 1 to be int, string given
Sergey_K
LC_NUMERIC
Sergey_K
Я ошибся же и поправил :)
Kirill | CosmosDrops
но, опять же, повторюсь. Решение в modx среде не решит саму проблему. С какого перепугу преобразование типа в float идет с учетом локали? с учетом локали должен быть только вывод, например (string)$floatvalue
Kirill | CosmosDrops
LC_NUMERIC
Russian_Russia.1251
Sergey_K
Мля, уже запусти :)
Sergey_K
Ну вот
Sergey_K
В нашей раше ","
Sergey_K
Щас проверю у себя
Sergey_K
Вот и ответ
Sergey_K
en_US.UTF-8
Sergey_K
У меня
Sergey_K
У тебя сбита локаль
Sergey_K
Какая-то жопа запустила тебе 1251
Sergey_K
И во всех потоках навернулось
Sergey_K
Причем это даже не модх может делать
Kirill | CosmosDrops
<?php
print setlocale(LC_NUMERIC, 0);
Kirill | CosmosDrops
так тоже?
Kirill | CosmosDrops
просто в отдельном файле
Sergey_K
я это и запускал
Sergey_K
локаль на весь процесс влияет
Sergey_K
из любого места
Kirill | CosmosDrops
не, modx ее сам ставит, хочешь ты или нет
Kirill | CosmosDrops
я же показал кусок кода
Sergey_K
Нет
Kirill | CosmosDrops
даже если не указал в сис настройках, он тебе че то пытается накинуть
Sergey_K
модх берет ее по дефолту
Kirill | CosmosDrops
смотри тогда момент
Sergey_K
у тебя либо этот дефолт это РУ
Sergey_K
либо в процессе она меняется
Kirill | CosmosDrops
я меняю тут if ($this->getOption('setlocale', $options, true)) {
на false
Kirill | CosmosDrops
и вуаля
Kirill | CosmosDrops
у меня точка в float
Kirill | CosmosDrops
т.е. именно тот код все мне портит
Sergey_K
все верно, чувак :)
Sergey_K
патамушта в меру моего понимания
Sergey_K
этот код проверяет настройку setlocale
Kirill | CosmosDrops
я не говорю, что это именно проблема modx, я просто понять не могу, с какого хрена вообще преобразование типов в целые и дробные учитывают локаль
Sergey_K
ее у тебя нет
Kirill | CosmosDrops
ее у тебя нет
вот именно, зачем за меня ее пытаться ставить?
Sergey_K
тогда он ставит опшнс. он пустой, тогда тру
Kirill | CosmosDrops
я, если захочу, зайду и укажу ее сам
Sergey_K
и если тру, то твой иф работает
Sergey_K
а твой фолс = иф не работает
Sergey_K
то есть локаль не ставится
Kirill | CosmosDrops
именно! я не хочу ее ставить. Но у меня такой возможности нету, от слова совсем
Sergey_K
сделай опцию