ILIAS  Release_3_10_x_branch Revision 61812
 All Data Structures Namespaces Files Functions Variables Groups Pages
ilObjDlBook Class Reference

Class ilObjDlBook. More...

+ Inheritance diagram for ilObjDlBook:
+ Collaboration diagram for ilObjDlBook:

Public Member Functions

 ilObjDlBook ($a_id=0, $a_call_by_reference=true)
 Constructor public.
 initBibItemObject ()
 init bib object (contains all bib item data)
 exportRekursiv ($obj_id, $depth, $left, $right)
 export lm_data-table to xml-structure
 export ($a_deliver=true)
 exports the digi-lib-object into a xml structure
 addTranslation ($a_ref_id)
 addTranslations ($a_arr_ref_id)
 deleteTranslation ($a_ref_id)
 deleteTranslations ($a_arr_ref_id)
 getTranslations ()
 getXMLZip ()
 readAssignedTranslations ()
- Public Member Functions inherited from ilObjContentObject
 ilObjContentObject ($a_id=0, $a_call_by_reference=true)
 Constructor public.
 create ($a_upload=false)
 create content object
 initDefaultRoles ()
 init default roles settings OBSOLETE.
 read ()
 read data of content object
 getTitle ()
 get title of content object
 setTitle ($a_title)
 set title of content object
 getDescription ()
 get description of content object
 setDescription ($a_description)
 set description of content object
 getImportId ()
 get import id
 setImportId ($a_id)
 set import id
getTree ()
 update ()
 update complete object (meta data and properties)
 import ()
 if implemented, this function should be called from an Out/GUI-Object
 putInTree ($a_parent)
 put content object in main tree
 createLMTree ()
 create content object tree (that stores structure object hierarchie)
