EDV:WebSeitenEditieren/Veroeffentlichungen: Difference between revisions
(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 " |
print "<a href='{$papers[0][link]}'>{$papers[0][title]}</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 " |
print "<ul>"; |
||
foreach ( $papers as $k => $p ) { |
foreach ( $papers as $k => $p ) { |
||
print " |
print "<li><a href='{$p[link]}'>{$p[title]}</a></li>"; |
||
} |
} |
||
print " |
print "</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 "<table>"; |
|||
$i=$fromline; |
|||
foreach ( $papers as $k => $p ) { |
|||
$i++; |
|||
print "<tr> |
|||
<td align=right>$i</td> |
|||
<td align=left><a href='{$p[link]}'>{$p[title]}</a></td> |
|||
</tr>\n"; |
|||
} |
|||
print "</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
- 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' => '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>";