Cyrax_02

Cyrax_02

С нами с 04 августа 2013; Место в рейтинге пользователей: #247
Cyrax_02
25 октября 2013, 22:27
0
Ну вот, только руки дошли.
В общем, получается так. В предложение SELECT Вы добавили проверку IFNULL для всех дополнительных TV-полей:
IFNULL(`TVtv1`.`value`, '')
В итоге при заполнении чанка-шаблона значениями TV-полей туда будут «вставляться» не null, а пустые строки.

Но осталось ещё добавить IFNULL:
1) в предложение SELECT для стандартных полей `properties`, `uri`, `introtext`, `alias` — эти поля также могут принимать значения null
2) в предложение WHERE для всех дополнительных TV-полей.
Например, при указании в параметре &where JSON-условия {..., «tv1»:"", ...} в предложении WHERE должно формироваться условие:
... AND IFNULL(`TVtv1`.`value`, '') = '' AND ...
3) в предложении WHERE для стандартных полей `properties`, `uri`, `introtext`, `alias`

Необходимости добавления IFNULL в предложении WHERE (последние два пункта) можно избежать, если все проверки вытащить во внешний запрос: во внутреннем запросе выполняются JOIN'ы необходимых таблиц и отбираются все необходимые поля с использованием IFNULL, а во внешнем запросе выполняются все необходимые проверки. Но в этом случае памяти может требоваться больше. Если же без использования внешнего запроса — будет дольше выполняться. Впрочем, нужно тестировать.
Cyrax_02
13 августа 2013, 11:21
0
Василий, Иван, а шаблоны как именуете? Внутренние и внешние.
Cyrax_02
04 августа 2013, 18:14
0
Ясно. Думал, что это в настройках можно отрегулировать.
Только мне всё-равно не понятно, почему мультиТВ в modX реализовали так убого? Ведь уже 3-я версия на горизонте…