getLMTree ()
 get content object tree
 createImportDirectory ()
 creates data directory for import files (data_dir/lm_data/lm_<id>/import, depending on data directory that is set in ILIAS setup/ini)
 getDataDirectory ()
 get data directory
 getImportDirectory ()
 get import directory of lm
 createExportDirectory ($a_type="xml")
 creates data directory for export files (data_dir/lm_data/lm_<id>/export, depending on data directory that is set in ILIAS setup/ini)
 getExportDirectory ($a_type="xml")
 get export directory of lm
 delete ()
 delete learning module and all related data
 getLayout ()
 get default page layout of content object (see directory layouts/)
 setLayout ($a_layout)
 set default page layout
 getStyleSheetId ()
 get ID of assigned style sheet object
 setStyleSheetId ($a_style_id)
 set ID of assigned style sheet object
 writeStyleSheetId ($a_style_id)
 write ID of assigned style sheet object to db
 _moveLMStyles ($a_from_style, $a_to_style)
 move learning modules from one style to another
 _lookupStyleSheetId ($a_cont_obj_id)
 lookup style sheet ID
 _lookupContObjIdByStyleId ($a_style_id)
 lookup style sheet ID
 _getNrOfAssignedLMs ($a_style_id)
 gets the number of learning modules assigned to a content style
 _getNrLMsIndividualStyles ()
 get number of learning modules with individual styles
 _getNrLMsNoStyle ()
 get number of learning modules assigned no style
 _deleteStyleAssignments ($a_style_id)
 delete all style references to style
 getPageHeader ()
 get page header mode (IL_CHAPTER_TITLE | IL_PAGE_TITLE | IL_NO_HEADER)
 setPageHeader ($a_pg_header=IL_CHAPTER_TITLE)
 set page header mode
 getTOCMode ()
 get toc mode ("chapters" | "pages")
 getPublicAccessMode ()
 get public access mode ("complete" | "selected")
 setTOCMode ($a_toc_mode="chapters")
 set toc mode
 setOnline ($a_online)
 getOnline ()
 setActiveLMMenu ($a_act_lm_menu)
 isActiveLMMenu ()
 setActiveTOC ($a_toc)
 isActiveTOC ()
 setActiveNumbering ($a_num)
 isActiveNumbering ()
 setActivePrintView ($a_print)
 isActivePrintView ()
 setActivePreventGlossaryAppendix ($a_print)
 isActivePreventGlossaryAppendix ()
 setActiveDownloads ($a_down)
 isActiveDownloads ()
 setActiveDownloadsPublic ($a_down)
 isActiveDownloadsPublic ()
 setPublicNotes ($a_pub_notes)
 publicNotes ()
 setCleanFrames ($a_clean)
 cleanFrames ()
 setHistoryUserComments ($a_comm)
 setPublicAccessMode ($a_mode)
 isActiveHistoryUserComments ()
 setHeaderPage ($a_pg)
 getHeaderPage ()
 setFooterPage ($a_pg)
 getFooterPage ()
 readProperties ()
 read content object properties
 updateProperties ()
 update content object properties
 createProperties ()
 create new properties record
 _lookupOnline ($a_id)
 check wether content object is online
 getAvailableLayouts ()
 get all available lm layouts
 _checkPreconditionsOfPage ($cont_ref_id, $cont_obj_id, $page_id)
 checks wether the preconditions of a page are fulfilled or not
 _getMissingPreconditionsOfPage ($cont_ref_id, $cont_obj_id, $page_id)
 gets all missing preconditions of page
 _getMissingPreconditionsTopChapter ($cont_obj_ref_id, $cont_obj_id, $page_id)
 get top chapter of page for that any precondition is missing
 notify ($a_event, $a_ref_id, $a_parent_non_rbac_id, $a_node_id, $a_params=0)
 notifys an object about an event occured Based on the event happend, each object may decide how it reacts.
 hasSuccessorPage ($a_cont_obj_id, $a_page_id)
 checks if page has a successor page
 checkTree ()
 fixTree ()
 fix tree
 exportXML (&$a_xml_writer, $a_inst, $a_target_dir, &$expLog)
 export object to xml (see ilias_co.dtd)
 exportXMLMetaData (&$a_xml_writer)
 export content objects meta data to xml (see ilias_co.dtd)
 exportXMLStructureObjects (&$a_xml_writer, $a_inst, &$expLog)
 export structure objects to xml (see ilias_co.dtd)
 exportXMLPageObjects (&$a_xml_writer, $a_inst, &$expLog)
 export page objects to xml (see ilias_co.dtd)
 exportXMLMediaObjects (&$a_xml_writer, $a_inst, $a_target_dir, &$expLog)
 export media objects to xml (see ilias_co.dtd)
 exportFileItems ($a_target_dir, &$expLog)
 export files of file itmes
 exportXMLProperties ($a_xml_writer, &$expLog)
 export properties of content object
 getExportFiles ()
 get export files
 setPublicExportFile ($a_type, $a_file)
 specify public export file for type
 getPublicExportFile ($a_type)
 get public export file
 getOfflineFiles ($dir)
 get offline files
 exportSCORM ($a_target_dir, $log)
 export scorm package
 exportHTML ($a_target_dir, $log, $a_zip_file=true, $a_export_format="html")
 export html package
 exportHTMLFile ($a_target_dir, $a_file_id)
 export file object
 exportHTMLMOB ($a_target_dir, &$a_lm_gui, $a_mob_id, $a_frame, &$a_linked_mobs)
 export media object to html
 exportHTMLGlossaryTerms (&$a_lm_gui, $a_target_dir)
 export glossary terms
 exportHTMLPages (&$a_lm_gui, $a_target_dir)
 export all pages of learning module to html file
 exportPageHTML (&$a_lm_gui, $a_target_dir, $a_lm_page_id, $a_frame="")
 export page html
 exportFO (&$a_xml_writer, $a_target_dir)
 export object to fo
 exportFOStructureObjects (&$a_xml_writer)
 export structure objects to fo
 executeDragDrop ($source_id, $target_id, $first_child, $as_subitem=false, $movecopy="move")
 Execute Drag Drop Action.
