55 lines
2.0 KiB
Plaintext
55 lines
2.0 KiB
Plaintext
<?php
|
|
|
|
include_once ("pgcat.phh");
|
|
|
|
authenticate ();
|
|
|
|
getint("within_the_last");
|
|
|
|
$db = $config->db ();
|
|
$db->logger = new logger ();
|
|
if ($within_the_last) {
|
|
pageheader("List of Books released within the last $within_the_last days lacking a Subject and/or a LoCC");
|
|
} else {
|
|
pageheader("List of Books lacking a Subject and/or a LoCC");
|
|
}
|
|
class SubjLoccByEtextTable extends MoreTable {
|
|
function SubjLoccByEtextTable () {
|
|
$this->AddColumn ("<a href=\"book?mode=edit&fk_books=#pk#\">#pk#</a>",
|
|
"Etext Nr. (edit link)", "right");
|
|
$this->AddSimpleColumn ("author", "Author");
|
|
$this->AddColumn ("<a href=\"/etext/#pk#\">#title#</a>",
|
|
"Title (bibrec link)");
|
|
$this->AddColumn ("<span style=\"background-color:#nosubj#;\">" .
|
|
" </span>",
|
|
"No Subj", "narrow");
|
|
$this->AddColumn ("<span style=\"background-color:#nolocc#;\">" .
|
|
" </span>",
|
|
"No LoCC", "narrow");
|
|
$this->limit = 30;
|
|
$this->relay = array ();
|
|
}
|
|
}
|
|
$table = new SubjLoccByEtextTable ();
|
|
$sql="select distinct on (fk_books) fk_books as pk, text as title, author, " .
|
|
"(case when fk_subjects is null then 'black' end) as nosubj, " .
|
|
"(case when fk_loccs is null then 'black' end) as nolocc " .
|
|
"from attributes left join mn_books_subjects using (fk_books) " .
|
|
"left join mn_books_loccs using (fk_books) " .
|
|
"join mn_books_authors using (fk_books) " .
|
|
"join authors on authors.pk=fk_authors ";
|
|
if ($within_the_last) {
|
|
$sql=$sql . "join books on books.pk=fk_books ";
|
|
}
|
|
$sql=$sql . "where fk_attriblist=245 and " .
|
|
"fk_roles='aut' and heading=1 and ";
|
|
if ($within_the_last) {
|
|
$sql=$sql . "release_date>=(current_date-integer '$within_the_last') and ";
|
|
}
|
|
$sql=$sql . "((fk_subjects is null) or (fk_loccs is null)) " .
|
|
"order by fk_books, text, author" .
|
|
$table->MkOffset ();
|
|
$db->Exec($sql);
|
|
$table->PrintTable($db, "Books lacking a Subject and/or a LoCC");
|
|
|
|
pagefooter(); |