function &getItemFromRow(&$row) { $item = null; switch ($row['item_type']) { case PLUGIN_DOCMAN_ITEM_TYPE_FOLDER: $item = new Docman_Folder($row); break; case PLUGIN_DOCMAN_ITEM_TYPE_FILE: $item = new Docman_File($row); break; case PLUGIN_DOCMAN_ITEM_TYPE_LINK: $item = new Docman_Link($row); if (isset($row['link_version_id'])) { $item->setCurrentVersion(new Docman_LinkVersion(array('id' => $row['link_version_id'], 'user_id' => $row['link_version_user_id'], 'item_id' => $item->getId(), 'number' => $row['link_version_number'], 'label' => $row['link_version_label'], 'changelog' => $row['link_version_changelog'], 'date' => $row['link_version_date'], 'link_url' => $row['link_version_link_url']))); } break; case PLUGIN_DOCMAN_ITEM_TYPE_EMBEDDEDFILE: $item = new Docman_EmbeddedFile($row); break; case PLUGIN_DOCMAN_ITEM_TYPE_WIKI: $item = new Docman_Wiki($row); break; case PLUGIN_DOCMAN_ITEM_TYPE_EMPTY: $item = new Docman_Empty($row); break; default: return; } if ($row['item_type'] == PLUGIN_DOCMAN_ITEM_TYPE_FILE || $row['item_type'] == PLUGIN_DOCMAN_ITEM_TYPE_EMBEDDEDFILE) { if (isset($row['version_id'])) { $version = array('id' => $row['version_id'], 'user_id' => $row['version_user_id'], 'item_id' => $item->getId(), 'number' => $row['version_number'], 'label' => $row['version_label'], 'changelog' => $row['version_changelog'], 'date' => $row['version_date'], 'filename' => $row['version_filename'], 'filesize' => $row['version_filesize'], 'filetype' => $row['version_filetype'], 'path' => $row['version_path']); $item->setCurrentVersion(new Docman_Version($version)); } } return $item; }