• Main Page
  • Related Pages
  • Modules
  • Namespaces
  • Data Structures
  • Files
  • File List
  • Globals

content/classes/class.ilBibItemGUI.php

Go to the documentation of this file.
00001 <?php
00002 /*
00003         +-----------------------------------------------------------------------------+
00004         | ILIAS open source                                                           |
00005         +-----------------------------------------------------------------------------+
00006         | Copyright (c) 1998-2006 ILIAS open source, University of Cologne            |
00007         |                                                                             |
00008         | This program is free software; you can redistribute it and/or               |
00009         | modify it under the terms of the GNU General Public License                 |
00010         | as published by the Free Software Foundation; either version 2              |
00011         | of the License, or (at your option) any later version.                      |
00012         |                                                                             |
00013         | This program is distributed in the hope that it will be useful,             |
00014         | but WITHOUT ANY WARRANTY; without even the implied warranty of              |
00015         | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               |
00016         | GNU General Public License for more details.                                |
00017         |                                                                             |
00018         | You should have received a copy of the GNU General Public License           |
00019         | along with this program; if not, write to the Free Software                 |
00020         | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA. |
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                         /* Language Loop */
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                         /* Author Loop */
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                         /* CrossRef Loop */
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                         /* Editor Loop */
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                         /* WherePublished Loop */
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                         /* Institution Loop */
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                         /* Journal */
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                         /* Keyword Loop */
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                         /* Month */
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                         /* Pages */
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                         /* School Loop */
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                         /* Series */
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                         /* URL || ISBN || ISSN */
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                 /* editing meta data with editor */
00513                 if (is_array($_POST["meta"]))
00514                 {
00515                         $meta = $_POST["meta"];
00516                         $this->meta_obj->setTitle(ilUtil::stripSlashes($meta["Title"]["Value"]));
00517                 }
00518                 /* creating a new object -> meta data: title and description */
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 ?>

Generated on Fri Dec 13 2013 13:52:09 for ILIAS Release_3_7_x_branch .rev 46817 by  doxygen 1.7.1