function GetAvailablePluginsOptions() { foreach (StudipLitSearch::GetAvailablePlugins() as $value => $name) { $ret[] = array('name' => $name, 'value' => $value); } return $ret; }
echo LockRules::Check($institute->id, 'url') ? 'readonly disabled' : ''; ?> id="home" name="home" value="<?php echo htmlReady(Request::get('home', $institute->url)); ?> "> </label> <? if (get_config('LITERATURE_ENABLE') && $institute->is_fak): // choose preferred lit plugin ?> <label> <?php echo _('Bevorzugter Bibliothekskatalog'); ?> <select id="lit_plugin_name" name="lit_plugin_name"> <? foreach (StudipLitSearch::GetAvailablePlugins() as $name => $title): ?> <option value="<?php echo $name; ?> " <?php echo $name == Request::get('lit_plugin_name', $institute->lit_plugin_name) ? 'selected' : ''; ?> > <?php echo htmlReady($title); ?> </option> <? endforeach; ?> </select> </label> <? endif; ?>
} if (Request::option('_semester_id') && Request::option('_semester_id') != 'all') { $_sem_sql = " LEFT JOIN seminare s ON ({$_sem_status_sql} c.seminar_id=s.Seminar_id)\n LEFT JOIN semester_data sd\n ON (( s.start_time <= sd.beginn AND sd.beginn <= ( s.start_time + s.duration_time )\n OR ( s.start_time <= sd.beginn AND s.duration_time = - 1 )) AND semester_id='" . Request::option('_semester_id') . "')\n LEFT JOIN lit_list d ON (s.Seminar_id = d.range_id AND semester_id IS NOT NULL)"; $_sem_sql2 = "INNER JOIN semester_data sd\n ON (( s.start_time <= sd.beginn AND sd.beginn <= ( s.start_time + s.duration_time )\n OR ( s.start_time <= sd.beginn AND s.duration_time = - 1 )) AND semester_id='" . Request::option('_semester_id') . "') "; } else { $_sem_sql = " LEFT JOIN seminare s ON ({$_sem_status_sql} c.seminar_id=s.Seminar_id)\n LEFT JOIN lit_list d ON (s.Seminar_id = d.range_id) "; $_sem_sql2 = ""; } $_is_fak = false; $_lit_admin_ids = get_lit_admin_ids(); $_is_lit_admin = is_array($_lit_admin_ids) && count($_lit_admin_ids); $_search_plugins = array_keys(StudipLitSearch::GetAvailablePlugins()); if (in_array('Studip', $_search_plugins)) { array_splice($_search_plugins, array_search('Studip', $_search_plugins), 1); } $preferred_plugin = StudipLitSearch::getPreferredPlugin(); if ($preferred_plugin && in_array($preferred_plugin, $_search_plugins)) { array_splice($_search_plugins, array_search($preferred_plugin, $_search_plugins), 1); array_unshift($_search_plugins, $preferred_plugin); } ?> <table width="100%" cellspacing=0 cellpadding=0 border=0> <? if ($msg) { echo "<tr> <td class=\"blank\" colspan=2><br>"; parse_msg ($msg); echo "</td></tr>"; } ?> <tr> <td class="blank" colspan=2>
function getValue($name) { if (isset($this->fields[$name])) { return trim($this->fields[$name]['value']); } else { switch ($name) { case "year": $year = explode("-", $this->getValue("dc_date")); $ret = $year[0]; break; case "authors": if ($ret = $this->getValue("dc_contributor")) { $ret = "; " . $ret; } $ret = $this->getValue("dc_creator") . $ret; break; case "published": $ret = $this->getValue("dc_publisher") . ", " . $this->getValue("year"); break; case "external_link": $plugin_name = $this->getValue("lit_plugin"); $link = StudipLitSearch::GetExternalLink($plugin_name); if ($link) { $ret = preg_replace('/({[a-z0-9_]+})/e', "\$this->getValue(substr('\\1',1,strlen('\\1')-2))", $link); if ($ret == preg_replace('/({[a-z0-9_]+})/', "", $link)) { $ret = ""; } } break; case "lit_plugin_display_name": $plugin_name = $this->getValue("lit_plugin"); $ret = StudipLitSearch::GetPluginDisplayName($plugin_name); break; default: $ret = "unknown tag: {$name}"; } return $ret; } }
/** * Displays page to add new or edit existing literature element */ public function edit_element_action() { if (Request::option('reload')) { $this->reload = true; } if (Request::option('cmd') == "new_entry") { $_catalog_id = "new_entry"; } else { $_catalog_id = Request::option('_catalog_id', "new_entry"); } if (Request::option('return_range')) { $this->return_range = Request::option('return_range'); URLHelper::addLinkParam('return_range', $this->return_range); } if ($_catalog_id == "new_entry") { $title = _("Literatureintrag anlegen"); } else { $title = _("Literatureintrag bearbeiten"); } PageLayout::setTitle($title); Navigation::activateItem('/tools/literature'); //dump data into db if $_catalog_id points to a search result if ($_catalog_id[0] == "_") { $parts = explode("__", $_catalog_id); if ($fields = $_SESSION[$parts[0]][$parts[1]]) { $cat_element = new StudipLitCatElement(); $cat_element->setValues($fields); $cat_element->setValue("catalog_id", "new_entry"); $cat_element->setValue("user_id", "studip"); if ($existing_element = $cat_element->checkElement()) { $cat_element->setValue('catalog_id', $existing_element); } $cat_element->insertData(); $_catalog_id = $cat_element->getValue("catalog_id"); $_SESSION[$parts[0]][$parts[1]]['catalog_id'] = $_catalog_id; unset($cat_element); } } if (Request::option('cmd') == 'clone_entry') { $_the_element = StudipLitCatElement::GetClonedElement($_catalog_id); if ($_the_element->isNewEntry()) { $_msg = "msg§" . _("Der Eintrag wurde kopiert, Sie können die Daten jetzt ändern.") . "§"; $_msg .= "info§" . _("Der kopierte Eintrag wurde noch nicht gespeichert.") . "§"; //$old_cat_id = $_catalog_id; $_catalog_id = $_the_element->getValue('catalog_id'); } else { $_msg = "error§" . _("Der Eintrag konnte nicht kopiert werden!.") . "§"; } } if (!is_object($_the_element)) { $_the_element = new StudipLitCatElement($_catalog_id, true); } $_the_form = $_the_element->getFormObject(); $_the_clipboard = StudipLitClipBoard::GetInstance(); $_the_clip_form = $_the_clipboard->getFormObject(); if (isset($old_cat_id) && $_the_clipboard->isInClipboard($old_cat_id)) { $_the_clipboard->deleteElement($old_cat_id); $_the_clipboard->insertElement($_catalog_id); } $_the_clip_form->form_fields['clip_cmd']['options'][] = array('name' => _("In Merkliste eintragen"), 'value' => 'ins'); $_the_clip_form->form_fields['clip_cmd']['options'][] = array('name' => _("Markierten Eintrag bearbeiten"), 'value' => 'edit'); if ($_the_form->IsClicked("reset") || Request::option('cmd') == "new_entry") { $_the_form->doFormReset(); } if ($_the_form->IsClicked("delete") && $_catalog_id != "new_entry" && $_the_element->isChangeable()) { if ($_the_element->reference_count) { $_msg = "info§" . sprintf(_("Sie können diesen Eintrag nicht löschen, da er noch in %s Literaturlisten referenziert wird."), $_the_element->reference_count) . "§"; } else { $_msg = "info§" . _("Wollen Sie diesen Eintrag wirklich löschen?") . "<br>" . LinkButton::createAccept(_('Ja'), URLHelper::getURL('?cmd=delete_element&_catalog_id=' . $_catalog_id), array('title' => _('löschen'))) . " " . LinkButton::createCancel(_('Abbrechen'), URLHelper::getURL('?_catalog_id=' . $_catalog_id), array('title' => _('abbrechen'))) . "§"; } } if (Request::option('cmd') == "delete_element" && $_the_element->isChangeable() && !$_the_element->reference_count) { $_the_element->deleteElement(); $this->reload = true; } if (Request::option('cmd') == "in_clipboard" && $_catalog_id != "new_entry") { $_the_clipboard->insertElement($_catalog_id); $this->reload = true; } if (Request::option('cmd') == "check_entry") { $lit_plugin_value = $_the_element->getValue('lit_plugin'); $check_result = StudipLitSearch::CheckZ3950($_the_element->getValue('accession_number')); $content = "<div style=\"font-size:70%\"<b>" . _("Verfügbarkeit in externen Katalogen:") . "</b><br>"; if (is_array($check_result)) { foreach ($check_result as $plugin_name => $ret) { $content .= "<b> " . htmlReady(StudipLitSearch::GetPluginDisplayName($plugin_name)) . " </b>"; if ($ret['found']) { $content .= _("gefunden") . " "; $_the_element->setValue('lit_plugin', $plugin_name); if ($link = $_the_element->getValue("external_link")) { $content .= formatReady(" [" . $_the_element->getValue("lit_plugin_display_name") . "]" . $link); } else { $content .= _("(Kein Link zum Katalog vorhanden.)"); } } elseif (count($ret['error'])) { $content .= '<span style="color:red;">' . htmlReady($ret['error'][0]['msg']) . '</span>'; } else { $content .= _("<u>nicht</u> gefunden") . " "; } $content .= "<br>"; } } $content .= "</div>"; $_the_element->setValue('lit_plugin', $lit_plugin_value); $_msg = "info§" . $content . "§"; } if ($_the_form->IsClicked("send")) { $_the_element->setValuesFromForm(); if ($_the_element->checkValues()) { $_the_element->insertData(); $this->reload = true; } } if ($_the_clip_form->isClicked("clip_ok")) { if ($_the_clip_form->getFormFieldValue("clip_cmd") == "ins" && $_catalog_id != "new_entry") { $_the_clipboard->insertElement($_catalog_id); } if ($_the_clip_form->getFormFieldValue("clip_cmd") == "edit") { $marked = $_the_clip_form->getFormFieldValue("clip_content"); if (count($marked) && $marked[0]) { $_the_element->getElementData($marked[0]); } } $_the_clipboard->doClipCmd(); } $_catalog_id = $_the_element->getValue("catalog_id"); if (!$_the_element->isChangeable()) { PageLayout::postMessage(MessageBox::info(_('Sie haben diesen Eintrag nicht selbst vorgenommen, und dürfen ihn daher nicht verändern! Wenn Sie mit diesem Eintrag arbeiten wollen, können Sie sich eine persönliche Kopie erstellen.'))); } $_msg .= $_the_element->msg; $_msg .= $_the_clipboard->msg; $this->msg = $_msg; $this->catalog_id = $_catalog_id; $this->element = $_the_element; $this->treeview = $_the_treeview; $this->tree = $_the_tree; $this->clipboard = $_the_clipboard; $this->clip_form = $_the_clip_form; $this->form = $_the_form; }