Exemplo n.º 1
0
 /**
  * Group::getNewGroupsXml()
  * @desc     Создаёт xml с новыми исполнителями
  * @param \DOMElement $node
  * @param integer $limit
  * @param bool $trackCountFilter - если true то в выводе будут только группы с треками.
  * @internal param bool $fanGroup - фильтр по фангруппам 0 - без фангрупп, 1 - с фангруппами
  * @return void
  */
 public static function getNewGroupsXml($node, $limit = 15, $trackCountFilter = true)
 {
     $db = Difra\MySQL::getInstance();
     $limitString = '';
     if ($limit != 0) {
         $limitString = ' LIMIT ' . intval($limit);
     }
     $res = $db->fetch("SELECT g.*\n\t\t\t\t\tFROM `groups` g\n\t\t\t\t\tORDER BY g.`id` DESC" . $limitString);
     if (!empty($res)) {
         $groupsIdArray = [];
         foreach ($res as $data) {
             $groupsIdArray[] = $data['id'];
         }
         // TODO: Tracks не должно же быть в плагине
         $tracksCount = \Tracks::getInstance()->getTracksCount($groupsIdArray);
         if (!empty($tracksCount)) {
             /** @var \DOMElement $newGroupsXml */
             $newGroupsXml = $node->appendChild($node->ownerDocument->createElement('newGroups'));
             $newGroupsXml->setAttribute('limit', $limit);
             foreach ($res as $data) {
                 if ($trackCountFilter) {
                     if (isset($tracksCount[$data['id']]['tracks_count']) && $tracksCount[$data['id']]['tracks_count'] != 0) {
                         /** @var \DOMElement $groupItemXml */
                         $groupItemXml = $newGroupsXml->appendChild($node->ownerDocument->createElement('group'));
                         foreach ($data as $key => $value) {
                             $groupItemXml->setAttribute($key, $value);
                         }
                         $groupItemXml->setAttribute('tracks_count', $tracksCount[$data['id']]['tracks_count']);
                     }
                 } else {
                     $tCount = 0;
                     $groupItemXml = $newGroupsXml->appendChild($node->ownerDocument->createElement('group'));
                     foreach ($data as $key => $value) {
                         $groupItemXml->setAttribute($key, $value);
                     }
                     if (isset($tracksCount[$data['id']]['tracks_count'])) {
                         $tCount = intval($tracksCount[$data['id']]['tracks_count']);
                     }
                     $groupItemXml->setAttribute('tracks_count', $tCount);
                 }
             }
         }
     }
 }