Search the Community

Showing results for tags 'список поле'.

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Found 1 result

  1. Задача заключается в том, что бы в модуле Встречи отобразить иначе дату начала встречи. Изначально дата встречи меняет цвет в зависимости от текущей даты. Мы же сделаем, что бы цвет изменялся так же в зависимости от статуса задачи. В этом методе можно использовать любое нужное для вас условие в любом модуле. В моем случае нужное поле уже существует. В файле\custom\modules\Meetings\metadata\listviewdefs.php,который отвечает за отображения списка у меня существует следующая запись: 'DATE_START' => array ( 'width' => '15%', 'label' => 'LBL_LIST_DATE', 'link' => false, 'default' => true, 'related_fields' => array ( 0 => 'time_start', ), ), Находим в файле\modules\Meetings\Meeting.php функцию function get_list_view_data() { Здесь мы и задаем условия отображения информации. Я комментирую стандартный код: global $timedate; // стандартное отображение даты начала (даты встречи) $r2 = $db->query($q); if($row2 = $db->fetchByAssoc($r2)) { $today = $timedate->nowDb(); $nextday = $timedate->asDbDate($timedate->getNow()->get("+1 day")); $mergeTime = $meeting_fields['DATE_START']; //$timedate->merge_date_time($meeting_fields['DATE_START'], $meeting_fields['TIME_START']); $date_db = $timedate->to_db($mergeTime); if ($date_db < $today) { $meeting_fields['DATE_START'] = "<font class='overdueTask'>" . $meeting_fields['DATE_START'] . "</font>"; } else if ($date_db < $nextday) { $meeting_fields['DATE_START'] = "<font class='todaysTask'>" . $meeting_fields['DATE_START'] . "</font>"; } else { $meeting_fields['DATE_START'] = "<font class='futureTask'>" . $meeting_fields['DATE_START'] . "</font>"; } $this->fill_in_additional_detail_fields(); } И пишу следующее: global $db, $timedate; $q = "SELECT date_start, status, DATE(date_start) as `d_date_start` FROM meetings WHERE deleted<>1 AND id = '{$meeting_fields[ID]}' ORDER BY status ASC, date_start ASC LIMIT 1 "; $r = $db->query($q); if($row = $db->fetchByAssoc($r)) { $color = '000'; if ($row['d_date_start'] == date('Y-m-d')) { $color = 'fb0'; //оранжевый } if(strtotime($row['date_start'])<strtotime($timedate->nowDb())){ $color='f00'; // красный } if($row['status']=='Held'){ $color='0f0'; // зеленый } if($row['status']=='Not Held'){ $color='00f'; // синий } $date_start = $timedate->to_display_date_time($row['date_start']); $meeting_fields["DATE_START"] = "<span style='color:#{$color}'>{$date_start}</span>"; } Здесь мы делаем запрос к БД и в цикле меняем цвет отображения даты в зависимости от статуса и даты.