EDV:WebSeitenEditieren/Veroeffentlichungen: Difference between revisions

From KIP Wiki
⧼kip-jumptonavigation⧽⧼kip-jumptosearch⧽
No edit summary
No edit summary
 
(One intermediate revision by the same user not shown)
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=='') { $fromline=0; }
if ($fromline=="") { $fromline=0; }
if ($anzahl>$maxlines) {
if ($anzahl>$maxlines) {
previous_next('a=1',$fromline,$maxlines,$anzahl);
previous_next('a=1',$fromline,$maxlines,$anzahl);
$tmppapers = array_slice($papers,$fromline, min( $maxlines, $anzahl-$fromline ));
$papers = array_slice($papers,$fromline, min( $maxlines, $anzahl-$fromline ));
$papers = $tmppapers;
unset($tmppapers);
} else { $fromline=0; }
} else { $fromline=0; }

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

  1. 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 ...
  2. 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>";