Ejemplo n.º 1
0
function _get_image_url($record, $size)
{
    if ($record->getField("020") && $record->getField("020")->getSubfield("a")) {
        $isbn = marctrim($record->getField("020")->getSubfield("a"));
        $isbn = str_replace('-', '', $isbn);
        $isbn = str_replace(' ', '', $isbn);
        return '<img src="http://covers.openlibrary.org/b/isbn/' . $isbn . '-' . $size . '.jpg" class="openlibrary_image cover_image_' . $size . '">';
    } else {
        return false;
    }
}
Ejemplo n.º 2
0
function format($records, $num_of_records, $first_record, $last_record)
{
    $out = '';
    foreach ($records as $rec) {
        $isbns = $rec->getFields('020');
        if ($isbns) {
            foreach ($isbns as $isbn) {
                $thisisbn = marctrim($isbn->getSubfield("a"));
                if (strlen($thisisbn) >= 10) {
                    $out .= "{$thisisbn}\n";
                }
            }
        }
    }
    $ret = array('data' => $out, 'content_type' => 'text/plain');
    return $ret;
}
Ejemplo n.º 3
0
function oppnabib_detail($record, $style, $loggedin_user)
{
    global $config;
    // Extract some data about the record
    // These will be sent to Oppna bibliotek if the book is not there yet
    $title = '';
    if ($record->getField("245") && $record->getField("245")->getSubfield("a")) {
        $title = urlencode(marctrim($record->getField("245")->getSubfield("a")));
    }
    $authorfirstname = '';
    $authorlastname = '';
    if ($record->getField("100") && $record->getField("100")->getSubfield("a")) {
        $author = marctrim($record->getField("100")->getSubfield("a"));
        if (substr_count($author, ',') > 0) {
            list($authorlastname, $authorfirstname) = explode(", ", $author);
            $authorlastname = urlencode($authorlastname);
            $authorfirstname = urlencode($authorfirstname);
        }
    }
    $isbn = '';
    if ($record->getField("020") && $record->getField("020")->getSubfield("a")) {
        $isbn = marctrim($record->getField("020")->getSubfield("a"));
    }
    // Get the ID of the book
    $idurl = $config['plugins']['oppnabib']['baseurl'] . "books?book[title]={$title}&book[authorfirstname]={$authorfirstname}&book[authorlastname]={$authorlastname}";
    $book = simplexml_load_string(getOppnabib($idurl, true));
    $bookid = $book->book->id;
    if ($bookid) {
        // Get any data about the book identified by the ID
        $dataurl = $config['plugins']['oppnabib']['baseurl'] . "assessments?assessment[book_id]=" . $bookid;
        $bookdata = simplexml_load_string(getOppnabib($dataurl));
    }
    $out = '';
    $new_assessment_added = false;
    if ($style == 'full') {
        $out = '<div class="oppnabib"><h2>Öppna bibliotek - ' . urldecode($title) . '</h2>' . "\n";
        $out .= '<!-- bookid: ' . $bookid . ' -->' . "\n";
        // Do we have alogged in user?
        if (!empty($loggedin_user)) {
            // Check if a user has added an opinion
            if (!empty($_POST['oppnabib_assessment_header_input']) || !empty($_POST['oppnabib_assessment_text_input']) || !empty($_POST['oppnabib_grade_input'])) {
                $header = strip_tags($_POST['oppnabib_assessment_header_input']);
                $text = strip_tags($_POST['oppnabib_assessment_text_input']);
                // check that the grade is an integer, set to zero otherwise
                $grade = 0;
                if (is_int((int) strip_tags($_POST['oppnabib_grade_input']))) {
                    // TODO: check that $grade is between 1 and 6
                    $grade = $_POST['oppnabib_grade_input'];
                }
                // Collect the data that will be sent to Oppna bibliotek
                $book = array();
                if (!empty($bookid) && !empty($bookdata)) {
                    // This book is already in Oppna bibliotek, so we only need to send the ID
                    $book['assessment[grade]'] = $grade;
                    $book['assessment[comment_header]'] = $header;
                    $book['assessment[comment_text]'] = $text;
                    $book['assessment[book_id]'] = $bookid;
                    $book['assessment[published]'] = 1;
                } else {
                    // This book is not in Oppna bibliotek, we need to add it
                    $book['assessment[grade]'] = $grade;
                    $book['assessment[comment_header]'] = $header;
                    $book['assessment[comment_text]'] = $text;
                    $book['assessment[title]'] = $title;
                    $book['assessment[authorfirstname]'] = $authorfirstname;
                    $book['assessment[authorlastname]'] = $authorlastname;
                    $book['assessment[isbn]'] = $isbn;
                    $book['assessment[published]'] = 1;
                }
                $newassessment = simplexml_load_string(postOppnabib($book, $loggedin_user));
                if ($newassessment->error) {
                    $out .= '<p class="error">Noe gikk galt: ' . "\n";
                    $out .= '"' . $newassessment->error . '"</p>' . "\n";
                    $report = print_r($assessment, true);
                    $out .= '<!-- ' . $report . ' -->';
                } else {
                    $out .= '<p>Takk for at du bidro med din vurdering!</p>' . "\n";
                    $out .= format_assessment($header, $text, $grade, $loggedin_user);
                    $report = print_r($newassessment, true);
                    $out .= '<!-- ' . $report . ' -->';
                    $new_assessment_added = true;
                }
                // Create the form for adding an assessment
            } else {
                $out .= '<h3>Si din mening</h3>' . "\n";
                $out .= '<p>Du er logget inn som: ' . $loggedin_user . '</p>' . "\n";
                $out .= '<form method="post">' . "\n";
                $out .= 'Omtalens tittel:<br /><input type="text" name="oppnabib_assessment_header_input" size="40" /><br />' . "\n";
                $out .= 'Omtale:<br /><textarea name="oppnabib_assessment_text_input" cols="40" rows="10" ></textarea><br />' . "\n";
                $out .= '<select name="oppnabib_grade_input">' . "\n";
                $out .= '<option value="">Gi karakter</option>' . "\n";
                $out .= '<option value="1">&#10029;</option>' . "\n";
                $out .= '<option value="2">&#10029;&#10029;</option>' . "\n";
                $out .= '<option value="3">&#10029;&#10029;&#10029;</option>' . "\n";
                $out .= '<option value="4">&#10029;&#10029;&#10029;&#10029;</option>' . "\n";
                $out .= '<option value="5">&#10029;&#10029;&#10029;&#10029;&#10029;</option>' . "\n";
                $out .= '<option value="6">&#10029;&#10029;&#10029;&#10029;&#10029;&#10029;</option>' . "\n";
                $out .= '</select><br />' . "\n";
                $out .= '<input type="submit">' . "\n";
                $out .= '</form>' . "\n";
            }
        }
        // Display existing assessments
        $out .= '<h3>Hva andre mener</h3>' . "\n";
        // $out .= '<p>Antall meninger: ' . $bookdata->hitcount . '</p>';
        if ($bookdata->average_grade) {
            $out .= '<p>Gjennomsnittlig karakter: <span class="oppnabib_average_grade">' . $bookdata->average_grade . '</span></p>' . "\n";
        } else {
            if ($new_assessment_added == false) {
                $out .= '<p>Bli den første til å mene noe om denne boka!</p>' . "\n";
            }
        }
        // Output every assessment
        if ($bookdata->assessment) {
            foreach ($bookdata->assessment as $thisassessment) {
                $out .= '<p class="oppnabib_assessment">' . "\n";
                $out .= format_assessment($thisassessment->comment_header, $thisassessment->comment_text, $thisassessment->grade, $thisassessment->username);
                $out .= '(<span class="oppnabib_user_lib_name">' . $thisassessment->user_lib_name . '</span>)' . "\n";
                $out .= "</p>\n";
            }
        }
        $out .= '</div>' . "\n";
    } elseif ($style == 'compact') {
        $hitcount = 0;
        if ($bookdata->hitcount) {
            $hitcount = $bookdata->hitcount;
        }
        $out .= '<br /><span class="oppnabib_compact">Öppna bibliotek: <span class="oppnabib_hitcount">' . $hitcount . '</span> mening(er). ' . "\n";
        if ($bookdata->average_grade) {
            $out .= 'Gjennomsnitt: <span class="oppnabib_average_grade">' . $bookdata->average_grade . '</span>' . "\n";
        }
        $out .= '</span>' . "\n";
    }
    // DEBUG exit(print_r($bookdata));
    return $out;
}
Ejemplo n.º 4
0
function get_detail($record, $loggedin_user)
{
    global $config;
    $out = '<div class="recorddetail">';
    // Get the basic info anyway
    // Title
    if ($record->getField("245") && $record->getField("245")->getSubfield("a")) {
        // Remove . at the end of a title
        $title = preg_replace("/\\.\$/", "", marctrim($record->getField("245")->getSubfield("a")));
        $out .= '<p class="title">Tittel: ' . $title . "</p>\n";
    }
    if ($record->getField("245") && $record->getField("245")->getSubfield("b")) {
        $out .= '<p class="subtitle">Undertittel: ' . marctrim($record->getField("245")->getSubfield("b")) . "</p>\n";
    }
    if ($record->getField("245") && $record->getField("245")->getSubfield("c")) {
        $out .= '<p class="author">Forfatter: ' . marctrim($record->getField("245")->getSubfield("c")) . "</p>\n";
    }
    // Publication data
    if ($record->getField("260")) {
        // Year
        if ($record->getField("260")->getSubfield("c")) {
            $out .= '<p class="year">Publisert: ' . marctrim($record->getField("260")->getSubfield("c")) . "</p>\n";
        }
    }
    // Subjects
    $subjects = $record->getFields('6\\d\\d', true);
    if ($subjects) {
        $out .= '<p>Emner:</p>' . "\n";
        $out .= '<p>' . "\n";
        foreach ($subjects as $subject) {
            $out .= '' . marctrim($subject->getSubfield("a")) . '; ' . "\n";
        }
        $out .= '</p>' . "\n";
    }
    // Items
    if ($record->getField("850") && $record->getField("850")->getSubfield("a")) {
        $out .= '<p>Eksemplarer:</p><ul>';
        foreach ($record->getFields("850") as $item) {
            $out .= '<li>' . marctrim($item->getSubfield("a")) . ', ' . marctrim($item->getSubfield("c")) . '</li>' . "\n";
        }
        $out .= '</ul>';
    }
    // Link to OPAC
    if ($record->getField("996") && $record->getField("996")->getSubfield("u")) {
        $url = marctrim($record->getField("996")->getSubfield("u"));
        $out .= '<p><a href="' . $url . '">OPAC</a></p>' . "\n";
    }
    $out .= '</div>' . "\n";
    return $out;
}
Ejemplo n.º 5
0
         $out .= '<p>' . remove_lastfm_links($artist_data['artist']['bio']['summary']) . '</p>';
     }
     if (is_array($artist_data['artist']['similar']['artist'])) {
         $out .= '<p>Lignende artister:</p>';
         $out .= '<ul>';
         foreach ($artist_data['artist']['similar']['artist'] as $sim) {
             $out .= '<li><a href="/cgi-bin/koha/opac-search.pl?q=' . urlencode($sim['name']) . '">' . $sim['name'] . '</a></li>';
         }
         $out .= '</ul>';
     }
     // Link to Last.fm
     $out .= '<p><a href="' . $artist_data['artist']['url'] . '">Les mer hos Last.fm</a></p>';
 }
 $out .= '<hr />';
 // Album
 $album = marctrim($record->getField("245")->getSubfield("a"));
 $url = $config['lastfm']['api_root'];
 $url .= "?method=album.getinfo";
 $url .= "&api_key=" . $config['lastfm']['api_key'];
 $url .= "&artist=" . urlencode($artist);
 $url .= "&album=" . urlencode($album);
 $url .= "&format=json";
 if ($album = json_decode(file_get_contents($url), true)) {
     // Check for errors
     if ($album['error']) {
         $out .= "<p>Beklager, det oppstod en feil!<br />({$album['message']})</p>";
         exit;
     }
     // Title
     $out .= '<p style="font-weight: bold;">' . $album['album']['name'] . '</p>';
     // Image
Ejemplo n.º 6
0
function get_detaljer($post)
{
    $out = '<div class="detaljer">';
    // INNHOLD
    // Hent ut spor-navn fra 740$2, indikator 2 = 2 (analytt)
    if ($post->getField("740")) {
        $out .= '<p>Spor:</p>';
        $out .= '<ul>';
        $fields740 = $post->getFields("740");
        foreach ($fields740 as $field740) {
            // Sjekk om dette er en analytt
            if ($field740->getIndicator(2) == 2) {
                $tittel = marctrim($field740->getSubfield("a"));
                $tittelu = urlencode($tittel);
                $out .= '<li><a href="?q=' . $tittelu . '&bib=' . $_GET['bib'] . '">' . $tittel . '</a></li>';
            }
        }
        $out .= '</ul>';
        // Eller hent info fra 505
    } else {
        if ($post->getField("505") && $post->getField("505")->getSubfield("a")) {
            $out .= '<p>' . marctrim($post->getField("505")->getSubfield("a")) . '</p>';
        }
    }
    // MEDVIRKENDE
    if ($post->getField("700") && $post->getField("700")->getSubfield("a")) {
        $out .= '<p>Medvirkende:</p><ul>';
        foreach ($post->getFields("700") as $med) {
            $med = marctrim($med->getSubfield("a"));
            $out .= '<li><a href="?q=' . urlencode($med) . '&bib=' . $_GET['bib'] . '">' . $med . '</a></li>';
        }
        $out .= '</ul>';
    }
    // EMNER
    $emner = $post->getFields('6\\d\\d', true);
    if ($emner) {
        $out .= '<p>Emner:</p>';
        $out .= '<ul>';
        foreach ($emner as $emne) {
            $out .= '<li>' . marctrim($emne->getSubfield("a")) . '</li>';
        }
    }
    $out .= '</ul>';
    $out .= '</div>';
    return $out;
}
Ejemplo n.º 7
0
function get_sortable_record($rec)
{
    $outrecord = array();
    // Title
    if ($rec->getField("245") && $rec->getField("245")->getSubfield("a")) {
        $outrecord['title'] = marctrim($rec->getField("245")->getSubfield("a"));
    }
    if ($rec->getField("245") && $rec->getField("245")->getSubfield("b")) {
        $outrecord['title'] .= " " . marctrim($rec->getField("245")->getSubfield("b"));
    }
    // Author
    if ($rec->getField("100") && $rec->getField("100")->getSubfield("a")) {
        // Personal author
        $outrecord['author'] = marctrim($rec->getField("100")->getSubfield("a"));
    }
    if ($rec->getField("110") && $rec->getField("110")->getSubfield("a")) {
        // Corporate author
        $outrecord['author'] = marctrim($rec->getField("110")->getSubfield("a"));
    }
    // Year
    if ($rec->getField("260") && $rec->getField("260")->getSubfield("c")) {
        preg_match("/\\d{4}/", marctrim($rec->getField("260")->getSubfield("c")), $match);
        $outrecord['year'] = $match[0];
    }
    // Save the record-as-object for later re-use
    $outrecord['marcobj'] = $rec;
    // Save the record-as-XML for later serialization and caching
    $outrecord['marcxml'] = $rec->toXML();
    return $outrecord;
}