| Новости | FAQ | Авторы | Документация | В действии | Библиотека |
| Инструменты | Полезные ссылки | Хостинги | Скачать | Примеры | Форум |
egr 05.10.2003 12:22
Это работает. Усложняем задачу - Поле $flag формируется на базе полей определённых только в базовом классе:@CLASS class1 @init[] $hashFlag[ $.flag(1) ] $flag(0) $test[^lang[]] @lang[] $result[ru]Class2
@CLASS
class2
@USE
/class1.p
@BASE
class1
@init[]
^BASE:init[]
$flag(^makeFlag[])
@lang[]
^if($flag){
$result[en]
}{
$result[^BASE:lang[]]
}
@makeFlag[]
$result($hashFlag.flag)В этом случае при таком конструкторе Class2 @init[] ^BASE:init[] $flag(^makeFlag[])Вывод такой (как и в прошлой задаче):
Поле test формируется вызовом ^lang[] и: Поле test класса Class1 - ru Поле test класса Class2 - ru Однако вызов ^lang[] в Class2 даёт - enА при шаманстве:
@init[] $flag(^makeFlag[]) ^BASE:init[]Ещё и перестаёт работать ^lang[] в производном классе:
Поле test формируется вызовом ^lang[] и: Поле test класса Class1 - ru Поле test класса Class2 - ru Однако вызов ^lang[] в Class2 даёт - ru