Перейти к содержимому


Вопрос по представлению рабочего стола

рабочий стол smarty представление

Сообщений в теме: 5

#1 aleks.goodcolor

    Активный участник

  • Пользователи
  • PipPipPip
  • 198 сообщений
  • Пол:Мужчина
  • Город:Йошкар-ола

Отправлено 23 Июль 2014 - 15:07

Имеется рабочий стол с кнопкой "Получить задание" и рядом выводится сколько заданий доступно(ссылка на кнопку и число доступных заданий формируется через вычисления в "подготовке данных"). Все работает нормально но если в систему заходит новый пользователь, то он сначала видит кнопку "получить задание" со ссылкой и кол-вом заданий предыдущего пользователя.Если нажать на f5 то показывает его данные. Подскажите пожалуйста в чем может быть проблема?

Ниже часть кода представления где я получаю ссылку и число доступных заданий.

// Формируем массив ссылок ==================================================
$rows = data_table("Ссылки на стартовой","status=0 order by id","all");
foreach ($rows as $row) $links[] = array('name'=>$row['Отображаемое имя'],'url'=>$row['URL'],'queue'=>$row['очередь'],'description'=>$row['Описание ссылки'],'access'=>explode("-",$row['Доступ']));
if (count($links) > 0)// изменения
   {
	 foreach($links as $index => $link)
	   {
		 if (in_array($user['group_id'], $link['access']))
		   $output_array[] = array(
			'title'=>$link['name'],
			'description'=>nl2br($link['description']),
			'queue'=>$link['queue'],
			'url'=>$link['url']);
	   }
   }
  
  
   // "Получить задание"
$ms11 = array();
$mas11 = array();
$res11 = data_select(47, "`status`=0 AND `f9332`='новый' AND `f492` LIKE '-",$user['id'],"-'");
	 while($row11 = sql_fetch_assoc($res11))
	 {
	
$ms11[] = $row11;		
$mas11[] = strtotime($row11['add_time']);
	
	 }
$date11 = min($mas11);
$date22 = date("Y-m-d H:i:s", $date11);
foreach($ms11 as $val)
{//echo 'f2';
  if($val['add_time'] == $date22)
  {
			  $link = "/view_line2.php?table=47&filter=63&line={$val['id']}";
			  data_update(83, array('f1030'=>$link), "`f1028`='Получить задание'");
	   break;
  }
}
// вывод очереди
$k=0;
$res2 = data_select(47, "`status`=0 AND `f9332`='новый' AND `f492` LIKE '%-",$user['id'],"-%'");
	while($row2 = sql_fetch_assoc($res2))
	{
		$mas2[]=$row2['f492'];
	}
$k = count($mas2);
data_update(83, array('f9472'=>$k), "`f1028`='Получить задание'");
$select_graf = ($_REQUEST['_graf'])?intval($_REQUEST['_graf']):1;
$smarty->assign("select_graf", $select_graf);
$smarty->assign("datemanager", $datemanager);
$smarty->assign("date1", $date1);
$smarty->assign("date2", $date2);
$smarty->assign("user_group", $user_group);
$smarty->assign("data_right", $data_right);
$smarty->assign("graph", $graph);		
$smarty->assign("is_graph", $is_graph);
$smarty->assign("output_array", $output_array);
$smarty->assign("personal_array", $personal_array);
$smarty->assign("links", $output_html);

Сообщение отредактировал aleks.goodcolor: 23 Июль 2014 - 15:08


#2 aleks.goodcolor

    Активный участник

  • Пользователи
  • PipPipPip
  • 198 сообщений
  • Пол:Мужчина
  • Город:Йошкар-ола

Отправлено 23 Июль 2014 - 15:27

Проблема решена путем добавления строки:
$smarty->assign("link", $link);
И дальнейшее использование переменной Smarty в отображении.

#3 aleks.goodcolor

    Активный участник

  • Пользователи
  • PipPipPip
  • 198 сообщений
  • Пол:Мужчина
  • Город:Йошкар-ола

Отправлено 24 Июль 2014 - 10:30

Появилась проблема с графиком на рабочем столе. Почему-то показатель "Принято" пустой хотя другие показатели, полученные по такому же принципу работают.
Прилагаю код формирования графика:

// График задания
		  $result = sql_select_field("`".DATA_TABLE."47`","DATE_FORMAT(`f504`,'%Y-%m-%d') AS `date_act`,`f9332`","`f6431`='Задание' AND `f504`>='",$date1_fet,"' AND `f504`<='",$date2_fet,"' AND (`f492` LIKE '%-",$user['id'],"-%') AND `status`<>'2' ORDER BY `date_act`");
		  while($d = sql_fetch_assoc($result))
		  {
		    $data_date ['Выполнено'] [$d['date_act']] += ($d['f9332']=='выполнено')?1:0;
		    $data_date ['Принято'] [$d['date_act']] += ($d['f9332']=='в работе')?1:0;
		    $data_date ['Принято'] [$d['date_act']] += ($d['f9332']=='пауза')?1:0;
		  }
		  $result = sql_select_field("`".DATA_TABLE."47`","DATE_FORMAT(`add_time`,'%Y-%m-%d') AS `date_act`,`f9332`","f6431='Задание' AND `add_time`>='",$date1_fet,"' AND `add_time`<='",$date2_fet,"' AND (`f492` LIKE '%-",$user['id'],"-%') AND `status`='0' ORDER BY `date_act`");
		  while ($d = sql_fetch_assoc($result))
		  {
		    $data_date ['В очереди'] [$d['date_act']] += ($d['f9332']=='новый')?1:0;
		  }
		  $types = array('Выполнено','Принято','В очереди');
		 
		  if (!$data_date ['Выполнено'])
		    $data_date ['Выполнено'][date('Y-m-d',strtotime($date1))] = 0;


#4 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 24 Июль 2014 - 12:07

Ну так проверяйте, отладка то вам для чего. Не надо перекладывать это на форум, здесь подсказывают, но не делают работу за вас. Чисто визуально каких-то грубых ошибок я не вижу.

#5 aleks.goodcolor

    Активный участник

  • Пользователи
  • PipPipPip
  • 198 сообщений
  • Пол:Мужчина
  • Город:Йошкар-ола

Отправлено 24 Июль 2014 - 12:08

понятно, буду искать проблему

#6 dolphin

    Активный участник

  • Пользователи
  • PipPipPip
  • 341 сообщений

Отправлено 24 Июль 2014 - 14:09

Вот кстати по графикам.. Я бы подключил гугловские ))) куда красивее и легче настраиваются.





Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 анонимных