function getUserName($userid) { global $database; switch ($userid) { case _DM_PERMIT_EDITOR: return _DML_GROUP_EDITOR; break; case _DM_PERMIT_AUTHOR: return _DML_GROUP_AUTHOR; break; case _DM_PERMIT_PUBLISHER: return _DML_GROUP_PUBLISHER; break; case _DM_PERMIT_EVERYBODY: return _DML_EVERYBODY; break; case _DM_PERMIT_REGISTERED: return _DML_ALL_REGISTERED; break; case _DM_PERMIT_CREATOR: return _DML_CREATOR; break; default: if ($userid > '0') { $user =& DOCMAN_users::get($userid); return $user->username; } if ($userid < '-5') { $calcgroups = abs($userid) - 10; $group =& DOCMAN_groups::get($calcgroups); return $group->groups_name; } break; } return '*' . _DML_UNKNOWN . '*'; }
function addUsers() { global $_DOCMAN; // only add users if 'Allow individual user permissions' is set to ON if (!$_DOCMAN->getCfg('individual_perm', 1)) { return; } $this->addLabel(_DML_USERS, _DM_PERMIT_NOOWNER); $users =& DOCMAN_users::getList(); foreach ($users as $user) { $this->addOption($user->username . "(" . $user->name . ")", $user->id); } }
function fetchEditDocumentForm($uid, $filename = null, $catid = 0) { global $_DOCMAN, $_DMUSER; $database = JFactory::getDBO(); $doc = new mosDMDocument($database); if ($uid) { $doc->load($uid); //Load the document //check user permissions $err = $_DMUSER->canPreformTask($doc, 'Edit'); if ($err) { _returnTo('cat_view', $err, $doc->catid); } } else { $doc->init_record(); //Initialise a document //check user permissions $err = $_DMUSER->canPreformTask($doc, 'Upload'); if ($err) { _returnTo('cat_view', $err, $doc->catid); } } //checkout the document $doc->checkout($_DMUSER->userid); // Set document filename if (!is_null($filename)) { $filename = DOCMAN_Utils::safeDecodeURL($filename); $doc->dmfilename = $filename; } // Set document url $prefix = substr($doc->dmfilename, 0, _DM_DOCUMENT_LINK_LNG); if (strcasecmp($prefix, _DM_DOCUMENT_LINK) == 0) { $doc->dmlink = substr($doc->dmfilename, _DM_DOCUMENT_LINK_LNG); $doc->dmfilename = _DM_DOCUMENT_LINK; } $lists = array(); // Set filename $lists['dmfilename'] = filesSelectList($doc, 'class="inputbox" size="1" disabled="disabled"'); // Built category select list $options = array(JHTML::_('select.option', '0', _DML_SELECT_CAT)); if ($uid) { $lists['catid'] = dmHTML::categoryList($doc->catid, "", $options); } else { $lists['catid'] = dmHTML::categoryList($catid, "", $options); } // Build select lists $lists['approved'] = JHTML::_('select.booleanlist', 'approved', 'class="inputbox"', $doc->approved, _DML_YES, _DML_NO); $lists['published'] = JHTML::_('select.booleanlist', 'published', 'class="inputbox"', $doc->published, _DML_YES, _DML_NO); $lists['viewer'] = dmHTML::viewerList($doc, 'dmowner'); $lists['maintainer'] = dmHTML::maintainerList($doc, 'dmmantainedby'); $lists['licenses'] = licenseSelectList($doc); $lists['licenses_display'] = licenseDisplayList($doc); // Built image list $lists['dmthumbnail'] = dmHTML::imageList('dmthumbnail', $doc->dmthumbnail); $lists['dmthumbnail_preview'] = $doc->dmthumbnail; // Find lastupdate user $last = array(); if ($doc->dmlastupdateby > _DM_PERMIT_USER) { $last[0] = DOCMAN_users::get($doc->dmlastupdateby); // the array is for BC 1.5.2, could be refactored in 1.6 } else { $last[0]->name = "Super Administrator"; } // Find createdby user $created = array(); if ($doc->dmsubmitedby > _DM_PERMIT_USER) { $created[0] = DOCMAN_users::get($doc->dmsubmitedby); // the array is for BC 1.5.2, could be refactored in 1.6 } else { $created[0]->name = "Super Administrator"; } // update 'dmlastupdateon' $doc->dmlastupdateon = date("Y-m-d H:i:s"); // Params definitions $params = null; $params_path = JPATH_ADMINISTRATOR . DS . 'components' . DS . 'com_docman' . DS . 'docman.params.xml'; if (file_exists($params_path)) { $params = new dmParameters($doc->attribs, $params_path, 'params'); } /* ------------------------------ * * MAMBOT - Setup All Mambots * * ------------------------------ */ $prebot = new DOCMAN_mambot('onBeforeEditDocument'); $prebot->setParm('document', $doc); $prebot->setParm('filename', $filename); $prebot->setParm('user', $_DMUSER); if (!$uid) { $prebot->copyParm('process', 'new document'); } else { $prebot->copyParm('process', 'edit document'); } $prebot->trigger(); if ($prebot->getError()) { _returnTo('cat_view', $prebot->getErrorMsg()); } return HTML_DMDocuments::editDocumentForm($doc, $lists, $last, $created, $params); }
function _formatUserName($userid) { global $_DOCMAN; $database = JFactory::getDBO(); require_once $_DOCMAN->getPath('classes', 'user'); require_once $_DOCMAN->getPath('classes', 'groups'); switch ($userid) { case '-1': return _DML_EVERYBODY; break; case '0': return _DML_ALL_REGISTERED; break; case _DM_PERMIT_PUBLISHER: return _DML_GROUP_PUBLISHER; break; case _DM_PERMIT_EDITOR: return _DML_GROUP_EDITOR; break; case _DM_PERMIT_AUTHOR: return _DML_GROUP_AUTHOR; break; default: if ($userid > 0) { $user = DOCMAN_users::get($userid); return $user->username; } if ($userid < -5) { $calcgroups = abs($userid) - 10; $user = DOCMAN_groups::get($calcgroups); return $user->groups_name; } break; } return "USER ID?"; }
function editDocument($uid) { require_once JPATH_ADMINISTRATOR . DS . 'components' . DS . 'com_docman' . DS . 'classes' . DS . 'DOCMAN_utils.class.php'; require_once JPATH_ADMINISTRATOR . DS . 'components' . DS . 'com_docman' . DS . 'classes' . DS . 'DOCMAN_params.class.php'; global $_DOCMAN, $_DMUSER; $database = JFactory::getDBO(); $my = JFactory::getUser(); $mainframe = JFactory::getApplication(); // disable the main menu to force user to use buttons $_REQUEST['hidemainmenu'] = 1; $uploaded_file = JRequest::getString('uploaded_file', ''); $doc = new mosDMDocument($database); if ($uid) { $doc->load($uid); if ($doc->checked_out) { if ($doc->checked_out != $my->id) { $mainframe->redirect("index.php?option={$option}", _DML_THE_MODULE . " {$row->title} " . _DML_IS_BEING); } } else { // check out document... $doc->checkout($my->id); } } else { $doc->init_record(); } // Begin building interface information... $lists = array(); $lists['document_url'] = ''; //make sure $lists['original_dmfilename'] = $doc->dmfilename; if (strcasecmp(substr($doc->dmfilename, 0, _DM_DOCUMENT_LINK_LNG), _DM_DOCUMENT_LINK) == 0) { $lists['document_url'] = substr($doc->dmfilename, _DM_DOCUMENT_LINK_LNG); $doc->dmfilename = _DM_DOCUMENT_LINK; } // category select list $options = array(JHTML::_('select.option', '0', _DML_SELECT_CAT)); $lists['catid'] = dmHTML::categoryList($doc->catid, "", $options); // check if we have at least one category defined $database->setQuery("SELECT id " . "\n FROM #__categories " . "\n WHERE section='com_docman'", 0, 1); if (!($checkcats = $database->loadObjectList())) { $mainframe->redirect("index.php?option=com_docman§ion=categories", _DML_PLEASE_SEL_CAT); } // select lists $lists['approved'] = JHTML::_('select.booleanlist', 'approved', 'class="inputbox"', $doc->approved); $lists['published'] = JHTML::_('select.booleanlist', 'published', 'class="inputbox"', $doc->published); // licenses list $database->setQuery("SELECT id, name " . "\n FROM #__docman_licenses " . "\n ORDER BY name ASC"); $licensesTemp = $database->loadObjectList(); $licenses[] = JHTML::_('select.option', '0', _DML_NO_LICENSE); foreach ($licensesTemp as $licensesTemp) { $licenses[] = JHTML::_('select.option', $licensesTemp->id, $licensesTemp->name); } $lists['licenses'] = JHTML::_('select.genericlist', $licenses, 'dmlicense_id', 'class="inputbox" size="1"', 'value', 'text', $doc->dmlicense_id); // licenses display list $licenses_display[] = JHTML::_('select.option', '0', _DML_NO); $licenses_display[] = JHTML::_('select.option', '1', _DML_YES); $lists['licenses_display'] = JHTML::_('select.genericlist', $licenses_display, 'dmlicense_display', 'class="inputbox" size="1"', 'value', 'text', $doc->dmlicense_display); if ($uploaded_file == '') { // Create docs List $dm_path = $_DOCMAN->getCfg('dmpath'); $fname_reject = $_DOCMAN->getCfg('fname_reject'); $docFiles = DOCMAN_Compat::mosReadDirectory($dm_path); $docs = array(JHTML::_('select.option', '', _DML_SELECT_FILE)); $docs[] = JHTML::_('select.option', _DM_DOCUMENT_LINK, _DML_LINKED); if (count($docFiles)) { foreach ($docFiles as $file) { if (substr($file, 0, 1) == '.') { continue; } //ignore files starting with . if (@is_dir($dm_path . '/' . $file)) { continue; } //ignore directories if ($fname_reject && preg_match("/^(" . $fname_reject . ")\$/i", $file)) { continue; } //ignore certain filenames if (preg_match("/^(" . _DM_FNAME_REJECT . ")\$/i", $file)) { continue; } //ignore certain filenames $docs[] = JHTML::_('select.option', htmlspecialchars($file)); } } if (!count($docs)) { $mainframe->redirect("index.php?option={$option}&task=upload", _DML_YOU_MUST_UPLOAD); } $lists['dmfilename'] = JHTML::_('select.genericlist', $docs, 'dmfilename', 'class="inputbox" size="1"', 'value', 'text', htmlspecialchars($doc->dmfilename)); } else { $filename = preg_split("/\\./", $uploaded_file); $row->dmname = $filename[0]; $docs = array(JHTML::_('select.option', htmlspecialchars($uploaded_file))); $lists['dmfilename'] = JHTML::_('select.genericlist', $docs, 'dmfilename', 'class="inputbox" size="1"', 'value', 'text', htmlspecialchars($doc->dmfilename)); } // endif uploaded_file // permissions lists $lists['viewer'] = dmHTML::viewerList($doc, 'dmowner'); $lists['maintainer'] = dmHTML::maintainerList($doc, 'dmmantainedby'); // updater user information $last = array(); if ($doc->dmlastupdateby > 0 && $doc->dmlastupdateby != $my->id) { $last[0] = DOCMAN_users::get($doc->dmlastupdateby); // the array is for BC 1.5.2, could be refactored in 1.6 } else { $last[0]->name = $my->name ? $my->name : $my->username; // "Super Administrator" } // creator user information $created = array(); if ($doc->dmsubmitedby > 0 && $doc->dmsubmitedby != $my->id) { $created[0] = DOCMAN_users::get($doc->dmsubmitedby); // the array is for BC 1.5.2, could be refactored in 1.6 } else { $created[0]->name = $my->name ? $my->name : $my->username; // "Super Administrator" } // Imagelist $lists['image'] = dmHTML::imageList('dmthumbnail', $doc->dmthumbnail); // Params definitions $params_path = JPATH_ADMINISTRATOR . DS . 'components' . DS . 'com_docman' . DS . 'docman.params.xml'; if (file_exists($params_path)) { $params = new dmParameters($doc->attribs, $params_path, 'params'); } // plugins $prebot = new DOCMAN_mambot('onBeforeEditDocument'); $prebot->setParm('document', $doc); $prebot->setParm('filename', $filename); $prebot->setParm('user', $_DMUSER); if (!$uid) { $prebot->copyParm('process', 'new document'); } else { $prebot->copyParm('process', 'edit document'); } $prebot->trigger(); if ($prebot->getError()) { $mainframe->redirect("index.php?option=com_docman§ion=documents", $prebot->getErrorMsg()); } HTML_DMDocuments::editDocument($doc, $lists, $last, $created, $params); }