EDV:WebSeitenEditieren/Veroeffentlichungen: Difference between revisions

From KIP Wiki
⧼kip-jumptonavigation⧽⧼kip-jumptosearch⧽
(New page: = Veröffentlichungen aus der Datenbank anzeigen = Alle hier dargestellten Methoden sind primär für die PHP-Darstellung der KIP-Webseiten gedacht. == Basis ...)
 
No edit summary
Line 23: Line 23:
#*'groups' Gruppen
#*'groups' Gruppen
#*'type' Dokumentenart (1:Diplomarbeit, 2:Dissertation, 3:Staatsexamensarbeit, 4:Paper, 5:Vortrag)
#*'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.
# Rückgabewert: Array mit den gefundenen Artikeln.


Line 53: Line 66:
Einfach den Titel eines bestimmten Papers mit Link auf die Details anzeigen:
Einfach den Titel eines bestimmten Papers mit Link auf die Details anzeigen:
$papers = get_papers(array( 'kipno' => '=HD-KIP 09-44' ));
$papers = get_papers(array( 'kipno' => '=HD-KIP 09-44' ));
print "<a href='{$papers[0][link]}'>{$papers[0][title]}</a>";
print "&lt;a href='{$papers[0][link]}'>{$papers[0][title]}&lt;/a>";


Alle Artikel des Jahres 2010 der Gruppe F18:
Alle Artikel des Jahres 2010 der Gruppe F18:
Line 60: Line 73:
'groups' => 'F18',
'groups' => 'F18',
));
));
print "<ul>\n";
print "&lt;ul>";
foreach ( $papers as $k => $p ) {
foreach ( $papers as $k => $p ) {
print "<li><a href='{$p[link]}'>{$p[title]}</a></li>\n";
print "&lt;li>&lt;a href='{$p[link]}'>{$p[title]}&lt;/a>&lt;/li>";
}
}
print "</ul>\n";
print "&lt;/ul>";


== Längere Listen ==
== 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' => '2010',
'groups' => 'F18',
));
$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, $maxlines-$fromline ));
} else { $fromline=0; }
print "&lt;table>";
$i=$fromline;
foreach ( $papers as $k => $p ) {
$i++;
print "&lt;tr>
&lt;td align=right>$i</td>
&lt;td align=left><a href='{$p[link]}'>{$p[title]}</a></td>
&lt;/tr>\n";
}
print "&lt;/table>";

Revision as of 12:21, 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' => '2010',
  'groups' => 'F18',
 ));
$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, $maxlines-$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>";