- Public Member Functions inherited from ilObject
 ilObject ($a_id=0, $a_reference=true)
 Constructor public.
 withReferences ()
 determines wehter objects are referenced or not (got ref ids or not)
 read ($a_force_db=false)
 read object data from db into object
 getId ()
 get object id public
 setId ($a_id)
 set object id public
 setRefId ($a_id)
 set reference id public
 getRefId ()
 get reference id public
 getType ()
 get object type public
 setType ($a_type)
 set object type public
 getPresentationTitle ()
 get presentation title Normally same as title Overwritten for sessions
 getUntranslatedTitle ()
 get untranslated object title public
 getLongDescription ()
 get object long description (stored in object_description)
 _lookupObjIdByImportId ($a_import_id)
 getOwner ()
 get object owner
 getOwnerName ()
 _lookupOwnerName ($a_owner_id)
 lookup owner name for owner id
 setOwner ($a_owner)
 set object owner
 getCreateDate ()
 get create date public
 getLastUpdateDate ()
 get last update date public
 setObjDataRecord ($a_record)
 set object_data record (note: this method should only be called from the ilObjectFactory class)
 create ()
 create
 MDUpdateListener ($a_element)
 Meta data update listener.
 createMetaData ()
 create meta data entry
 updateMetaData ()
 update meta data entry
 deleteMetaData ()
 delete meta data entry
 updateOwner ()
 update owner of object in db
 _getIdForImportId ($a_import_id)
 get current object id for import id (static)
 _getAllReferences ($a_id)
 get all reference ids of object
 _lookupTitle ($a_id)
 lookup object title
 _lookupDescription ($a_id)
 lookup object description
 _lookupLastUpdate ($a_id, $a_as_string=false)
 lookup last update
 _getLastUpdateOfObjects ($a_objs)
 Get last update for a set of media objects.
 _lookupObjId ($a_id)
 _setDeletedDate ($a_ref_id)
 only called in ilTree::saveSubTree
 _resetDeletedDate ($a_ref_id)
 only called in ilObjectGUI::insertSavedNodes
 _writeTitle ($a_obj_id, $a_title)
 write title to db (static)
 _writeDescription ($a_obj_id, $a_desc)
 write description to db (static)
 _writeImportId ($a_obj_id, $a_import_id)
 write import id to db (static)
 _lookupType ($a_id, $a_reference=false)
 lookup object type
 _isInTrash ($a_ref_id)
 checks wether object is in trash
 _hasUntrashedReference ($a_obj_id)
 checks wether an object has at least one reference that is not in trash
 _lookupObjectId ($a_ref_id)
 lookup object id
 _getObjectsDataForType ($a_type, $a_omit_trash=false)
 get all objects of a certain type
 setPermissions ($a_parent_ref)
 set permissions of object
 createReference ()
 creates reference for object
 countReferences ()
 count references of object
 createRoleFolder ()
 creates a local role folder
 setRegisterMode ($a_bool)
 isUserRegistered ($a_user_id=0)
 requireRegistration ()
 getHTMLDirectory ()
 cloneObject ($a_target_id, $a_copy_id=0)
 Clone object permissions, put in tree ...
 appendCopyInfo ($a_target_id, $a_copy_id)
 Prepend Copy info if object with same name exists in that container.
 cloneDependencies ($a_target_id, $a_copy_id)
 Clone object dependencies.
 cloneMetaData ($target_obj)
 Copy meta data.

Static Public Member Functions

 _search (&$search_obj, $a_search_in)
 STATIC METHOD search for dbk data.

Data Fields

 $bib_obj
- Data Fields inherited from ilObjContentObject
 $lm_tree
 $meta_data
 $layout
 $style_id
 $pg_header
 $online
- Data Fields inherited from ilObject
 $ilias
 $lng
 $id
 $ref_id
 $type
 $title
 $untranslatedTitle
 $desc
 $long_desc
 $owner
 $create_date
 $last_update
 $import_id
 $register = false
 $referenced
 $objectList
 $max_title
 $max_desc
 $add_dots
 $obj_data_record
 object_data record

