Василий Наумкин

Василий Наумкин

С нами с 08 декабря 2012; Место в рейтинге пользователей: #1
Василий Наумкин
26 апреля 2014, 03:21
+1
Исправил, обновляйся из репозитория Simple Dream.
Василий Наумкин
26 апреля 2014, 02:54
0
Ограничение на размер файла указывается в настройках источника файлов.
Василий Наумкин
25 апреля 2014, 06:41
0
Обычно это бывает из-за проблем в сессией.

Попробуй зайти из анонимного режима браузера. Если получится — чисти кэш и куки.
Василий Наумкин
24 апреля 2014, 11:23
0
Кстати да, замечал за собой такое — запросто могу уйти искать промо-код.

А если не пойду, то вся равно появляется стойкое ощущение, что я переплачиваю, а мог бы и сэкономить.
Василий Наумкин
23 апреля 2014, 21:48
0
Там вроде только карту можно привязать.
Василий Наумкин
22 апреля 2014, 18:28
0
Без понятия. Спроси у поддержки.

Насколько я понимаю, IPv4 — дефицит, так что каждый хостер сам решает, как его расходовать.
Василий Наумкин
22 апреля 2014, 18:11
+1
Нет, не так.

Я вообще подключил виртуальную карту Qiwi — и нет проблем.
Василий Наумкин
21 апреля 2014, 21:59
+1
В последних версиях появилось разрешение mssetting_save — именно оно и требуется.
Василий Наумкин
21 апреля 2014, 16:36
+1
Посмотри в параметры сниппета, там есть showHidden.
Василий Наумкин
21 апреля 2014, 16:30
+1
Ошибок нет, выбираются все ресурсы которые:
  • Не скрыты в меню (hidemenu = 0) или являются документами Tickets и Articles
  • Не удалены (deleted = 0)
  • Опубликованы (published = 1)
  • Доступны для поиска (searchable = 1)
  • Принадлежат контексту web (context_key = web)
У тебя таких документов нет, так что проверяй статус публикации и всё остальное.
Василий Наумкин
21 апреля 2014, 15:15
+1
То ли я тупой, то ли не я.

Если у документа, где вызывается сниппет, указан тип содержимого «HTML», а не «XML» — то нет, не одно и тоже.

При forceXML=1 сниппет сам выдаст XML, не взирая на тип содержимого. При forceXML=0 сниппет не вмешивается в выдачу результата, и ты увидишь лог.

То есть, чтобы увидеть лог, нужно переставить тип на HTML.
Василий Наумкин
21 апреля 2014, 15:13
0
На всякий случай — xPDO это не MODX. Это отдельная ORM, которая используется в MODX и он накручивает дофига всего сверху, включая ТВ параметры для ресурсов.

xPDO можно использовать отдельно, и естественно, никаких ТВ параметров там не будет.

Вот сайт xPDO, а вот его репозиторий.
Василий Наумкин
21 апреля 2014, 15:08
0
Вот ты тяжелый…

xPDO учитывает тип ТВ параметра. И тип у него, внимание, строка!

То что там в админке ты крутишь — xPDO до фонаря, он работает на более низком уровне. В xPDO нет никаких ТВ параметров, это уже из MODX который является надстройкой над xPDO. Для него не имеет значение ничего, кроме модели.

В модели нет такого понятия, как «это поле может быть строкой, а может и числом — в зависимости от чекбокса в админке».
Точно также, как нет такой фигни и в самой базе данных, ферштейн? Там поле или строка, или число, оно не меняется в зависимости от контекста.

Если ты хранишь числа в строках — это тоже строки, как не запрашивай, какие условия не задавай, в таблице это строки!

Ты, наверное хочешь, что при каждом запросе ТВ через xPDO, он лез в таблицу ТВ (а таблица с самим ТВ и его значениями — 2 разных таблицы), смотрел там тип ТВ и строил запрос как-то иначе, наплевав на прописанный тип в модели?

Так вот, xPDO об этом ничего не знает, потому что ничего такого в модели и БД не бывает в принципе.

Я не знаю, как еще понятнее объяснить.
Василий Наумкин
21 апреля 2014, 13:31
0
Ты указываешь массив, а не строку. Это говорит xPDO, что нужно обработать указанное значение согласно модели.

В модели поле value имеет тип «string», значит нужно обернуть 0 в ковычки. Если ты хочешь избежать автоматической обработки, нужно указать готовое условие без ковычек, строкой, как в этом примере.

Неужели до сих пор не понятно?

Повторяю свой вопрос еще раз: чего ты вообще хочешь добиться, указывая числа с ковычками или без? Это никак не влияет на результаты выборки, mysql приводит типы самостоятельно.
Василий Наумкин
21 апреля 2014, 13:20
0
Если у документа, где вызывается сниппет, указан тип содержимого «HTML», а не «XML» — то нет, не одно и тоже.

При forceXML=1 сниппет сам выдаст XML, не взирая на тип содержимого. При forceXML=0 сниппет не вмешивается в выдачу результата, и ты увидишь лог.
Василий Наумкин
21 апреля 2014, 13:16
0
Да мне то нафига это нужно?

При выборке типы автоматически приводятся, это не сортировка. Mysql выберет одно и тоже, если указать условие хоть строкой, хоть целым числом.

Или у тебя если число в ковычках — что-то не то выбирается? Будь добр, покажи реальный пример, а то я вообще понять не могу, какой ты фигнёй страдаешь.
Василий Наумкин
21 апреля 2014, 11:26
0
Хотелось бы решить задачу, не исключая значение из xpdo-обработки
Это ты про что? Я говорю, что можно не просить xPDO за тебя генерировать условие, как тебе не нравится, а указать его самостоятельно.

В моделе указано, что тип поля — строка, поэтому автоматическая генерация оборачивает значение в ковычки. Если указано int — будет без ковычек. Если не устраивает автоматическая обработка, и ты хочешь для строки указать условие как int — пиши его сам.

Тебе ничего не запрещают — делай как хочешь.

а корректно сравнивать числовые TV (элементарная операция) посредством xpdo — нельзя
xPDO — это php класс, он не волшебный, он только готовит запросы и получает данные из БД. Сравнение производит mysql, а не xpdo.

ТВ — это строка и mysql начхать, что там в MODX указано — в БД это все равно строка и сравниваться она будет как строка, с кавычками ты там указал условие или нет.

Если ты хочешь выбирать и сравнивать строки как числа — нужно приводить тип данных в mysql, типа
ORDER BY CAST(`TV`.`value` AS DECIMAL(13,3))
Например, pdoTools учитывает тип ТВ и говорит сравнивать числа как числа, даты как даты, а не как строки.

pdoTools тоже работает на xPDOи запрос строится с его помощью. Но это не мешает мне указать правильное для меня условие.
Василий Наумкин
21 апреля 2014, 10:08
0
Если ты хочешь обойти автоматическую генерацию условий по модели, можно указать в where готовую строку:
$q->where("`tvTable3`.`value` IS NULL OR `tvTable3`.`value` = '' OR `tvTable3`.`value` <= 0");
Василий Наумкин
21 апреля 2014, 09:57
0
Ну так если в модели строка, в БД строка — почему в условии должна быть не строка?

Тип ТВ значения не имеет, потому что это никак не влияет на его способ хранения в БД.