Вверх ↑
Администрация
Ответов: 15294
Рейтинг: 1518
#1: 2009-07-13 22:30:58 ЛС | профиль | цитата
в данном случае проблема не с МТ, а вот с такой записью

#hws
event(onAdd, (_data='') ? Data : (_data ^ Data))
что делает кодогенератор, когда программист просит его сравнить _data='' ? он берет и приводит второй аргумент к типу первого после чего производит сравнение. Пустая строка конвертируется в целое число как нуль, т.е. получаем сравнение 0 = 0, что есть истина.

Чтобы этого избежать, нужно вставить проверку на тип данных

#hws
(typeof(_data) = 2 and _data = '')

если бы не объявленный макрос NULL_TO_STR, то достаточно бы было сделать одну проверку типа

#hws
(typeof(_data) = 19)
------------ Дoбавленo в 22.34:
еще один совет небольшой. Вот так:

#hws
if(ES_MULTILINE='True')
лучше не делать. Лучше делать так

#hws
if(isndef(ES_MULTILINE))
карма: 26
0