Detailed Description

Class ilObjDlBook.

Author
Databay AG ay@da.nosp@m.taba.nosp@m.y.de
Version
Id:
class.ilObjDlBook.php 15697 2008-01-08 20:04:33Z hschottm

Definition at line 34 of file class.ilObjDlBook.php.

Member Function Documentation

ilObjDlBook::_search ( $search_obj,
  $a_search_in 
)
static

STATIC METHOD search for dbk data.

This method is called from class.ilSearch

Parameters
objectreference on object of search class public

Reimplemented from ilObjContentObject.

Definition at line 430 of file class.ilObjDlBook.php.

References $ilBench, $in, $res, $result, and DB_FETCHMODE_OBJECT.

Referenced by ilSearch\performSearch().

{
global $ilBench;
switch($a_search_in)
{
case 'meta':
// FILTER ALL DBK OBJECTS
$in = $search_obj->getInStatement("r.ref_id");
$where = $search_obj->getWhereCondition("fulltext",array("xv.tag_value"));
/* very slow on mysql < 4.0.18
$query = "SELECT DISTINCT(r.ref_id) FROM object_reference AS r,object_data AS o, ".
"lm_data AS l,xmlnestedset AS xm,xmlvalue AS xv ".
$where.
$in.
"AND r.obj_id=o.obj_id AND ((o.obj_id=l.lm_id AND xm.ns_book_fk=l.obj_id) OR ".
"(o.obj_id=xm.ns_book_fk AND xm.ns_type IN ('dbk','bib'))) ".
"AND xm.ns_tag_fk=xv.tag_fk ".
"AND o.type= 'dbk'"; */
$query1 = "SELECT DISTINCT(r.ref_id) FROM object_reference AS r,object_data AS o, ".
"xmlnestedset AS xm,xmlvalue AS xv ".
$where.
$in.
"AND r.obj_id=o.obj_id AND ( ".
"(o.obj_id=xm.ns_book_fk AND xm.ns_type IN ('dbk','bib'))) ".
"AND xm.ns_tag_fk=xv.tag_fk ".
"AND o.type= 'dbk'";
// BEGINNING SELECT WITH SEARCH RESULTS IS MUCH FASTER
$query1 = "SELECT DISTINCT(r.ref_id) as ref_id FROM xmlvalue AS xv ".
"LEFT JOIN xmlnestedset AS xm ON xm.ns_tag_fk=xv.tag_fk ".
"LEFT JOIN object_data AS o ON o.obj_id = xm.ns_book_fk ".
"LEFT JOIN object_reference AS r ON o.obj_id = r.obj_id ".
$where.
$in.
" AND o.type = 'dbk' AND xm.ns_type IN ('dbk','bib')";
$query2 = "SELECT DISTINCT(r.ref_id) FROM object_reference AS r,object_data AS o, ".
"lm_data AS l,xmlnestedset AS xm,xmlvalue AS xv ".
$where.
$in.
"AND r.obj_id=o.obj_id AND ((o.obj_id=l.lm_id AND xm.ns_book_fk=l.obj_id) ".
") ".
"AND xm.ns_tag_fk=xv.tag_fk ".
"AND o.type= 'dbk'";
$query2 = "SELECT DISTINCT(r.ref_id) as ref_id FROM xmlvalue AS xv ".
" LEFT JOIN xmlnestedset AS xm ON xm.ns_tag_fk = xv.tag_fk ".
" LEFT JOIN lm_data AS l ON l.obj_id = xm.ns_book_fk ".
" LEFT JOIN object_data AS o ON o.obj_id = l.lm_id ".
" LEFT JOIN object_reference AS r ON r.obj_id = o.obj_id ".
$where.
$in.
"AND o.type = 'dbk'";
/*
$query = "SELECT DISTINCT(r.ref_id) AS ref_id FROM object_reference AS r ".
"INNER JOIN object_data AS o ON r.obj_id=o.obj_id ".
"INNER JOIN lm_data AS l ON l.lm_id = o.obj_id ".
"INNER JOIN xmlnestedset AS xm ON (xm.ns_book_fk = l.obj_id OR xm.ns_type IN ('dbk','bib')) ".
"INNER JOIN xmlvalue AS xv ON xm.ns_tag_fk = xv.tag_fk ".
$where.
$in.
"AND o.type = 'dbk'";
*/
$ilBench->start("Search", "ilObjDlBook_search_meta");
$res1 = $search_obj->ilias->db->query($query1);
$res2 = $search_obj->ilias->db->query($query2);
$ilBench->stop("Search", "ilObjDlBook_search_meta");
$counter = 0;
$ids = array();
while($row = $res1->fetchRow(DB_FETCHMODE_OBJECT))
{
$ids[] = $row->ref_id;
$result[$counter]["id"] = $row->ref_id;
++$counter;
}
while($row = $res2->fetchRow(DB_FETCHMODE_OBJECT))
{
if(in_array($row->ref_id,$ids))
{
continue;
}
$result[$counter]["id"] = $row->ref_id;
++$counter;
}
break;
case 'content':
$in = $search_obj->getInStatement("ref_id");
$where = $search_obj->getWhereCondition("fulltext",array("pg.content"));
$query = "SELECT DISTINCT(r.ref_id) AS ref_id ,pg.page_id AS page_id FROM page_object AS pg ".
"INNER JOIN object_reference AS r ON pg.parent_id = r.obj_id ".
$where.
$in.
"AND pg.parent_type = 'dbk' ";
$ilBench->start("Search", "ilObjDlBook_search_content");
$res = $search_obj->ilias->db->query($query);
$ilBench->stop("Search", "ilObjDlBook_search_content");
$counter = 0;
while($row = $res->fetchRow(DB_FETCHMODE_OBJECT))
{
$result[$counter]["id"] = $row->ref_id;
$result[$counter]["page_id"] = $row->page_id;
++$counter;
}
break;
}
return $result ? $result : array();
}

