menu(); } $task = V::get('task', 'cyfrowe', $_GET); if ($task == 'analog') { $programy = TvOfertaHelper::getProgramyAnalogowe(); $groups = array(); foreach ($programy as $r) { $groups[$r->TV_PROGRAM_PROFILE] = true; } $orderby = V::get('orderby', '', $_GET); $TvOfertaView->analogowe($programy, $groups, $orderby); } else { $pakiety_cyfrowe = TvOfertaHelper::getPakietyCyfrowe(); $programy = TvOfertaHelper::getProgramyCyfrowe(); $groups = array(); foreach ($programy as $r) { $groups[$r->TV_PROGRAM_PROFILE] = true; } $orderby = V::get('orderby', '', $_GET); $view_type = V::get('view_type', '', $_GET); $TvOfertaView->cyfrowe($programy, $pakiety_cyfrowe, $groups, $orderby, $view_type); } } class TvOfertaView { // TODO: function link() function menu() { // TODO: MENU_INIT na FUNCTION_INIT i HEADER NOT INIT ?>
Cyfrowe | Analogowe
Analogowe posortowane po: grupach tematycznych | nazwie
Cyfrowe posortowane po: grupach tematycznych | pakietach | nazwie
$group) { $groups[$name] = next($colors); } if ($orderby == 'pakiety') { $group_sorter = new GroupSorterCallback(); $group_sorter->setType('pakiety'); $group_sorter->_pakiety_cyfrowe = $pakiety_cyfrowe; $group_sorter->addGroup('Biały'); $group_sorter->addGroup('Brązowy'); $group_sorter->addGroup('Srebrny'); $group_sorter->addGroup('Złoty'); $group_sorter->addGroup('Platynowy'); $group_sorter->addGroup('Pakiet Premium: CANAL+'); $group_sorter->addGroup('Pakiet Premium: CANAL+ HD'); $pakiety_cyfrowe_names = array(); foreach ($pakiety_cyfrowe as $pakiet) { $pakiety_cyfrowe_names[] = $pakiet->WWW_NAZWA; } $group_sorter->addGroups($pakiety_cyfrowe_names); uasort($programy, array($group_sorter, 'sort')); } else if ($orderby == 'name') { $group_sorter = new GroupSorterCallback(); $group_sorter->setType('name'); uasort($programy, array($group_sorter, 'sort')); } else { $group_sorter = new GroupSorterCallback(); $group_sorter->setType('group'); $group_sorter->addGroup('ogólnotematyczny'); $group_sorter->addGroup('sport'); $group_sorter->addGroup('filmowy'); $group_sorter->addGroup('kobiecy'); $group_sorter->addGroup('dla dzieci'); $group_sorter->addGroup('informacyjny'); $group_sorter->addGroups(array_keys($groups)); uasort($programy, array($group_sorter, 'sort')); } $pakiety_cyfrowe_count = array(); foreach ($pakiety_cyfrowe as $pakiet) { $pakiety_cyfrowe_count[$pakiet->ID] = 0; } $pakiety_cyfrowe_count['HD'] = 0; foreach ($programy as $program) { foreach ($pakiety_cyfrowe as $pakiet) { if (in_array($pakiet->ID, $program->pakiety)) { $pakiety_cyfrowe_count[$pakiet->ID] += 1; } } if ($program->TV_SIGAL_DELIVERY == 'DVB-HD') { $pakiety_cyfrowe_count['HD'] += 1; } } if ($view_type == 'csv') { $this->csv_cyfrowe($programy, $pakiety_cyfrowe, $groups, $orderby = ''); return; } $this->css(); ?>

Oferta programowa - Drukuj

porównanie pakietów telewizji cyfrowej

