/** * 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); } } } } }