+ Here is the caller graph for this function:

ilObjDlBook::addTranslation (   $a_ref_id)

Definition at line 348 of file class.ilObjDlBook.php.

References $res, and readAssignedTranslations().

Referenced by addTranslations().

{
global $ilDB;
$query = "REPLACE INTO dbk_translations ".
"SET id = ".$ilDB->quote($this->ref_id).", ".
"tr_id = ".$ilDB->quote($a_ref_id)." ";
$res = $this->ilias->db->query($query);
$query = "REPLACE INTO dbk_translations ".
"SET id = ".$ilDB->quote($a_ref_id).", ".
"tr_id = ".$ilDB->quote($this->ref_id)." ";
$res = $this->ilias->db->query($query);
// UPDATE MEMBER VARIABLE
return true;
}

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

ilObjDlBook::addTranslations (   $a_arr_ref_id)

Definition at line 368 of file class.ilObjDlBook.php.

References ilObject\$ref_id, and addTranslation().

{
if(!is_array($a_arr_ref_id))
{
return false;
}
foreach($a_arr_ref_id as $ref_id)
{
$this->addTranslation($ref_id);
}
return true;
}

+ Here is the call graph for this function:

ilObjDlBook::deleteTranslation (   $a_ref_id)

Definition at line 380 of file class.ilObjDlBook.php.

References $res, and readAssignedTranslations().

Referenced by deleteTranslations().

{
global $ilDB;
if(!$a_ref_id)
{
return false;
}
$query = "DELETE FROM dbk_translations ".
"WHERE id = ".$ilDB->quote($this->ref_id)." ".
"AND tr_id = ".$ilDB->quote($a_ref_id)." ";
$res = $this->ilias->db->query($query);
$query = "DELETE FROM dbk_translations ".
"WHERE id = ".$ilDB->quote($a_ref_id)." ".
"AND tr_id = ".$ilDB->quote($this->ref_id)." ";
$res = $this->ilias->db->query($query);
// UPDATE MEMBER VARIABLE
return true;
}

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

