EDV:WebSeitenEditieren/Veroeffentlichungen: Difference between revisions
No edit summary |
No edit summary  |
||
Line 99: | Line 99: | ||
$anzahl = count($papers); |
$anzahl = count($papers); |
||
$fromline=preg_replace('/[^0-9]+/',"",$_REQUEST['fromline']); |
$fromline=preg_replace('/[^0-9]+/',"",$_REQUEST['fromline']); |
||
if ($fromline== |
if ($fromline=="") { $fromline=0; } |
||
if ($anzahl>$maxlines) { |
if ($anzahl>$maxlines) { |
Latest revision as of 12:27, 9 February 2010
Veröffentlichungen aus der Datenbank anzeigen
Alle hier dargestellten Methoden sind primär für die PHP-Darstellung der KIP-Webseiten gedacht.
Basis
Neben der obligatorisch einzubindenen header-Datei muss jetzt noch die biblio-Datei hinzugefügt werden:
<?php include('header.php.inc'); include('biblio.php.inc');
Danach stehen die im nächsten Kapitel beschriebenen Funktionen zur Verfügung.
Funktionen
get_papers
- Parameter : ein Array mit zu suchenden Werten
Mögliche Felder sind- 'id' Interne ID-Nummer
- 'kipno' KIP-Veröffentlichungsnummer
- 'year' Erscheinungsjahr
- 'title' Dokumenten-Titel
- 'author' Autor(en)
- 'groups' Gruppen
- 'type' Dokumentenart (1:Diplomarbeit, 2:Dissertation, 3:Staatsexamensarbeit, 4:Paper, 5:Vortrag)
- - Alle angegebenen Schlüsselworte werden per UND verknüpft.
- - die Werte werden als Regular Expression interpretiert.
- Möchte man aber den Wert auf Gleichheit prüfen lassen,
- muss das erste Zeichen des Wertes ein Gleichheitszeichen sein.
- Beispiel:
- 'kipno' => 'HD-KIP 10-1'
- wählt alle Papers, die mit 'HD-KIP 10-1' *beginnen*, dh. auch
- die Nummern 'HD-KIP 10-11' 'HD-KIP 10-12' ...
- 'kipno' => '=HD-KIP 10-1'
- wählt explizit die Nummer 'HD-KIP 10-1' !
- oder
- 'title' => 'measure'
- wählt Papers, die 'measure' im Titel enthalten ...
- Rückgabewert: Array mit den gefundenen Artikeln.
Beispiel für ein Rückgabe-Array
Array ( [0] => Array ( [author] => Jekaterina Erenpreisa, Mark S. Cragg, Kristine Salmina, Michael Hausmann, Harry Scherthan [title] => The role of meiotic cohesin REC8 in chromosome segregation in γ irradiation-induced endopolyploid tumour cells [kipno] => HD-KIP 09-44 [year] => 2009 [source] => doi:10.1016/j.yexcr.2009.05.011 [groups] => F18, [keywords] => REC8, SGOL1, SGOL2, Irradiation, Tumour cells, Endopolyploidy, Chromosome segregation [type] => 4 [doctype] => Paper [abstract] => [abstracten] => [link] => /Veroeffentlichungen/details.php?id=1964 ) )
Beispiele
einfache Beispiele
Einfach den Titel eines bestimmten Papers mit Link auf die Details anzeigen:
$papers = get_papers(array( 'kipno' => '=HD-KIP 09-44' )); print "<a href='{$papers[0][link]}'>{$papers[0][title]}</a>";
Alle Artikel des Jahres 2010 der Gruppe F18:
$papers = get_papers(array( 'year' => '2010', 'groups' => 'F18', )); print "<ul>"; foreach ( $papers as $k => $p ) { print "<li><a href='{$p[link]}'>{$p[title]}</a></li>"; } print "</ul>";
Längere Listen
Gerade, wenn die Listen (siehe obiges Beispiel) länger werden, kann man auch 'seitenweise' vorwärts und rückwärts gehen:
Dazu kann man z.B. die Funktion 'previous_next' verwenden. Die bekommt man, wenn man noch die Datei 'tools' mit einbindet. Der Dateikopf sieht dann so aus:
<?php include('header.php.inc'); include('biblio.php.inc'); include('tools.php.inc'); $maxlines = 20; // maximale Einträge pro Seite $papers = get_papers(array( 'year' => '2009', )); $anzahl = count($papers); $fromline=preg_replace('/[^0-9]+/',"",$_REQUEST['fromline']); if ($fromline=="") { $fromline=0; } if ($anzahl>$maxlines) { previous_next('a=1',$fromline,$maxlines,$anzahl); $papers = array_slice($papers,$fromline, min( $maxlines, $anzahl-$fromline )); } else { $fromline=0; } print "<table>"; $i=$fromline; foreach ( $papers as $k => $p ) { $i++; print "<tr>
<td align=right>$i <td align=left><a href='{$p[link]}'>{$p[title]}</a> </tr>\n"; } print "</table>";