function GetAvailablePluginsOptions()
 {
     foreach (StudipLitSearch::GetAvailablePlugins() as $value => $name) {
         $ret[] = array('name' => $name, 'value' => $value);
     }
     return $ret;
 }
Exemple #2
0
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>&nbsp;
 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;
     }
 }
Exemple #5
0
 /**
  * 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'))) . "&nbsp;" . 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>&nbsp;" . htmlReady(StudipLitSearch::GetPluginDisplayName($plugin_name)) . "&nbsp;</b>";
                 if ($ret['found']) {
                     $content .= _("gefunden") . "&nbsp;";
                     $_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") . "&nbsp;";
                 }
                 $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;
 }