ilObjDlBook::deleteTranslations (   $a_arr_ref_id)

Definition at line 407 of file class.ilObjDlBook.php.

References ilObject\$ref_id, and deleteTranslation().

{
if(!is_array($a_arr_ref_id))
{
return false;
}
foreach($a_arr_ref_id as $ref_id)
{
$this->deleteTranslation($ref_id);
}
return true;
}

+ Here is the call graph for this function:

ilObjDlBook::export (   $a_deliver = true)

exports the digi-lib-object into a xml structure

Definition at line 148 of file class.ilObjDlBook.php.

References $result, ilObjContentObject\createExportDirectory(), DB_FETCHMODE_ASSOC, ilUtil\deliverFile(), exportRekursiv(), ilObjContentObject\getExportDirectory(), ilObject\getRefId(), ilUtil\rCopy(), and ilUtil\zip().

Referenced by getXMLZip().

{
global $ilDB;
include_once("./classes/class.ilNestedSetXML.php");
// ------------------------------------------------------
// anhand der ref_id die obj_id ermitteln.
// ------------------------------------------------------
$query = "SELECT * FROM object_reference,object_data WHERE object_reference.ref_id= ".
$ilDB->quote($this->getRefId())." AND object_reference.obj_id=object_data.obj_id ";
$result = $this->ilias->db->query($query);
$objRow = $result->fetchRow(DB_FETCHMODE_ASSOC);
$obj_id = $objRow["obj_id"];
$this->mob_ids = array();
// ------------------------------------------------------
// start xml-String
// ------------------------------------------------------
$xml = "<?xml version=\"1.0\"?>\n<!DOCTYPE ContentObject SYSTEM \"ilias_co.dtd\">\n<ContentObject Type=\"LibObject\">\n";
// ------------------------------------------------------
// get global meta-data
// ------------------------------------------------------
$nested = new ilNestedSetXML();
$xml .= $nested->export($obj_id,"dbk")."\n";
// ------------------------------------------------------
// get all book-xml-data recursiv
// ------------------------------------------------------
$query = "SELECT *
FROM lm_tree, lm_data
WHERE lm_tree.lm_id = ".$ilDB->quote($obj_id)."
AND lm_tree.child = lm_data.obj_id
AND ( lm_data.type = 'du' )
AND lm_tree.depth = 1
ORDER BY lm_tree.lft";
$result = $this->ilias->db->query($query);
$treeData = $result->fetchRow(DB_FETCHMODE_ASSOC);
$xml .= $this->exportRekursiv($obj_id,2, $treeData["lft"], $treeData["rgt"]);
// ------------------------------------------------------
// get or create export-directory
// ------------------------------------------------------
$export_dir = $this->getExportDirectory();
// ------------------------------------------------------
// get mediaobject-xml-data
// ------------------------------------------------------
$mob_ids = $this->mob_ids;
if (is_array($mob_ids) && count($mob_ids)>0)
{
reset ($mob_ids);
while (list ($key, $val) = each ($mob_ids))
{
$xml .= "<MediaObject>";
$query = "SELECT * FROM media_item WHERE mob_id= ".$ilDB->quote($key)." ";
//vd($query);
$first = true;
$result = $this->ilias->db->query($query);
while (is_array($row = $result->fetchRow(DB_FETCHMODE_ASSOC)) )
{
if($first)
{
//vd($row[purpose]);
$nested = new ilNestedSetXML();
$metaxml = $nested->export($key,"mob");
$metaxml = preg_replace("/Entry=\"(.*?)\"/","Entry=\"il__mob_".$key."\"",$metaxml);
$metaxml2 = "<Technical>";
$metaxml2 .= "<Format>".$row["format"]."</Format>";
$metaxml2 .= "<Size>14559</Size>";
$metaxml2 .= "<Location Type=\"".$row["location_type"]."\">".$row["location"]."</Location>";
$metaxml2 .= "</Technical>";
$metaxml = str_replace("</MetaData>",$metaxml2."</MetaData>",$metaxml);
$xml .= $metaxml;
$first = false;
}
$xml .= "<MediaItem Purpose=\"".$row["purpose"]."\">";
$xml .= "<Location Type=\"".$row["location_type"]."\">".$row["location"]."</Location>";
$xml .= "<Format>".$row["format"]."</Format>";
$xml .= "<Layout Width=\"".$row["width"]."\" Height=\"".$row["height"]."\"/>";
$xml .= "</MediaItem>";
}
$xml .= "</MediaObject>";
}
}
// ------------------------------------------------------
// get bib-xml-data
// ------------------------------------------------------
$nested = new ilNestedSetXML();
$bib = $nested->export($obj_id,"bib");
$xml .= $bib."\n";
// ------------------------------------------------------
// xml-ending
// ------------------------------------------------------
$xml .= "</ContentObject>";
// ------------------------------------------------------
// filename and directory-creation
// ------------------------------------------------------
$fileName = $objRow["title"];
$fileName = str_replace(" ","_",$fileName);
if (!file_exists($export_dir."/".$fileName))
{
@mkdir($export_dir."/".$fileName);
@chmod($export_dir."/".$fileName,0755);
}
if (!file_exists($export_dir."/".$fileName."/objects"))
{
@mkdir($export_dir."/".$fileName."/objects");
@chmod($export_dir."/".$fileName."/objects",0755);
}
// ------------------------------------------------------
// copy mob-files
// ------------------------------------------------------
$mob_ids = $this->mob_ids;
if (is_array($mob_ids) && count($mob_ids)>0)
{
reset ($mob_ids);
while (list ($key, $val) = each ($mob_ids))
{
if (!file_exists($export_dir."/".$fileName."/objects/mm".$key))
{
@mkdir($export_dir."/".$fileName."/objects/mm".$key);
@chmod($export_dir."/".$fileName."/objects/mm".$key,0755);
}
$mobdir = "./data/mobs/mm_".$key;
ilUtil::rCopy($mobdir, $export_dir."/".$fileName."/objects/mm".$key);
}
}
// ------------------------------------------------------
// save xml-file
// ------------------------------------------------------
$fp = fopen($export_dir."/".$fileName."/".$fileName.".xml","wb");
fwrite($fp,$xml);
fclose($fp);
// ------------------------------------------------------
// zip all files
// ------------------------------------------------------
ilUtil::zip($export_dir."/".$fileName, $export_dir."/".$fileName.".zip");
// ------------------------------------------------------
// deliver files
// ------------------------------------------------------
if($a_deliver)
{
ilUtil::deliverFile($export_dir."/".$fileName.".zip",$fileName);
}
else
{
return $export_dir."/".$fileName.".zip";
}
/*
header("Expires: Mon, 1 Jan 1990 00:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
header("Content-type: application/octet-stream");
if (stristr(" ".$GLOBALS["HTTP_SERVER_VARS"]["HTTP_USER_AGENT"],"MSIE") )
{
header ("Content-Disposition: attachment; filename=" . $fileName.".zip");
}
else
{
header ("Content-Disposition: inline; filename=".$fileName.".zip" );
}
header ("Content-length:".(string)( filesize($export_dir."/".$fileName.".zip")) );
readfile( $export_dir."/".$fileName.".zip" );
*/
}

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