TV_SIGAL_DELIVERY == 'DVB-HD') : ?> ID, $program->pakiety)) : ?>
HD   WWW_NAZWA; ?>
Liczba programów ID]; ?>
TV_DVBC_EPG_CHANNEL_NUMBER; ?> TV_NAZWA_PROGRAMU; ?> TV_PROGRAM_PROFILE; ?> HD
'; foreach ($programy as $program) { $csv_line = array(); $csv_line []= '"' . $program->TV_DVBC_EPG_CHANNEL_NUMBER . '"'; $csv_line []= '"' . $program->TV_NAZWA_PROGRAMU . '"'; $csv_line []= '"' . $program->TV_PROGRAM_PROFILE . '"'; $csv_line []= '"' . (($program->TV_SIGAL_DELIVERY == 'DVB-HD')? 'HD' : '') . '"'; foreach ($pakiety_cyfrowe as $pakiet) { if (in_array($pakiet->ID, $program->pakiety)) { $csv_line []= '"1"'; } else { $csv_line []= '"0"'; } } echo implode(';', $csv_line) . "\n"; } echo''; } function analogowe($programy, $groups, $orderby = '') { $colors = array(); $colors []= '#FFB3B3'; $colors []= '#FFD9B3'; $colors []= '#FFFFB3'; $colors []= '#D9FFB3'; $colors []= '#B3FFB3'; $colors []= '#B3FFD9'; $colors []= '#B3FFFF'; $colors []= '#B3D9FF'; $colors []= '#B3B3FF'; $colors []= '#D9B3FF'; $colors []= '#FFB3FF'; $colors []= '#FFB3D9'; $colors []= '#FFC6B3'; $colors []= '#FFECB3'; $colors []= '#ECFFB3'; $colors []= '#C6FFB3'; $colors []= '#B3FFC6'; $colors []= '#B3FFEC'; reset($colors); foreach ($groups as $name => $group) { $groups[$name] = next($colors); } if ($orderby == 'name') { $group_sorter = new GroupSorterCallback(); $group_sorter->setType('name'); uasort($programy, array($group_sorter, 'sort')); } else { $group_sorter = new GroupSorterCallback(); $group_sorter->setType('group'); $group_sorter->addGroup('ogólnotematyczny'); $group_sorter->addGroup('sport'); $group_sorter->addGroup('filmowy'); $group_sorter->addGroup('kobiecy'); $group_sorter->addGroup('dla dzieci'); $group_sorter->addGroup('informacyjny'); $group_sorter->addGroups(array_keys($groups)); uasort($programy, array($group_sorter, 'sort')); } $this->css(); ?>

Oferta programowa - telewizja analogowa - Drukuj

