';
} else {
$return .= '
';
}
}
return $return;
}
/**
* Get the button to edit document.
*
* @param bool $isReadOnly
* @param array $documentData
* @param string $extension
* @param bool $isCertificateMode
*
* @return string
*/
private static function getButtonEdit($isReadOnly, array $documentData, $extension, $isCertificateMode)
{
$extension = strtolower($extension);
$iconEn = Display::return_icon('edit.png', get_lang('Modify'));
$iconDis = Display::return_icon('edit_na.png', get_lang('Modify'));
$courseParams = api_get_cidreq();
$webOdfExtensionList = self::get_web_odf_extension_list();
$path = $documentData['path'];
$document_id = $documentData['id'];
if ($isReadOnly) {
if (!api_is_course_admin() && !api_is_platform_admin()) {
return $iconDis;
}
if (
$extension == 'svg' && api_browser_support('svg') &&
api_get_setting('enabled_support_svg') == 'true'
) {
return Display::url($iconEn, "edit_draw.php?$courseParams&id=$document_id");
}
if (
in_array($extension, $webOdfExtensionList) &&
api_get_configuration_value('enabled_support_odf') === true
) {
return Display::url($iconEn, "edit_odf.php?$courseParams&id=$document_id");
}
if (
in_array($extension, ['png', 'jpg', 'jpeg', 'bmp', 'gif', 'pxd']) &&
api_get_setting('enabled_support_pixlr') == 'true'
) {
return Display::url($iconEn, "edit_paint.php?$courseParams&id=$document_id");
}
return Display::url($iconEn, "edit_document.php?$courseParams&id=$document_id");
}
if (in_array($path, self::get_system_folders())) {
return $iconDis;
}
if ($isCertificateMode) {
return Display::url($iconEn, "edit_document.php?$courseParams&id=$document_id&curdirpath=/certificates");
}
$sessionId = api_get_session_id();
if ($sessionId && $documentData['session_id'] != $sessionId) {
return $iconDis;
}
if (
$extension == 'svg' && api_browser_support('svg') &&
api_get_setting('enabled_support_svg') == 'true'
) {
return Display::url($iconEn, "edit_draw.php?$courseParams&id=$document_id");
}
if (
in_array($extension, $webOdfExtensionList) &&
api_get_configuration_value('enabled_support_odf') === true
) {
return Display::url($iconEn, "edit_odf.php?$courseParams&id=$document_id");
}
if (
in_array($extension, ['png', 'jpg', 'jpeg', 'bmp', 'gif', 'pxd']) &&
api_get_setting('enabled_support_pixlr') == 'true'
) {
return Display::url($iconEn, "edit_paint.php?$courseParams&id=$document_id");
}
return Display::url($iconEn, "edit_document.php?$courseParams&id=$document_id");
}
/**
* Get the button to move document.
*
* @param bool $isReadOnly
* @param array $documentData
* @param bool $isCertificateMode
* @param int $parentId
*
* @return string
*/
private static function getButtonMove($isReadOnly, array $documentData, $isCertificateMode, $parentId)
{
$iconEn = Display::return_icon('move.png', get_lang('Move'));
$iconDis = Display::return_icon('move_na.png', get_lang('Move'));
if ($isReadOnly) {
return $iconDis;
}
$path = $documentData['path'];
$document_id = $documentData['id'];
$sessionId = api_get_session_id();
$courseParams = api_get_cidreq();
if ($isCertificateMode || in_array($path, self::get_system_folders())) {
return $iconDis;
}
if ($sessionId) {
if ($documentData['session_id'] != $sessionId) {
return $iconDis;
}
}
$urlMoveParams = http_build_query(['id' => $parentId, 'move' => $document_id]);
return Display::url(
$iconEn,
api_get_self()."?$courseParams&$urlMoveParams"
);
}
/**
* Get the button to set visibility to document.
*
* @param bool $isReadOnly
* @param int $visibility
* @param array $documentData
* @param bool $isCertificateMode
* @param int $parentId
*
* @return null|string
*/
private static function getButtonVisibility(
$isReadOnly,
$visibility,
array $documentData,
$isCertificateMode,
$parentId
) {
$visibility_icon = $visibility == 0 ? 'invisible' : 'visible';
$visibility_command = $visibility == 0 ? 'set_visible' : 'set_invisible';
$courseParams = api_get_cidreq();
if ($isReadOnly) {
if (api_is_allowed_to_edit() || api_is_platform_admin()) {
return Display::return_icon($visibility_icon.'.png', get_lang('VisibilityCannotBeChanged'));
}
return null;
}
if ($isCertificateMode) {
return Display::return_icon($visibility_icon.'.png', get_lang('VisibilityCannotBeChanged'));
}
if (api_is_allowed_to_edit() || api_is_platform_admin()) {
$tip_visibility = $visibility_icon == 'invisible' ? get_lang('Show') : get_lang('Hide');
return Display::url(
Display::return_icon($visibility_icon.'.png', $tip_visibility),
api_get_self()."?$courseParams&id=$parentId&$visibility_command={$documentData['id']}"
);
}
return null;
}
/**
* GEt the button to delete a document.
*
* @param bool $isReadOnly
* @param array $documentData
* @param bool $isCertificateMode
* @param string $curDirPath
* @param int $parentId
*
* @return string
*/
private static function getButtonDelete(
$isReadOnly,
array $documentData,
$isCertificateMode,
$curDirPath,
$parentId
) {
$iconEn = Display::return_icon('delete.png', get_lang('Delete'));
$iconDis = Display::return_icon('delete_na.png', get_lang('ThisFolderCannotBeDeleted'));
$path = $documentData['path'];
$id = $documentData['id'];
$courseParams = api_get_cidreq();
if ($isReadOnly) {
return $iconDis;
}
if (in_array($path, self::get_system_folders())) {
return $iconDis;
}
$titleToShow = addslashes(basename($documentData['title']));
$urlDeleteParams = http_build_query([
'curdirpath' => $curDirPath,
'action' => 'delete_item',
'id' => $parentId,
'deleteid' => $documentData['id'],
]);
$btn = Display::url(
$iconEn,
api_get_self()."?$courseParams&$urlDeleteParams",
['onclick' => "return confirmation('$titleToShow');"]
);
if (
isset($_GET['curdirpath']) &&
$_GET['curdirpath'] == '/certificates' &&
self::get_default_certificate_id(api_get_course_id()) == $id
) {
return $btn;
}
if ($isCertificateMode) {
return $btn;
}
$sessionId = api_get_session_id();
if ($sessionId) {
if ($documentData['session_id'] != $sessionId) {
return $iconDis;
}
}
return $btn;
}
}