ilObjDlBook::exportRekursiv (   $obj_id,
  $depth,
  $left,
  $right 
)

export lm_data-table to xml-structure

Parameters
integerobj_id
integerdepth
integerleft left border of nested-set-structure
integerright right border of nested-set-structure public
Returns
string xml

Definition at line 77 of file class.ilObjDlBook.php.

References $res, $result, DB_FETCHMODE_ASSOC, domxml_open_mem(), xpath_eval(), and xpath_new_context().

Referenced by export().

{
global $ilDB;
// Jetzt alle lm_data anhand der obj_id auslesen.
$query = "SELECT *
FROM lm_tree, lm_data
WHERE lm_tree.lm_id = ".$ilDB->quote($obj_id)."
AND lm_tree.child = lm_data.obj_id
AND ( lm_data.type = 'st' OR lm_data.type = 'pg' )
AND lm_tree.depth = ".$ilDB->quote($depth)."
AND lm_tree.lft > ".$ilDB->quote($left)." and lm_tree.rgt < ".$ilDB->quote($right)."
ORDER BY lm_tree.lft";
$result = $this->ilias->db->query($query);
while (is_array($row = $result->fetchRow(DB_FETCHMODE_ASSOC)) )
{
if ($row["type"] == "st")
{
$xml .= "<StructureObject>";
$nested = new ilNestedSetXML();
$xml .= $nested->export($row["obj_id"],"st");
$xml .= "\n";
$xml .= $this->exportRekursiv($obj_id, $depth+1, $row["lft"], $row["rgt"]);
$xml .= "</StructureObject>";
}
if ($row["type"] == "pg")
{
$query = "SELECT * FROM page_object WHERE page_id= ".$ilDB->quote($row["obj_id"]);
$result2 = $this->ilias->db->query($query);
$row2 = $result2->fetchRow(DB_FETCHMODE_ASSOC);
$PO = $row2["content"]."\n";
if (stristr($PO,"MediaObject"))
{
$dom = domxml_open_mem($PO);
$xpc = xpath_new_context($dom);
$path = "//MediaObject/MediaAlias";
$res =& xpath_eval($xpc, $path);
for($i = 0; $i < count($res->nodeset); $i++)
{
$id_arr = explode("_", $res->nodeset[$i]->get_attribute("OriginId"));
$mob_id = $id_arr[count($id_arr) - 1];
$this->mob_ids[$mob_id] = true;
}
}
$nested = new ilNestedSetXML();
$mdxml = $nested->export($row["obj_id"],"pg");
$PO = str_replace("<PageObject>","<PageObject>\n$mdxml\n",$PO);
$xml .= $PO;
}
}
return($xml);
}

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