Lp. Nazwa Grupa Czętotliwość
TV_NAZWA_PROGRAMU; ?> TV_PROGRAM_PROFILE; ?> TV_ANALOG_FREQUENCY; ?>
query($sql); while ($r = $db->fetch($res)) { $pakiety_cyfrowe[$r->ID] = $r; } return $pakiety_cyfrowe; } function getProgramyCyfrowe() { $db = DB::getDB(); $programy = array(); $sql = "select c.ID as c_ID , c.ID_PROJECT as c_ID_PROJECT , p.ID, p.TV_NAZWA_PROGRAMU, p.TV_LANGUAGE, p.TV_SIGAL_DELIVERY, p.TV_PROGRAM_PROFILE, p.TV_DVBC_EPG_CHANNEL_NUMBER, p.M_DIST_INVENTOR , CAST(p.`TV_DVBC_EPG_CHANNEL_NUMBER` AS SIGNED) as order_by_lp , GROUP_CONCAT(cg.ID) as cost_group_ids from `USERS2_OFFERS_COSTS_GROUPS` as cg left join `USERS2_OFFERS_COSTS` as c on(c.`ID_COSTS_GROUPS`=cg.`ID`) left join `IN7_MK_BAZA_DYSTRYBUCJI` as p on(p.`ID`=c.`ID_PROJECT` and p.`M_DIST_TYPE`='TV__UMOWA ZAKUPU KANALU') where p.`M_DIST_TYPE`='TV__UMOWA ZAKUPU KANALU' and c.`S_OFFER_STATUS`='IN_OFFER' and cg.`ID_MAIN_COSTS_GROUP`=47 and p.`ID` is not NULL and cg.`A_STATUS` in('WAITING', 'NORMAL') and c.`A_STATUS` in('WAITING', 'NORMAL') and p.`A_STATUS` in('WAITING', 'NORMAL') and p.`TV_SIGAL_DELIVERY` in ('DVB-SD', 'DVB-HD') and cg.`POKAZ_NA_WWW`='TAK' group by p.ID order by order_by_lp ASC limit 1000; "; $res = $db->query($sql); while ($r = $db->fetch($res)) { $r->pakiety = explode(',', $r->cost_group_ids); $programy []= $r; } return $programy; } function getProgramyAnalogowe() { $db = DB::getDB(); $programy = array(); $sql = "select c.ID as c_ID , c.ID_PROJECT as c_ID_PROJECT , p.ID, p.TV_NAZWA_PROGRAMU, p.TV_LANGUAGE, p.TV_SIGAL_DELIVERY , p.TV_PROGRAM_PROFILE -- , p.TV_DVBC_EPG_CHANNEL_NUMBER , p.M_DIST_INVENTOR , p.TV_ANALOG_FREQUENCY , CAST(p.`TV_DVBC_EPG_CHANNEL_NUMBER` AS SIGNED) as order_by_lp , GROUP_CONCAT(cg.ID) as cost_group_ids from `USERS2_OFFERS_COSTS_GROUPS` as cg left join `USERS2_OFFERS_COSTS` as c on(c.`ID_COSTS_GROUPS`=cg.`ID`) left join `IN7_MK_BAZA_DYSTRYBUCJI` as p on(p.`ID`=c.`ID_PROJECT` and p.`M_DIST_TYPE`='TV__UMOWA ZAKUPU KANALU') where p.`M_DIST_TYPE`='TV__UMOWA ZAKUPU KANALU' and c.`S_OFFER_STATUS`='IN_OFFER' and cg.`ID`=2 and p.`ID` is not NULL and cg.`A_STATUS` in('WAITING', 'NORMAL') and c.`A_STATUS` in('WAITING', 'NORMAL') and p.`A_STATUS` in('WAITING', 'NORMAL') and p.`TV_SIGAL_DELIVERY` in ('ANALOG') -- and cg.`POKAZ_NA_WWW`='TAK' group by p.ID order by order_by_lp ASC limit 1000; "; $res = $db->query($sql); while ($r = $db->fetch($res)) { $r->pakiety = explode(',', $r->cost_group_ids); $programy []= $r; } return $programy; } } class GroupSorterCallback { var $groups_order; var $_type = '';// group, pakiety var $_pakiety_cyfrowe = ''; function setType($type) { $this->_type = $type; } function setOrder($group_name, $order) { $this->groups_order[$group_name] = $order; } function getOrder($item) { if ($this->_type == 'name') { return 0; } else if ($this->_type == 'pakiety') { $min_order = 999; foreach ($this->_pakiety_cyfrowe as $pakiet) { if (in_array($pakiet->ID, $item->pakiety)) { $cur_order = 999; if (array_key_exists($pakiet->WWW_NAZWA, $this->groups_order)) { $cur_order = $this->groups_order[$pakiet->WWW_NAZWA]; } $min_order = min($min_order, $cur_order); } } return $min_order; } else { $group_name = $item->TV_PROGRAM_PROFILE; if (array_key_exists($group_name, $this->groups_order)) { return $this->groups_order[$group_name]; } } return count($this->groups_order) + 1; } function addGroup($group_name) { $this->groups_order[$group_name] = count($this->groups_order) + 1; } function addGroups($groups) { foreach ($groups as $group_name) { if (!array_key_exists($group_name, $this->groups_order)) { $this->addGroup($group_name); } } } function sort($a, $b) { $oa = $this->getOrder($a); $ob = $this->getOrder($b); // sortuj w kolejności malejącej if ($oa < $ob) { return -1; } else if ($oa > $ob) { return 1; } else { // sortuj rosnąco alfabetycznie if ($a->TV_NAZWA_PROGRAMU < $b->TV_NAZWA_PROGRAMU) { return -1; } else if ($a->TV_NAZWA_PROGRAMU > $b->TV_NAZWA_PROGRAMU) { return 1; } else { return 0; } } } }