00001 <?php
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 require_once("class.ilBibItem.php");
00025
00036 class ilBibItemGUI
00037 {
00038 var $ilias;
00039 var $tpl;
00040 var $lng;
00041 var $obj;
00042 var $bib_obj;
00043
00044
00049 function ilBibItemGUI()
00050 {
00051 global $ilias, $tpl, $lng;
00052 $lng->loadLanguageModule("bibitem");
00053
00054 $this->ilias =& $ilias;
00055 $this->tpl =& $tpl;
00056 $this->lng =& $lng;
00057 }
00058
00059 function setObject($a_obj)
00060 {
00061 $this->obj = $a_obj;
00062 $this->obj->initBibItemObject();
00063 $this->bib_obj = $this->obj->bib_obj;
00064 # echo $this->bib_obj->getXML();
00065 }
00066
00070 function curValue($a_val_name)
00071 {
00072 if(is_object($this->meta_obj))
00073 {
00074 $method = "get".$a_val_name;
00075 return $this->meta_obj->$method();
00076 }
00077 else
00078 {
00079 return "";
00080 }
00081 }
00082
00086 function showLangSel($a_name, $a_value = "")
00087 {
00088 $tpl = new ilTemplate("tpl.lang_selection.html", true, true);
00089 $languages = ilMetaData::getLanguages();
00090 foreach($languages as $code => $text)
00091 {
00092 $tpl->setCurrentBlock("lg_option");
00093 $tpl->setVariable("VAL_LG", $code);
00094 $tpl->setVariable("TXT_LG", $text);
00095 if ($a_value != "" &&
00096 $a_value == $code)
00097 {
00098 $tpl->setVariable("SELECTED", "selected");
00099 }
00100 $tpl->parseCurrentBlock();
00101 }
00102 $tpl->setVariable("TXT_PLEASE_SELECT", $this->lng->txt("meta_please_select"));
00103 $tpl->setVariable("SEL_NAME", $a_name);
00104 $return = $tpl->get();
00105 unset($tpl);
00106
00107 return $return;
00108 }
00109
00110 function fill($a_formaction, $a_index = 0, $a_language = "")
00111 {
00112 $this->tpl->setVariable("TXT_BIBITEM", $this->lng->txt("bibitem_bibitem"));
00113 $this->tpl->setVariable("BIBITEM_TXT_DELETE", $this->lng->txt("bibitem_delete"));
00114 $this->tpl->setVariable("BIBITEM_ACTION_DELETE", $a_formaction . "&cmd=deleteBibItem&bibItemIndex=" . $a_index . "&bibItemName=BibItem");
00115 $this->tpl->setVariable("BIBITEM_TXT_ADD", $this->lng->txt("bibitem_add"));
00116 $this->tpl->setVariable("BIBITEM_ACTION_ADD", $a_formaction . "&cmd=addBibItem&bibItemName=BibItem");
00117 $this->tpl->setVariable("TXT_NEW_ELEMENT", $this->lng->txt("bibitem_new_element"));
00118 $this->tpl->setVariable("TXT_LANGUAGE", $this->lng->txt("bibitem_language"));
00119 $this->tpl->setVariable("TXT_AUTHOR", $this->lng->txt("bibitem_author"));
00120 $this->tpl->setVariable("TXT_CROSSREF", $this->lng->txt("bibitem_cross_reference"));
00121 $this->tpl->setVariable("TXT_EDITOR", $this->lng->txt("bibitem_editor"));
00122 $this->tpl->setVariable("TXT_WHERE_PUBLISHED", $this->lng->txt("bibitem_where_published"));
00123 $this->tpl->setVariable("TXT_INSTITUTION", $this->lng->txt("bibitem_institution"));
00124 $this->tpl->setVariable("TXT_KEYWORD", $this->lng->txt("bibitem_keyword"));
00125 $this->tpl->setVariable("TXT_SCHOOL", $this->lng->txt("bibitem_school"));
00126 $this->tpl->setVariable("TXT_ADD", $this->lng->txt("bibitem_add"));
00127
00128 $bibitem = $this->bib_obj->getElement("BibItem");
00129 $this->tpl->setVariable("TXT_TYPE", $this->lng->txt("bibitem_type"));
00130 $this->tpl->setVariable("TXT_PLEASE_SELECT", $this->lng->txt("bibitem_please_select"));
00131 $this->tpl->setVariable("TXT_BOOK", $this->lng->txt("bibitem_book"));
00132 $this->tpl->setVariable("TXT_INBOOK", $this->lng->txt("bibitem_inbook"));
00133 $this->tpl->setVariable("TXT_JOURNALARTICLE", $this->lng->txt("bibitem_journal_article"));
00134 $this->tpl->setVariable("TXT_PROCEEDINGS", $this->lng->txt("bibitem_proceedings"));
00135 $this->tpl->setVariable("TXT_INPROCEEDINGS", $this->lng->txt("bibitem_inproceedings"));
00136 $this->tpl->setVariable("TXT_DISSERTATION", $this->lng->txt("bibitem_dissertation"));
00137 $this->tpl->setVariable("TXT_PHDTHESIS", $this->lng->txt("bibitem_phd_thesis"));
00138 $this->tpl->setVariable("TXT_MASTERSTHESIS", $this->lng->txt("bibitem_master_thesis"));
00139 $this->tpl->setVariable("TXT_TECHREPORT", $this->lng->txt("bibitem_technical_report"));
00140 $this->tpl->setVariable("TXT_MANUAL", $this->lng->txt("bibitem_manual"));
00141 $this->tpl->setVariable("TXT_NEWSPAPERARTICLE", $this->lng->txt("bibitem_newspaper_article"));
00142 $this->tpl->setVariable("TXT_AV", $this->lng->txt("bibitem_av"));
00143 $this->tpl->setVariable("TXT_INTERNET", $this->lng->txt("bibitem_internet"));
00144 $this->tpl->setVariable("TXT_UNPUBLISHED", $this->lng->txt("bibitem_unpublished"));
00145 $this->tpl->setVariable("TYPE_VAL_" . strtoupper(ilUtil::prepareFormOutput($bibitem[$a_index]["Type"])), " selected");
00146
00147 $this->tpl->setVariable("TXT_LABEL", $this->lng->txt("bibitem_label"));
00148 $this->tpl->setVariable("VAL_LABEL", ilUtil::prepareFormOutput($bibitem[$a_index]["Label"]));
00149
00150 $identifier = $this->bib_obj->getElement("Identifier", "BibItem[" . ($a_index+1) . "]");
00151 $this->tpl->setVariable("TXT_IDENTIFIER", $this->lng->txt("bibitem_identifier"));
00152 $this->tpl->setVariable("TXT_CATALOG", $this->lng->txt("bibitem_catalog"));
00153 $this->tpl->setVariable("VAL_IDENTIFIER_CATALOG", ilUtil::prepareFormOutput($identifier[0]["Catalog"]));
00154 $this->tpl->setVariable("TXT_ENTRY", $this->lng->txt("bibitem_entry"));
00155 $this->tpl->setVariable("VAL_IDENTIFIER_ENTRY", ilUtil::prepareFormOutput($identifier[0]["Entry"]));
00156
00157
00158 if (is_array($language = $this->bib_obj->getElement("Language", "BibItem[" . ($a_index+1) . "]")) &&
00159 count($language) > 0)
00160 {
00161 for ($i = 0; $i < count($language); $i++)
00162 {
00163 if (count($language) > 1)
00164 {
00165 $this->tpl->setCurrentBlock("language_delete");
00166 $this->tpl->setVariable("LANGUAGE_LOOP_ACTION_DELETE", $a_formaction . "&cmd=deleteBibItem&bibItemIndex=" . $a_index . "," . $i . "&bibItemPath=BibItem&bibItemName=Language");
00167 $this->tpl->setVariable("LANGUAGE_LOOP_TXT_DELETE", $this->lng->txt("bibitem_delete"));
00168 $this->tpl->parseCurrentBlock();
00169 }
00170 $this->tpl->setCurrentBlock("language_loop");
00171 $this->tpl->setVariable("LANGUAGE_LOOP_TXT_LANGUAGE", $this->lng->txt("bibitem_language"));
00172 $this->tpl->setVariable("LANGUAGE_LOOP_VAL_LANGUAGE", $this->showLangSel("meta[Language][" . $i . "][Language]", $language[$i]["Language"]));
00173 $this->tpl->setVariable("LANGUAGE_LOOP_ACTION_ADD", $a_formaction . "&cmd=addBibItem&bibItemName=Language&bibItemPath=BibItem&bibItemIndex=" . $a_index);
00174 $this->tpl->setVariable("LANGUAGE_LOOP_TXT_ADD", $this->lng->txt("bibitem_add"));
00175 $this->tpl->parseCurrentBlock();
00176 }
00177 }
00178
00179
00180 if (is_array($author = $this->bib_obj->getElement("Author", "BibItem[" . ($a_index+1) . "]")) &&
00181 count($author) > 0)
00182 {
00183 for ($i = 0; $i < count($author); $i++)
00184 {
00185 $this->tpl->setCurrentBlock("author_loop");
00186 $this->tpl->setVariable("AUTHOR_LOOP_TXT_AUTHOR", $this->lng->txt("bibitem_author"));
00187 $this->tpl->setVariable("AUTHOR_LOOP_TXT_DELETE", $this->lng->txt("bibitem_delete"));
00188 $this->tpl->setVariable("AUTHOR_LOOP_ACTION_DELETE", $a_formaction . "&cmd=deleteBibItem&bibItemIndex=" . $a_index . "," . $i . "&bibItemPath=BibItem&bibItemName=Author");
00189 $this->tpl->setVariable("AUTHOR_LOOP_TXT_ADD", $this->lng->txt("bibitem_add"));
00190 $this->tpl->setVariable("AUTHOR_LOOP_ACTION_ADD", $a_formaction . "&cmd=addBibItem&bibItemName=Author&bibItemPath=BibItem&bibItemIndex=" . $a_index);
00191 $this->tpl->setVariable("AUTHOR_LOOP_NO", $i);
00192 $this->tpl->setVariable("AUTHOR_LOOP_TXT_FIRSTNAME", $this->lng->txt("bibitem_first_name"));
00193 if (is_array($firstname = $this->bib_obj->getElement("FirstName", "BibItem[" . ($a_index+1) . "]/Author[" . ($i+1) . "]")))
00194 {
00195 $this->tpl->setVariable("AUTHOR_LOOP_VAL_FIRSTNAME", ilUtil::prepareFormOutput($firstname[0]["value"]));
00196 }
00197 $this->tpl->setVariable("AUTHOR_LOOP_TXT_MIDDLENAME", $this->lng->txt("bibitem_middle_name"));
00198 if (is_array($middlename = $this->bib_obj->getElement("MiddleName", "BibItem[" . ($a_index+1) . "]/Author[" . ($i+1) . "]")))
00199 {
00200 $this->tpl->setVariable("AUTHOR_LOOP_VAL_MIDDLENAME", ilUtil::prepareFormOutput($middlename[0]["value"]));
00201 }
00202 $this->tpl->setVariable("AUTHOR_LOOP_TXT_LASTNAME", $this->lng->txt("bibitem_last_name"));
00203 if (is_array($lastname = $this->bib_obj->getElement("LastName", "BibItem[" . ($a_index+1) . "]/Author[" . ($i+1) . "]")))
00204 {
00205 $this->tpl->setVariable("AUTHOR_LOOP_VAL_LASTNAME", ilUtil::prepareFormOutput($lastname[0]["value"]));
00206 }
00207 $this->tpl->parseCurrentBlock("author_loop");
00208 }
00209 }
00210
00211 $booktitle = $this->bib_obj->getElement("Booktitle", "BibItem[" . ($a_index+1) . "]");
00212 $this->tpl->setVariable("TXT_BOOKTITLE", $this->lng->txt("bibitem_booktitle"));
00213 $this->tpl->setVariable("BOOKTITLE_VAL", ilUtil::prepareFormOutput($booktitle[0]["value"]));
00214 $this->tpl->setVariable("BOOKTITLE_VAL_LANGUAGE", $this->showLangSel("meta[Booktitle][Language]", $booktitle[0]["Language"]));
00215
00216
00217 if (is_array($crossref = $this->bib_obj->getElement("CrossRef", "BibItem[" . ($a_index+1) . "]")) &&
00218 count($crossref) > 0)
00219 {
00220 for ($i = 0; $i < count($crossref); $i++)
00221 {
00222 $this->tpl->setCurrentBlock("crossref_loop");
00223 $this->tpl->setVariable("CROSSREF_LOOP_TXT_CROSSREF", $this->lng->txt("bibitem_cross_reference"));
00224 $this->tpl->setVariable("CROSSREF_LOOP_TXT_DELETE", $this->lng->txt("bibitem_delete"));
00225 $this->tpl->setVariable("CROSSREF_LOOP_ACTION_DELETE", $a_formaction . "&cmd=deleteBibItem&bibItemIndex=" . $a_index . "," . $i . "&bibItemPath=BibItem&bibItemName=CrossRef");
00226 $this->tpl->setVariable("CROSSREF_LOOP_TXT_ADD", $this->lng->txt("bibitem_add"));
00227 $this->tpl->setVariable("CROSSREF_LOOP_ACTION_ADD", $a_formaction . "&cmd=addBibItem&bibItemName=CrossRef&bibItemPath=BibItem&bibItemIndex=" . $a_index);
00228 $this->tpl->setVariable("CROSSREF_LOOP_NO", $i);
00229 $this->tpl->setVariable("CROSSREF_LOOP_VAL", ilUtil::prepareFormOutput($crossref[$i]["value"]));
00230 $this->tpl->parseCurrentBlock("crossref_loop");
00231 }
00232 }
00233
00234 $edition = $this->bib_obj->getElement("Edition", "BibItem[" . ($a_index+1) . "]");
00235 $this->tpl->setVariable("TXT_EDITION", $this->lng->txt("bibitem_edition"));
00236 $this->tpl->setVariable("VAL_EDITION", ilUtil::prepareFormOutput($edition[0]["value"]));
00237
00238
00239 if (is_array($editor = $this->bib_obj->getElement("Editor", "BibItem[" . ($a_index+1) . "]")) &&
00240 count($editor) > 0)
00241 {
00242 for ($i = 0; $i < count($editor); $i++)
00243 {
00244 $this->tpl->setCurrentBlock("editor_loop");
00245 $this->tpl->setVariable("EDITOR_LOOP_TXT_EDITOR", $this->lng->txt("bibitem_editor"));
00246 $this->tpl->setVariable("EDITOR_LOOP_TXT_DELETE", $this->lng->txt("bibitem_delete"));
00247 $this->tpl->setVariable("EDITOR_LOOP_ACTION_DELETE", $a_formaction . "&cmd=deleteBibItem&bibItemIndex=" . $a_index . "," . $i . "&bibItemPath=BibItem&bibItemName=Editor");
00248 $this->tpl->setVariable("EDITOR_LOOP_TXT_ADD", $this->lng->txt("bibitem_add"));
00249 $this->tpl->setVariable("EDITOR_LOOP_ACTION_ADD", $a_formaction . "&cmd=addBibItem&bibItemName=Editor&bibItemPath=BibItem&bibItemIndex=" . $a_index);
00250 $this->tpl->setVariable("EDITOR_LOOP_NO", $i);
00251 $this->tpl->setVariable("EDITOR_LOOP_VAL", ilUtil::prepareFormOutput($editor[$i]["value"]));
00252 $this->tpl->parseCurrentBlock("editor_loop");
00253 }
00254 }
00255
00256 $howPublished = $this->bib_obj->getElement("HowPublished", "BibItem[" . ($a_index+1) . "]");
00257 $this->tpl->setVariable("TXT_HOWPUBLISHED", $this->lng->txt("bibitem_how_published"));
00258 $this->tpl->setVariable("TXT_GREYLITERATURE", $this->lng->txt("bibitem_grey_literature"));
00259 $this->tpl->setVariable("TXT_PRINT", $this->lng->txt("bibitem_print"));
00260 $this->tpl->setVariable("HOWPUBLISHED_TYPE_VAL_" . strtoupper(ilUtil::prepareFormOutput($howPublished[0]["Type"])), " selected");
00261
00262
00263 if (is_array($wherepublished = $this->bib_obj->getElement("WherePublished", "BibItem[" . ($a_index+1) . "]")) &&
00264 count($wherepublished) > 0)
00265 {
00266 for ($i = 0; $i < count($wherepublished); $i++)
00267 {
00268 $this->tpl->setCurrentBlock("wherepublished_loop");
00269 $this->tpl->setVariable("WHEREPUBLISHED_LOOP_TXT_WHEREPUBLISHED", $this->lng->txt("bibitem_where_published"));
00270 $this->tpl->setVariable("WHEREPUBLISHED_LOOP_TXT_DELETE", $this->lng->txt("bibitem_delete"));
00271 $this->tpl->setVariable("WHEREPUBLISHED_LOOP_ACTION_DELETE", $a_formaction . "&cmd=deleteBibItem&bibItemIndex=" . $a_index . "," . $i . "&bibItemPath=BibItem&bibItemName=WherePublished");
00272 $this->tpl->setVariable("WHEREPUBLISHED_LOOP_TXT_ADD", $this->lng->txt("bibitem_add"));
00273 $this->tpl->setVariable("WHEREPUBLISHED_LOOP_ACTION_ADD", $a_formaction . "&cmd=addBibItem&bibItemName=WherePublished&bibItemPath=BibItem&bibItemIndex=" . $a_index);
00274 $this->tpl->setVariable("WHEREPUBLISHED_LOOP_NO", $i);
00275 $this->tpl->setVariable("WHEREPUBLISHED_LOOP_VAL", ilUtil::prepareFormOutput($wherepublished[$i]["value"]));
00276 $this->tpl->parseCurrentBlock("wherepublished_loop");
00277 }
00278 }
00279
00280
00281 if (is_array($institution = $this->bib_obj->getElement("Institution", "BibItem[" . ($a_index+1) . "]")) &&
00282 count($institution) > 0)
00283 {
00284 for ($i = 0; $i < count($institution); $i++)
00285 {
00286 $this->tpl->setCurrentBlock("institution_loop");
00287 $this->tpl->setVariable("INSTITUTION_LOOP_TXT_INSTITUTION", $this->lng->txt("bibitem_institution"));
00288 $this->tpl->setVariable("INSTITUTION_LOOP_TXT_DELETE", $this->lng->txt("bibitem_delete"));
00289 $this->tpl->setVariable("INSTITUTION_LOOP_ACTION_DELETE", $a_formaction . "&cmd=deleteBibItem&bibItemIndex=" . $a_index . "," . $i . "&bibItemPath=BibItem&bibItemName=Institution");
00290 $this->tpl->setVariable("INSTITUTION_LOOP_TXT_ADD", $this->lng->txt("bibitem_add"));
00291 $this->tpl->setVariable("INSTITUTION_LOOP_ACTION_ADD", $a_formaction . "&cmd=addBibItem&bibItemName=Institution&bibItemPath=BibItem&bibItemIndex=" . $a_index);
00292 $this->tpl->setVariable("INSTITUTION_LOOP_NO", $i);
00293 $this->tpl->setVariable("INSTITUTION_LOOP_VAL", ilUtil::prepareFormOutput($institution[$i]["value"]));
00294 $this->tpl->parseCurrentBlock("institution_loop");
00295 }
00296 }
00297
00298
00299 if (is_array($journal = $this->bib_obj->getElement("Journal", "BibItem[" . ($a_index+1) . "]")) &&
00300 count($journal) > 0)
00301 {
00302 $this->tpl->setCurrentBlock("journal");
00303 $this->tpl->setVariable("JOURNAL_TXT_JOURNAL", $this->lng->txt("bibitem_journal"));
00304 $this->tpl->setVariable("JOURNAL_TXT_DELETE", $this->lng->txt("bibitem_delete"));
00305 $this->tpl->setVariable("JOURNAL_ACTION_DELETE", $a_formaction . "&cmd=deleteBibItem&bibItemIndex=" . $a_index . "&bibItemPath=BibItem&bibItemName=Journal");
00306 $this->tpl->setVariable("VAL_JOURNAL", ilUtil::prepareFormOutput($journal[0]["value"]));
00307 $this->tpl->setVariable("VAL_JOURNAL_NOTE", ilUtil::prepareFormOutput($journal[0]["Note"]));
00308 $this->tpl->setVariable("VAL_JOURNAL_NUMBER", ilUtil::prepareFormOutput($journal[0]["Number"]));
00309 $this->tpl->setVariable("VAL_JOURNAL_ORGANIZATION", ilUtil::prepareFormOutput($journal[0]["Organization"]));
00310 $this->tpl->parseCurrentBlock("journal");
00311
00312 }
00313 else
00314 {
00315 $this->tpl->setVariable("TXT_JOURNAL", $this->lng->txt("bibitem_journal"));
00316 }
00317
00318
00319 if (is_array($keyword = $this->bib_obj->getElement("Keyword", "BibItem[" . ($a_index+1) . "]")) &&
00320 count($keyword) > 0)
00321 {
00322 for ($i = 0; $i < count($keyword); $i++)
00323 {
00324 $this->tpl->setCurrentBlock("keyword_loop");
00325 $this->tpl->setVariable("KEYWORD_LOOP_TXT_KEYWORD", $this->lng->txt("bibitem_keyword"));
00326 $this->tpl->setVariable("KEYWORD_LOOP_TXT_DELETE", $this->lng->txt("bibitem_delete"));
00327 $this->tpl->setVariable("KEYWORD_LOOP_ACTION_DELETE", $a_formaction . "&cmd=deleteBibItem&bibItemIndex=" . $a_index . "," . $i . "&bibItemPath=BibItem&bibItemName=Keyword");
00328 $this->tpl->setVariable("KEYWORD_LOOP_TXT_ADD", $this->lng->txt("bibitem_add"));
00329 $this->tpl->setVariable("KEYWORD_LOOP_ACTION_ADD", $a_formaction . "&cmd=addBibItem&bibItemName=Keyword&bibItemPath=BibItem&bibItemIndex=" . $a_index);
00330 $this->tpl->setVariable("KEYWORD_LOOP_NO", $i);
00331 $this->tpl->setVariable("KEYWORD_LOOP_VAL", ilUtil::prepareFormOutput($keyword[$i]["value"]));
00332 $this->tpl->setVariable("KEYWORD_LOOP_TXT_LANGUAGE", $this->lng->txt("bibitem_language"));
00333 $this->tpl->setVariable("KEYWORD_LOOP_VAL_LANGUAGE", $this->showLangSel("meta[Language][" . $i . "][Language]", $keyword[$i]["Language"]));
00334 $this->tpl->parseCurrentBlock("keyword_loop");
00335 }
00336 }
00337
00338
00339 if (is_array($month = $this->bib_obj->getElement("Month", "BibItem[" . ($a_index+1) . "]")) &&
00340 count($month) > 0)
00341 {
00342 $this->tpl->setCurrentBlock("month");
00343 $this->tpl->setVariable("MONTH_TXT_MONTH", $this->lng->txt("bibitem_month"));
00344 $this->tpl->setVariable("MONTH_TXT_DELETE", $this->lng->txt("bibitem_delete"));
00345 $this->tpl->setVariable("MONTH_ACTION_DELETE", $a_formaction . "&cmd=deleteBibItem&bibItemIndex=" . $a_index . "&bibItemPath=BibItem&bibItemName=Month");
00346 $this->tpl->setVariable("VAL_MONTH", ilUtil::prepareFormOutput($month[0]["value"]));
00347 $this->tpl->parseCurrentBlock("journal");
00348 }
00349 else
00350 {
00351 $this->tpl->setVariable("TXT_MONTH", $this->lng->txt("bibitem_month"));
00352 }
00353
00354
00355 if (is_array($pages = $this->bib_obj->getElement("Pages", "BibItem[" . ($a_index+1) . "]")) &&
00356 count($pages) > 0)
00357 {
00358 $this->tpl->setCurrentBlock("pages");
00359 $this->tpl->setVariable("PAGES_TXT_PAGES", $this->lng->txt("bibitem_pages"));
00360 $this->tpl->setVariable("PAGES_TXT_DELETE", $this->lng->txt("bibitem_delete"));
00361 $this->tpl->setVariable("PAGES_ACTION_DELETE", $a_formaction . "&cmd=deleteBibItem&bibItemIndex=" . $a_index . "&bibItemPath=BibItem&bibItemName=Pages");
00362 $this->tpl->setVariable("VAL_PAGES", ilUtil::prepareFormOutput($pages[0]["value"]));
00363 $this->tpl->parseCurrentBlock("pages");
00364 }
00365 else
00366 {
00367 $this->tpl->setVariable("TXT_PAGES", $this->lng->txt("bibitem_pages"));
00368 }
00369
00370 $publisher = $this->bib_obj->getElement("Publisher", "BibItem[" . ($a_index+1) . "]");
00371 $this->tpl->setVariable("TXT_PUBLISHER", $this->lng->txt("bibitem_publisher"));
00372 $this->tpl->setVariable("VAL_PUBLISHER", ilUtil::prepareFormOutput($publisher[0]["value"]));
00373
00374
00375 if (is_array($school = $this->bib_obj->getElement("School", "BibItem[" . ($a_index+1) . "]")) &&
00376 count($school) > 0)
00377 {
00378 for ($i = 0; $i < count($school); $i++)
00379 {
00380 $this->tpl->setCurrentBlock("school_loop");
00381 $this->tpl->setVariable("SCHOOL_LOOP_TXT_SCHOOL", $this->lng->txt("bibitem_school"));
00382 $this->tpl->setVariable("SCHOOL_LOOP_TXT_DELETE", $this->lng->txt("bibitem_delete"));
00383 $this->tpl->setVariable("SCHOOL_LOOP_ACTION_DELETE", $a_formaction . "&cmd=deleteBibItem&bibItemIndex=" . $a_index . "," . $i . "&bibItemPath=BibItem&bibItemName=School");
00384 $this->tpl->setVariable("SCHOOL_LOOP_TXT_ADD", $this->lng->txt("bibitem_add"));
00385 $this->tpl->setVariable("SCHOOL_LOOP_ACTION_ADD", $a_formaction . "&cmd=addBibItem&bibItemName=School&bibItemPath=BibItem&bibItemIndex=" . $a_index);
00386 $this->tpl->setVariable("SCHOOL_LOOP_NO", $i);
00387 $this->tpl->setVariable("SCHOOL_LOOP_VAL", ilUtil::prepareFormOutput($school[$i]["value"]));
00388 $this->tpl->parseCurrentBlock("school_loop");
00389 }
00390 }
00391
00392
00393 if (is_array($series = $this->bib_obj->getElement("Series", "BibItem[" . ($a_index+1) . "]")) &&
00394 count($series) > 0)
00395 {
00396 $this->tpl->setCurrentBlock("series");
00397 $this->tpl->setVariable("SERIES_TXT_SERIES", $this->lng->txt("bibitem_series"));
00398 $this->tpl->setVariable("SERIES_TXT_DELETE", $this->lng->txt("bibitem_delete"));
00399 $this->tpl->setVariable("SERIES_ACTION_DELETE", $a_formaction . "&cmd=deleteBibItem&&bibItemPath=BibItem[" . ($a_index+1) ."]&bibItemName=Series");
00400 $this->tpl->setVariable("SERIES_TXT_SERIESTITLE", $this->lng->txt("bibitem_series_title"));
00401 if (is_array($title = $this->bib_obj->getElement("SeriesTitle", "BibItem[" . ($a_index+1) . "]/Series")))
00402 {
00403 $this->tpl->setVariable("SERIES_VAL_SERIESTITLE", ilUtil::prepareFormOutput($title[0]["value"]));
00404 }
00405 $this->tpl->setVariable("SERIES_TXT_SERIESEDITOR", $this->lng->txt("bibitem_series_editor"));
00406 if (is_array($editor = $this->bib_obj->getElement("SeriesEditor", "BibItem[" . ($a_index+1) . "]/Series")))
00407 {
00408 $this->tpl->setVariable("SERIES_VAL_SERIESEDITOR", ilUtil::prepareFormOutput($editor[0]["value"]));
00409 }
00410 $this->tpl->setVariable("SERIES_TXT_SERIESVOLUME", $this->lng->txt("bibitem_series_volume"));
00411 if (is_array($volume = $this->bib_obj->getElement("SeriesVolume", "BibItem[" . ($a_index+1) . "]/Series")))
00412 {
00413 $this->tpl->setVariable("SERIES_VAL_SERIESVOLUME", ilUtil::prepareFormOutput($volume[0]["value"]));
00414 }
00415 $this->tpl->parseCurrentBlock("series");
00416 }
00417 else
00418 {
00419 $this->tpl->setVariable("TXT_SERIES", $this->lng->txt("bibitem_series"));
00420 }
00421
00422 $year = $this->bib_obj->getElement("Year", "BibItem[" . ($a_index+1) . "]");
00423 $this->tpl->setVariable("TXT_YEAR", $this->lng->txt("bibitem_year"));
00424 $this->tpl->setVariable("VAL_YEAR", ilUtil::prepareFormOutput($year[0]["value"]));
00425
00426
00427 if (is_array($url = $this->bib_obj->getElement("URL", "BibItem[" . ($a_index+1) . "]")) &&
00428 count($url) > 0)
00429 {
00430 $url_isbn_issn["type"] = "URL";
00431 $url_isbn_issn["value"] = $url[0]["value"];
00432 }
00433 else if (is_array($isbn = $this->bib_obj->getElement("ISBN", "BibItem[" . ($a_index+1) . "]")) &&
00434 count($isbn) > 0)
00435 {
00436 $url_isbn_issn["type"] = "ISBN";
00437 $url_isbn_issn["value"] = $isbn[0]["value"];
00438 }
00439 else if (is_array($issn = $this->bib_obj->getElement("ISSN", "BibItem[" . ($a_index+1) . "]")) &&
00440 count($issn) > 0)
00441 {
00442 $url_isbn_issn["type"] = "ISSN";
00443 $url_isbn_issn["value"] = $issn[0]["value"];
00444 }
00445 $this->tpl->setVariable($url_isbn_issn["type"], " selected");
00446 $this->tpl->setVariable("VAL_URL_ISBN_ISSN", ilUtil::prepareFormOutput($url_isbn_issn["value"]));
00447
00448 $this->tpl->setVariable("EDIT_ACTION", $a_formaction . "&cmd=post");
00449 $this->tpl->setVariable("TARGET", $this->getTargetFrame("save"));
00450 $this->tpl->setVariable("VAL_INDEX", $a_index);
00451 $this->tpl->setVariable("TXT_SAVE", $this->lng->txt("bibitem_save"));
00452
00453 return true;
00454 }
00455
00456 function edit($a_temp_var, $a_temp_block, $a_formaction, $a_index = 0, $a_language = "")
00457 {
00458 if ($a_language == "")
00459 {
00460 $a_language = $this->ilias->account->getLanguage();
00461 }
00462 $this->tpl->addBlockFile($a_temp_var, $a_temp_block, "tpl.bib_data_editor.html", false);
00463
00464 #echo "Pr�fen, ob BibItems vorhanden sind:<br>\n";
00465 if (!is_array($data = $this->bib_obj->getElement("BibItem")))
00466 {
00467 #echo "Nein!<br>\n";
00468 $this->tpl->setCurrentBlock("not_found");
00469 $this->tpl->setVariable("NOT_FOUND_ACTION", $a_formaction . "&cmd=addBibItem&bibItemName=BibItem");
00470 $this->tpl->setVariable("NOT_FOUND_TXT" , $this->lng->txt("bibitem_not_found"));
00471 $this->tpl->setVariable("NOT_FOUND_TXT_ADD" , $this->lng->txt("bibitem_add"));
00472 $this->tpl->parseCurrentBlock();
00473 }
00474 else
00475 {
00476 #echo "OK!<br>\n";
00477 #vd($data);
00478 for ($i = 0; $i < count($data); $i++)
00479 {
00480 $edition = $this->bib_obj->getElement("Edition", "BibItem", $i);
00481 $year = $this->bib_obj->getElement("Year", "BibItem", $i);
00482 $this->tpl->setCurrentBlock("index_loop");
00483 $this->tpl->setVariable("INDEX_LOOP_VALUE", $i);
00484 if ($a_index == $i)
00485 {
00486 $this->tpl->setVariable("INDEX_LOOP_SELECTED", " selected");
00487 }
00488 $this->tpl->setVariable("INDEX_LOOP_TEXT", $edition[0]["value"] . ", " . $year[0]["value"]);
00489 $this->tpl->parseCurrentBlock("index_loop");
00490 }
00491 $this->tpl->setCurrentBlock("found");
00492 $this->tpl->setVariable("FOUND_ACTION", $a_formaction . "&cmd=editBibItem");
00493 $this->tpl->setVariable("FOUND_TXT" , $this->lng->txt("bibitem_choose_index"));
00494 #echo "Einlesen des BibItems:<br>\n";
00495 $this->fill($a_formaction, $a_index, $a_language);
00496 $this->tpl->parseCurrentBlock();
00497 }
00498 }
00499
00500 function save($a_index)
00501 {
00502 $p = "//Bibliography";
00503 $this->bib_obj->nested_obj->updateDomNode($p, $_POST["meta"], $a_index);
00504 $this->bib_obj->nested_obj->updateFromDom();
00505 $data = $this->bib_obj->getElement("BibItem");
00506 return (count($data) - 1);
00507 }
00508
00509 function &create()
00510 {
00511 $this->meta_obj =& new ilMetaData();
00512
00513 if (is_array($_POST["meta"]))
00514 {
00515 $meta = $_POST["meta"];
00516 $this->meta_obj->setTitle(ilUtil::stripSlashes($meta["Title"]["Value"]));
00517 }
00518
00519 else if (is_array($_POST["Fobject"]))
00520 {
00521 $meta = $_POST["Fobject"];
00522 $this->meta_obj->setTitle(ilUtil::stripSlashes($meta["title"]));
00523 }
00524
00525 return $this->meta_obj;
00526 }
00527
00535 function getTargetFrame($a_cmd, $a_target_frame = "")
00536 {
00537 if ($this->target_frame[$a_cmd] != "")
00538 {
00539 return $this->target_frame[$a_cmd];
00540 }
00541 elseif (!empty($a_target_frame))
00542 {
00543 return $a_target_frame;
00544 }
00545 else
00546 {
00547 return;
00548 }
00549 }
00550
00558 function setTargetFrame($a_cmd, $a_target_frame)
00559 {
00560 $this->target_frame[$a_cmd] = $a_target_frame;
00561 }
00562 }
00563 ?>