parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

Ошибка с типом данных

Uarik 26.07.2020 19:08

Привет.

Имею класс, с такими двумя методами:
@mark[skill_id]
#если в таблице assessmentresult есть значение q<>0, выводит $skillmark. Иначе "Н/Д".
^if(^assessmentresult.locate[skill_id;$skill_id]){
      ^if(def $assessmentresult.q && $assessmentresult.q!=0){
      $skillmark($assessmentresult.sm/($assessmentresult.q*2)*100)
      $skillmark(^skillmark.format[%.1f])
      $skillmark
      }{
        Н/Д
      }
}{
    Ошибка, невозможно посчитать оценку, неверный skill_id
}


@markcolor[mark]
# в зависимости от оценки меняем значение CSS класса
^switch($mark){ 
   ^case($mark>=0 && $mark<30){ 
		 $tdkcolor[w3-red]
     } 
   ^case($mark>=30 && $mark<50){
      $tdkcolor[w3-deep-orange]
     }
   ^case($mark>=50 && $mark<75 ){
      $tdkcolor[w3-yellow]
     }
   ^case($mark>=75 && $lmark<90){
      $tdkcolor[w3-light-green]
     }
   ^case($mark>=90){
      $tdkcolor[w3-green]
     }
   ^case[DEFAULT]{
     $tdkcolor[w3-white]
     } 
}
$tdkcolor
Вызываю на странице так:
<span class="^asres.markcolor[^asres.mark[$skill_id]]">
выдает ошибку: ' Н/Д ' invalid number (double) ссылаясь на медот @markcolor[mark]
Но, когда в методе добавляю проверку:
^if($mark is double || $mark is int){^switch...}{$tdkcolor[w3-white]}
тогда эту проверку не проходят даже числовые значения и $tdkcolor равен w3-white.

Помогите понять, в чем моя ошибка?