ilObjDlBook::getTranslations ( )

Definition at line 419 of file class.ilObjDlBook.php.

{
return $this->tr_ids;
}
ilObjDlBook::getXMLZip ( )

Reimplemented from ilObjContentObject.

Definition at line 552 of file class.ilObjDlBook.php.

References export().

{
return $this->export(false);
}

+ Here is the call graph for this function:

ilObjDlBook::ilObjDlBook (   $a_id = 0,
  $a_call_by_reference = true 
)

Constructor public.

Definition at line 42 of file class.ilObjDlBook.php.

References ilObjContentObject\ilObjContentObject(), and readAssignedTranslations().

{
$this->type = "dbk";
parent::ilObjContentObject($a_id, $a_call_by_reference);
if($a_id)
{
}
}

+ Here is the call graph for this function:

ilObjDlBook::initBibItemObject ( )

init bib object (contains all bib item data)

Definition at line 57 of file class.ilObjDlBook.php.

{
include_once("./Modules/LearningModule/classes/class.ilBibItem.php");
$this->bib_obj =& new ilBibItem($this);
$this->bib_obj->read();
return true;
}
ilObjDlBook::readAssignedTranslations ( )

Definition at line 559 of file class.ilObjDlBook.php.

References $res, and DB_FETCHMODE_OBJECT.

Referenced by addTranslation(), deleteTranslation(), and ilObjDlBook().

{
global $ilDB;
$query = "SELECT tr_id FROM dbk_translations ".
"WHERE id = ".$ilDB->quote($this->ref_id)." ";
$res = $this->ilias->db->query($query);
while($row = $res->fetchRow(DB_FETCHMODE_OBJECT))
{
$tmp_tr_ids[] = $row->tr_id;
}
return $this->tr_ids = $tmp_tr_ids ? $tmp_tr_ids : array();
}

+ Here is the caller graph for this function:

Field Documentation

ilObjDlBook::$bib_obj

Definition at line 36 of file class.ilObjDlBook.php.


The documentation for this class was generated from the following file: