prefix(); // module $module = MyDumpTool::getModule('PubMedPDF'); // paper $paper = []; $authorIdMap = []; $journalIdMap = []; $sql = <<< SQL SELECT * FROM `${prefix}_pmid_id` ORDER BY `id` ASC SQL; if (!($res = $xoopsDB->query($sql))) { var_dump($xoopsDB); exit(); } while ($row = $xoopsDB->fetchArray($res)) { MyDumpTool::decode($row); MyDumpTool::convertToInt($row, ['id', 'PMID', 'Journal', 'Year']); $authors = array_map('trim', explode(',', rtrim(trim($row['Author']), ','))); $authorIds = []; foreach ($authors as $_author) { $authorId = (int) substr($_author, 1, -1); $authorIds[] = $authorId; $authorIdMap[$authorId][] = $row['id']; } $journalIdMap[$row['Journal']][] = $row['id']; $paper[] = [ 'id' => $row['id'], 'pmid' => $row['PMID'], 'journal_id' => $row['Journal'], 'year' => $row['Year'], 'volume' => $row['Volume'], 'page' => $row['Page'], 'author_ids' => $authorIds, 'title' => $row['Title'], ]; $paperDetail = [ 'id' => $row['id'], 'abstract' => $row['Abstract'], 'reg_user' => $row['R_usr'], 'reg_date' => $row['R_date'], ]; //MyDumpTool::saveJson('public/modules/PubMedPDF/detail/'.$row['id'].'.json', $paperDetail); } $xoopsDB->freeRecordSet($res); // author $author = []; $sql = <<< SQL SELECT * FROM `${prefix}_pmid_author` ORDER BY `Author` ASC SQL; if (!($res = $xoopsDB->query($sql))) { var_dump($xoopsDB); exit(); } while ($row = $xoopsDB->fetchArray($res)) { MyDumpTool::decode($row); MyDumpTool::convertToInt($row, ['id']); $author[] = [ 'id' => $row['id'], 'name' => $row['Author'], 'count' => count($authorIdMap[$row['id']]), ]; } $xoopsDB->freeRecordSet($res); // journal $journal = []; $sql = <<< SQL SELECT * FROM `${prefix}_pmid_journal` ORDER BY `Journal` ASC SQL; if (!($res = $xoopsDB->query($sql))) { var_dump($xoopsDB); exit(); } while ($row = $xoopsDB->fetchArray($res)) { MyDumpTool::decode($row); MyDumpTool::convertToInt($row, ['id']); $journal[] = [ 'id' => $row['id'], 'name' => $row['Journal'], 'count' => count($journalIdMap[$row['id']]), ]; } $xoopsDB->freeRecordSet($res); $data = [ 'name' => $module['name'], 'author' => $author, 'journal' => $journal, 'paper' => $paper, ]; MyDumpTool::saveJson('public/modules/PubMedPDF/index.json', $data); }