function CheckUserPassword($arF) { if (!array_key_exists("PASSWORD", $arF) || strlen($arF["PASSWORD"]) <= 0) { return "NOT"; } $res = "PASSWORD"; $pass = ""; if (array_key_exists("USER_PASSWORD", $_REQUEST) && strlen($_REQUEST["USER_PASSWORD"]) > 0) { $pass = $_REQUEST["USER_PASSWORD"]; $res = "PASSWORD_WRONG"; } elseif (isset($_SESSION["WEBDAV_DATA"]["EXT_LINK_PASSWORD"]) && strlen($_SESSION["WEBDAV_DATA"]["EXT_LINK_PASSWORD"]) > 0) { $pass = $_SESSION["WEBDAV_DATA"]["EXT_LINK_PASSWORD"]; } if (CWebDavExtLinks::CheckPassword($arF, $pass)) { if (!array_key_exists("WEBDAV_DATA", $_SESSION)) { $_SESSION["WEBDAV_DATA"] = array(); } $_SESSION["WEBDAV_DATA"]["EXT_LINK_PASSWORD"] = $pass; return "NOT"; } return $res; }
function __build_item_info(&$res, $arParams, $WrapLongWords = false) { global $DB, $USER; static $bTheFirstTimeonPage = true; static $bShowWebdav = true; static $arBPTemplates = array(); static $arOfficeExtensions = false; static $checkParentSectionIsLink = array(); $nameTemplate = "#NOBR##LAST_NAME# #NAME##/NOBR#"; static $arNameFormats = array(); if (!isset($arNameFormats[SITE_ID])) { $arNameFormats[SITE_ID] = CSite::GetNameFormat(false); } if (isset($arNameFormats[SITE_ID])) { $nameTemplate = $arNameFormats[SITE_ID]; } if (!$arOfficeExtensions) { $arOfficeExtensions = __wd_get_office_extensions(); } if (!isset($arParams["OBJECT"])) { return; } $ob = $arParams["OBJECT"]; static $allowExtDocServices = null; if ($allowExtDocServices === null) { $allowExtDocServicesGlobal = CWebDavTools::allowUseExtServiceGlobal(); $allowExtDocServicesLocal = CWebDavTools::allowUseExtServiceLocal(); $allowExtDocServices = $allowExtDocServicesGlobal; if ($ob->arRootSection['UF_USE_EXT_SERVICES'] && $allowExtDocServicesLocal) { $allowExtDocServices = 'Y' == CWebDavIblock::resolveDefaultUseExtServices($ob->arRootSection['UF_USE_EXT_SERVICES']); } } static $rootDataForCurrentUser = null; static $isUserLib = null; if ($rootDataForCurrentUser === null && $USER->getId()) { $rootDataForCurrentUser = CWebDavIblock::getRootSectionDataForUser($USER->getId()); $isUserLib = $ob->attributes['user_id'] == $USER->getId() && !($ob->meta_state == CWebDavIblock::DROPPED); } static $isExtranetUser = null; if ($isExtranetUser === null) { $isExtranetUser = !$USER->getId() || !CWebDavTools::isIntranetUser($USER->getId()); } $bInTrash = "/" . $ob->meta_names["TRASH"]["alias"] == $ob->_udecode($ob->_path); if ($res["TYPE"] != "S" && $arBPTemplates != $arParams["TEMPLATES"]) { $bShowWebdav = true; $arBPTemplates = $arParams["TEMPLATES"]; if (is_array($arParams["TEMPLATES"]) && !empty($arParams["TEMPLATES"])) { foreach ($arParams["TEMPLATES"] as $key => $arTemplateState) { if (in_array($arTemplateState["AUTO_EXECUTE"], array(2, 3, 6, 7)) && (is_array($arTemplateState["PARAMETERS"]) || is_array($arTemplateState["TEMPLATE_PARAMETERS"]))) { $arTemplateState["TEMPLATE_PARAMETERS"] = is_array($arTemplateState["PARAMETERS"]) ? $arTemplateState["PARAMETERS"] : $arTemplateState["TEMPLATE_PARAMETERS"]; foreach ($arTemplateState["TEMPLATE_PARAMETERS"] as $val) { if ($val["Required"] == 1 && empty($val["Default"])) { $bShowWebdav = false; break; } } } } } } $res["bShowWebDav"] = $bShowWebdav; /************** Grid Data ******************************************/ $arActions = array(); if ($res["TYPE"] == "S") { $arActions["section_open"] = array("ICONCLASS" => "section_open", "TITLE" => GetMessage("WD_OPEN_SECTION"), "TEXT" => GetMessage("WD_OPEN"), "ONCLICK" => "jsUtils.Redirect([], '" . CUtil::JSEscape($res["URL"]["~THIS"]) . "');", "DEFAULT" => true); if ($res["SHOW"]["UNDELETE"] == "Y") { $arActions["section_undelete"] = array("ICONCLASS" => "section_download", "TITLE" => GetMessage("WD_UNDELETE_SECTION"), "TEXT" => GetMessage("WD_UNDELETE"), "ONCLICK" => "jsUtils.Redirect([], '" . CUtil::JSEscape(WDAddPageParams($res["URL"]["~UNDELETE"], array("edit_section" => "Y", "sessid" => bitrix_sessid()), false)) . "');", "DEFAULT" => false); } if ($res["SHOW"]["EDIT"] == "Y") { if ($ob->Type == "iblock" && $arParams["OBJECT"]->CheckWebRights("", false, array("action" => "create"))) { //sharing with antoher user. Only user_lib files. global $USER; if (!empty($arParams["OBJECT"]->attributes['user_id']) && $arParams["OBJECT"]->attributes['user_id'] == $USER->getID() && !$isExtranetUser) { if (empty($res['LINK'])) { if (!empty($res['SHARED_SECTION'])) { //usage. Show list user $uriToShareSection = $GLOBALS['APPLICATION']->GetCurUri(http_build_query(array('toWDController' => 1, 'wdaction' => 'detail_user_share', 'shareSectionId' => $res["ID"]))); $arActions["section_share"] = array("ICONCLASS" => "section_share", "TITLE" => GetMessage("WD_SHARE_TITLE_2"), "TEXT" => GetMessage("WD_SHARE_NAME_2"), "ONCLICK" => "WDShareFolder('{$uriToShareSection}', {$res["ID"]}, null, '" . CUtil::JSEscape($res["NAME"]) . "')"); } else { if (!isset($checkParentSectionIsLink[$res['IBLOCK_SECTION_ID']])) { $checkParentSectionIsLink[$res['IBLOCK_SECTION_ID']] = CWebDavSymlinkHelper::isLink(CWebDavSymlinkHelper::ENTITY_TYPE_USER, $arParams["OBJECT"]->attributes['user_id'], array('ID' => $res['IBLOCK_SECTION_ID'], 'IBLOCK_ID' => $res['IBLOCK_ID'])); } //if element in link - don't share if (!$checkParentSectionIsLink[$res['IBLOCK_SECTION_ID']]) { $uriToShareSection = $GLOBALS['APPLICATION']->GetCurUri(http_build_query(array('toWDController' => 1, 'wdaction' => 'detail_user_share', 'shareSectionId' => $res["ID"]))); $arActions["section_share"] = array("ICONCLASS" => "section_share", "TITLE" => GetMessage("WD_SHARE_TITLE_2"), "TEXT" => GetMessage("WD_SHARE_NAME_2"), "ONCLICK" => "WDShareFolder('{$uriToShareSection}', {$res["ID"]}, null, '" . CUtil::JSEscape($res["NAME"]) . "')"); } } } else { //usage. Show list user $uriToShareSection = $GLOBALS['APPLICATION']->GetCurUri(http_build_query(array('toWDController' => 1, 'wdaction' => 'info_user_share', 'shareSectionId' => $res['LINK']['SECTION_ID']))); $arActions["section_share"] = array("ICONCLASS" => "section_share", "TITLE" => GetMessage("WD_MANAGE_SHARE_TITLE"), "TEXT" => GetMessage("WD_MANAGE_SHARE_NAME"), "ONCLICK" => "WDShareFolder('{$uriToShareSection}', {$res['LINK']['SECTION_ID']}, '" . CUtil::JSEscape($res["URL"]["~DELETE"]) . "', '" . CUtil::JSEscape($res["NAME"]) . "')"); } } elseif (CWebDavIblock::$possibleUseSymlinkByInternalSections && !$isExtranetUser) { if (empty($res['LINK'])) { if (!empty($res['SHARED_SECTION'])) { //usage. Show list user $uriToShareSection = $GLOBALS['APPLICATION']->GetCurUri(http_build_query(array('toWDController' => 1, 'wdaction' => 'info_user_share', 'shareSectionId' => $res["ID"]))); $uriToDisconnectSection = $GLOBALS['APPLICATION']->GetCurUri(http_build_query(array('toWDController' => 1, 'wdaction' => 'disconnect', 'shareSectionId' => $res["ID"]))); $arActions["section_share"] = array("ICONCLASS" => "section_share", "TITLE" => GetMessage("WD_MANAGE_SHARE_TITLE"), "TEXT" => GetMessage("WD_MANAGE_SHARE_TITLE"), "ONCLICK" => "WDShareFolderInSharedDocs('{$uriToShareSection}', {$res["ID"]}, '{$uriToDisconnectSection}', '" . CUtil::JSEscape($res["NAME"]) . "')"); } else { $uriToShareSection = $GLOBALS['APPLICATION']->GetCurUri(http_build_query(array('toWDController' => 1, 'wdaction' => 'connect', 'shareSectionId' => $res["ID"]))); $arActions["section_share"] = array("ICONCLASS" => "section_share", "TITLE" => GetMessage("WD_SHARE_SECTION_CONNECT_TITLE"), "TEXT" => GetMessage("WD_SHARE_SECTION_CONNECT_NAME"), "ONCLICK" => "showWebdavSharedSectionDiskPopup('{$uriToShareSection}', {$res["ID"]}, null, '" . CUtil::JSEscape($res["NAME"]) . "')"); } } } } $arActions["section_rename"] = array("ICONCLASS" => "section_rename", "TITLE" => GetMessage("WD_RENAME_SECTION_TITLE"), "TEXT" => GetMessage("WD_RENAME_NAME"), "ONCLICK" => "WDRename(BX('ID_" . $res["TYPE"] . $res["ID"] . "'), bxGrid_" . $arParams["GRID_ID"] . ", '" . $arParams["GRID_ID"] . "')"); if ($ob->Type == "iblock" && $arParams["OBJECT"]->CheckWebRights("", false, array("action" => "create"))) { $url = WDAddPageParams($res["URL"]["SECTIONS_DIALOG"], array("ACTION" => "COPY", "NAME" => urlencode($res["NAME"]), "ID" => "S" . $res["ID"]), false); $arActions["section_copy"] = array("ICONCLASS" => "section_copy", "TITLE" => GetMessage("WD_COPY_SECTION_TITLE"), "TEXT" => GetMessage("WD_COPY_NAME"), "ONCLICK" => "(new BX.CDialog({'width': 450, 'heght':400, 'content_url':'" . CUtil::JSEscape($url) . "'})).Show()"); $url = WDAddPageParams($res["URL"]["SECTIONS_DIALOG"], array("ACTION" => "MOVE", "NAME" => urlencode($res["NAME"]), "ID" => "S" . $res["ID"]), false); $arActions["section_move"] = array("ICONCLASS" => "section_move", "TITLE" => GetMessage("WD_MOVE_SECTION_TITLE"), "TEXT" => GetMessage("WD_MOVE_NAME"), "ONCLICK" => "(new BX.CDialog({'width': 450, 'heght':400, 'content_url':'" . CUtil::JSEscape($url) . "'})).Show()"); } } if ($res["SHOW"]["RIGHTS"] == "Y") { $urlParams = array("IBLOCK_ID" => $arParams["IBLOCK_ID"], "ENTITY_TYPE" => "SECTION", "ENTITY_ID" => $res['ID'], "back_url" => urlencode($GLOBALS['APPLICATION']->GetCurPage())); if (isset($ob->attributes['user_id'])) { $urlParams['SOCNET_TYPE'] = 'user'; $urlParams['SOCNET_ID'] = $ob->attributes['user_id']; } elseif (isset($ob->attributes['group_id'])) { $urlParams['SOCNET_TYPE'] = 'group'; $urlParams['SOCNET_ID'] = $ob->attributes['group_id']; } $url = WDAddPageParams("/bitrix/components/bitrix/webdav.section.list/templates/.default/iblock_e_rights.php", $urlParams, false); $arActions["section_permissions"] = array("ICONCLASS" => "section_permissions", "TITLE" => GetMessage("WD_SECTION_PERMISSIONS"), "TEXT" => GetMessage("WD_PERMISSIONS"), "ONCLICK" => "(new BX.CDialog({'width': 750, 'heght':400, 'content_url':'" . CUtil::JSEscape($url) . "'})).Show()"); } if ($res["SHOW"]["DELETE"] == "Y" && (!$bInTrash || $bInTrash && $arParams["PERMISSION"] > "W")) { if (!empty($res['LINK'])) { $arActions["section_unshare"] = array("ICONCLASS" => "section_drop", "TITLE" => GetMessage("WD_UNSHARE_SECTION"), "TEXT" => GetMessage("WD_UNSHARE"), "ONCLICK" => "WDConfirm('" . CUtil::JSEscape(GetMessage("WD_UNSHARE_TITLE")) . "', '" . CUtil::JSEscape(GetMessage("WD_UNSHARE_SECTION_CONFIRM", array('#NAME#' => $res['NAME']))) . "', function() {jsUtils.Redirect([], '" . CUtil::JSEscape($res["URL"]["~DELETE"]) . "')})"); } elseif (!empty($res['SHARED_SECTION']) && isset($arActions["section_share"])) { $arActions["section_drop"] = array("ICONCLASS" => "section_drop", "TITLE" => GetMessage("WD_DELETE_SECTION"), "TEXT" => GetMessage("WD_DELETE"), "ONCLICK" => "WDConfirm('" . CUtil::JSEscape(GetMessage("WD_DELETE_OWN_SHARE_SECTION_TITLE")) . "', '" . CUtil::JSEscape(GetMessage("WD_DELETE_OWN_SHARE_SECTION_CONFIRM", array('#NAME#' => $res['NAME']))) . "', function() {jsUtils.Redirect([], '" . CUtil::JSEscape($res["URL"]["~DELETE"]) . "')})"); } else { $forceDeleteUrl = CHTTP::urlAddParams($res["URL"]["~DELETE"], array('delete_without_trash' => 1)); $arActions["section_drop"] = array("ICONCLASS" => "section_drop", "TITLE" => GetMessage("WD_DELETE_SECTION"), "TEXT" => GetMessage("WD_DELETE")); if ($res["SHOW"]["UNDELETE"] == "Y") { $arActions["section_drop"]['ONCLICK'] = "WDConfirm('" . CUtil::JSEscape(GetMessage("WD_DELETE_TITLE")) . "', '" . CUtil::JSEscape(GetMessage($res["SHOW"]["UNDELETE"] == "Y" ? "WD_DESTROY_SECTION_CONFIRM" : "WD_DELETE_SECTION_CONFIRM", array('#NAME#' => $res['NAME']))) . "', function() {jsUtils.Redirect([], '" . CUtil::JSEscape($res["URL"]["~DELETE"]) . "')})"; } elseif ($arParams['OBJECT']->CheckRight($res["E_RIGHTS"], "iblock_edit") >= "X") { $arActions["section_drop"]['ONCLICK'] = "WDConfirmDelete('" . CUtil::JSEscape(GetMessage("WD_DELETE_TITLE")) . "', '" . CUtil::JSEscape(GetMessage("WD_TRASH_DELETE_DESTROY_SECTION_CONFIRM", array("#NAME#" => $res['NAME']))) . "'" . ", '" . CUtil::JSEscape(GetMessage("WD_TRASH_DELETE_BUTTON")) . "'" . ", '" . CUtil::JSEscape(GetMessage("WD_TRASH_DESTROY_BUTTON")) . "'" . ", '" . CUtil::JSEscape(GetMessage("WD_TRASH_CANCEL_DELETE_BUTTON")) . "'" . ", function() { var urlDelete = '" . CUtil::JSEscape($res["URL"]["~DELETE"]) . "'; jsUtils.Redirect([], urlDelete)}" . ", function() { var urlDelete = '" . CUtil::JSEscape($forceDeleteUrl) . "'; jsUtils.Redirect([], urlDelete)})"; } else { $arActions["section_drop"]['ONCLICK'] = "WDConfirm('" . CUtil::JSEscape(GetMessage("WD_DELETE_TITLE")) . "', '" . CUtil::JSEscape(GetMessage("WD_DELETE_SECTION_CONFIRM", array("#NAME#" => $res['NAME']))) . "', function() { var urlDelete = '" . CUtil::JSEscape($res["URL"]["~DELETE"]) . "'; jsUtils.Redirect([], urlDelete)})"; } } } $arActions['preview_launch'] = array('type' => 'folder', 'src' => $res["URL"]["~THIS"], 'title' => $res['NAME'], 'owner' => CUser::FormatName(CSite::GetNameFormat(false), array('LOGIN' => $res['CREATED_BY']['LOGIN'], 'NAME' => $res['CREATED_BY']['NAME'], 'SECOND_NAME' => $res['CREATED_BY']['SECOND_NAME'], 'LAST_NAME' => $res['CREATED_BY']['LAST_NAME']), true, false), 'size' => CFile::FormatSize($res['PROPERTY_WEBDAV_SIZE_VALUE']), 'dateModify' => FormatDate('FULL', MakeTimeStamp($res["TIMESTAMP_X"]))); } else { $arActions["element_open"] = array("ICONCLASS" => "element_open", "TITLE" => GetMessage("WD_OPEN_DOCUMENT"), "TEXT" => GetMessage("WD_OPEN"), "ONCLICK" => "OpenDoc('" . CUtil::JSEscape(htmlspecialcharsbx($res["URL"]["~THIS"])) . "', " . (in_array($res["FILE_EXTENTION"], $arOfficeExtensions) && $arParams['DEFAULT_EDIT'] === 'Y' ? "true" : "false") . ");", "DEFAULT" => true); if ($allowExtDocServices && CWebDavTools::allowPreviewFile($res["FILE_EXTENTION"], $res['PROPERTY_WEBDAV_SIZE_VALUE'])) { //showInViewer $downloadUrl = CUtil::JSEscape($res["URL"]["~DOWNLOAD"]); $editInUrl = $editrUrl = CUtil::JSEscape(($GLOBALS['APPLICATION']->IsHTTPS() ? 'https' : 'http') . '://' . str_replace("//", "/", $_SERVER['HTTP_HOST'] . "/" . $res["URL"]["THIS"])) . '?' . bitrix_sessid_get() . '&editIn=' . CWebDavLogOnlineEditBase::DEFAULT_SERVICE_NAME . '&start=1'; $downloadUrl .= (strpos($downloadUrl, "?") === false ? "?" : "&") . "ncc=1&force_download=1"; $viewerUrl = CUtil::JSEscape(($GLOBALS['APPLICATION']->IsHTTPS() ? 'https' : 'http') . '://' . str_replace("//", "/", $_SERVER['HTTP_HOST'] . "/" . $res["URL"]["THIS"])) . '?showInViewer=1'; $arActions['preview_launch'] = array('type' => 'iframe', 'src' => $viewerUrl, 'download' => $downloadUrl, 'history' => CHTTP::urlAddParams($res['URL']['VIEW'], array('webdavForm' . $res['IBLOCK_ID'] . '_active_tab' => 'tab_history')), 'edit' => $res['LOCK_STATUS'] == 'green' && CWebDavEditDocGoogle::isEditable($res["FILE_EXTENTION"]) && $res['E_RIGHTS']['element_edit'] ? $editInUrl : '', 'askConvert' => CWebDavEditDocGoogle::isNeedConvertExtension($res["FILE_EXTENTION"]), 'title' => $res['NAME'], 'inPersonalLib' => $isUserLib && $res['LOCK_STATUS'] == 'green' && $res['E_RIGHTS']['element_edit'] ? '1' : '', 'externalId' => $isUserLib ? "st{$rootDataForCurrentUser['IBLOCK_ID']}|{$rootDataForCurrentUser['SECTION_ID']}|f{$res['ID']}" : '', 'relativePath' => $res['PATH']); } elseif ($allowExtDocServices && CWebDavEditDocGoogle::isEditable($res["FILE_EXTENTION"])) { //showInViewer $downloadUrl = CUtil::JSEscape($res["URL"]["~DOWNLOAD"]); $editInUrl = $editrUrl = CUtil::JSEscape(($GLOBALS['APPLICATION']->IsHTTPS() ? 'https' : 'http') . '://' . str_replace("//", "/", $_SERVER['HTTP_HOST'] . "/" . $res["URL"]["THIS"])) . '?' . bitrix_sessid_get() . '&editIn=' . CWebDavLogOnlineEditBase::DEFAULT_SERVICE_NAME . '&start=1'; $downloadUrl .= (strpos($downloadUrl, "?") === false ? "?" : "&") . "ncc=1&force_download=1"; $viewerUrl = CUtil::JSEscape(($GLOBALS['APPLICATION']->IsHTTPS() ? 'https' : 'http') . '://' . str_replace("//", "/", $_SERVER['HTTP_HOST'] . "/" . $res["URL"]["THIS"])) . '?showInViewer=1'; $arActions['preview_launch'] = array('type' => 'onlyedit', 'src' => $viewerUrl, 'download' => $downloadUrl, 'history' => CHTTP::urlAddParams($res['URL']['VIEW'], array('webdavForm' . $res['IBLOCK_ID'] . '_active_tab' => 'tab_history')), 'edit' => $res['LOCK_STATUS'] == 'green' && CWebDavEditDocGoogle::isEditable($res["FILE_EXTENTION"]) && $res['E_RIGHTS']['element_edit'] ? $editInUrl : '', 'askConvert' => CWebDavEditDocGoogle::isNeedConvertExtension($res["FILE_EXTENTION"]), 'title' => $res['NAME'], 'owner' => CUser::FormatName(CSite::GetNameFormat(false), array('LOGIN' => $res['CREATED_BY']['LOGIN'], 'NAME' => $res['CREATED_BY']['NAME'], 'SECOND_NAME' => $res['CREATED_BY']['SECOND_NAME'], 'LAST_NAME' => $res['CREATED_BY']['LAST_NAME']), true, false), 'size' => CFile::FormatSize($res['PROPERTY_WEBDAV_SIZE_VALUE']), 'dateModify' => FormatDate('FULL', MakeTimeStamp($res["TIMESTAMP_X"])), 'tooBigSizeMsg' => true, 'inPersonalLib' => $isUserLib && $res['LOCK_STATUS'] == 'green' && $res['E_RIGHTS']['element_edit'] ? '1' : '', 'externalId' => $isUserLib ? "st{$rootDataForCurrentUser['IBLOCK_ID']}|{$rootDataForCurrentUser['SECTION_ID']}|f{$res['ID']}" : '', 'relativePath' => $res['PATH']); } elseif (CFile::IsImage($res['NAME'])) { $downloadUrl = CUtil::JSEscape($res["URL"]["~DOWNLOAD"]); $downloadUrl .= (strpos($downloadUrl, "?") === false ? "?" : "&") . "ncc=1&force_download=1"; $arActions['preview_launch'] = array('type' => 'image', 'src' => $downloadUrl, 'download' => $downloadUrl, 'title' => $res['NAME']); } else { $downloadUrl = CUtil::JSEscape($res["URL"]["~DOWNLOAD"]); $downloadUrl .= (strpos($downloadUrl, "?") === false ? "?" : "&") . "ncc=1&force_download=1"; $arActions['preview_launch'] = array('type' => 'unknown', 'src' => $downloadUrl, 'download' => $downloadUrl, 'title' => $res['NAME'], 'owner' => CUser::FormatName(CSite::GetNameFormat(false), array('LOGIN' => $res['CREATED_BY']['LOGIN'], 'NAME' => $res['CREATED_BY']['NAME'], 'SECOND_NAME' => $res['CREATED_BY']['SECOND_NAME'], 'LAST_NAME' => $res['CREATED_BY']['LAST_NAME']), true, false), 'size' => CFile::FormatSize($res['PROPERTY_WEBDAV_SIZE_VALUE']), 'dateModify' => FormatDate('FULL', MakeTimeStamp($res["TIMESTAMP_X"])), 'tooBigSizeMsg' => $allowExtDocServices && CWebDavTools::allowPreviewFile($res["FILE_EXTENTION"], $res['PROPERTY_WEBDAV_SIZE_VALUE'], false), 'inPersonalLib' => $isUserLib && $res['LOCK_STATUS'] == 'green' && $res['E_RIGHTS']['element_edit'] ? '1' : '', 'externalId' => $isUserLib ? "st{$rootDataForCurrentUser['IBLOCK_ID']}|{$rootDataForCurrentUser['SECTION_ID']}|f{$res['ID']}" : '', 'relativePath' => $res['PATH']); } $downloadUrl = CUtil::JSEscape($res["URL"]["~DOWNLOAD"]); $downloadUrl .= (strpos($downloadUrl, "?") === false ? "?" : "&") . "ncc=1&force_download=1"; $arActions["element_download"] = array("ICONCLASS" => "element_download", "TITLE" => GetMessage("WD_DOWNLOAD_ELEMENT"), "TEXT" => GetMessage("WD_DOWNLOAD"), "ONCLICK" => "window.location.href = '" . $downloadUrl . "';", "DEFAULT" => false); if ($arParams["PERMISSION"] >= "U") { $urlT = CUtil::JSEscape(($GLOBALS['APPLICATION']->IsHTTPS() ? 'https' : 'http') . '://' . str_replace("//", "/", $_SERVER['HTTP_HOST'] . "/" . $res["URL"]["THIS"])); $arActions["copy_ext_link"] = array("ICONCLASS" => "element_ext_link", "TITLE" => GetMessage("WD_COPY_EXT_LINK_TITLE"), "TEXT" => GetMessage("WD_COPY_EXT_LINK"), "ONCLICK" => CWebDavExtLinks::InsertDialogCallText($urlT)); } if ($res["SHOW"]["UNDELETE"] == "Y") { $arActions["element_undelete"] = array("ICONCLASS" => "element_download", "TITLE" => GetMessage("WD_UNDELETE_ELEMENT"), "TEXT" => GetMessage("WD_UNDELETE"), "ONCLICK" => "jsUtils.Redirect([], '" . CUtil::JSEscape(WDAddPageParams($res["URL"]["~UNDELETE"], array("edit" => "Y", "sessid" => bitrix_sessid()), false)) . "');", "DEFAULT" => false); } if ($arParams["PERMISSION"] >= "U") { if ($res["SHOW"]["LOCK"] == "Y" || $res["SHOW"]["UNLOCK"] == "Y") { $arActions["element_upload"] = array("ICONCLASS" => "element_edit", "TITLE" => GetMessage("WD_UPLOAD_ELEMENT"), "TEXT" => GetMessage("WD_UPLOAD"), "ONCLICK" => "jsUtils.Redirect([], '" . CUtil::JSEscape($res["URL"][$arParams["OBJECT"]->Type == "folder" ? "EDIT" : "~VIEW"] . '#upload') . "');"); } if ($ob->Type == "iblock" && $res["SHOW"]["UNLOCK"] == "Y") { $arActions["element_unlock"] = array("ICONCLASS" => "element_unlock", "TITLE" => GetMessage("WD_UNLOCK_ELEMENT"), "TEXT" => GetMessage("WD_UNLOCK"), "ONCLICK" => "jsUtils.Redirect([], '" . CUtil::JSEscape($res["URL"]["~UNLOCK"]) . "');"); } if ($ob->Type == "iblock" && $res["SHOW"]["LOCK"] == "Y") { $arActions["element_lock"] = array("ICONCLASS" => "element_unlock", "TITLE" => GetMessage("WD_LOCK_ELEMENT"), "TEXT" => GetMessage("WD_LOCK"), "ONCLICK" => "jsUtils.Redirect([], '" . CUtil::JSEscape($res["URL"]["~LOCK"]) . "');"); } if (($res["SHOW"]["LOCK"] == "Y" || $res["SHOW"]["UNLOCK"] == "Y") && in_array($res["FILE_EXTENTION"], $arOfficeExtensions)) { $arActions["element_edit_office"] = array("ICONCLASS" => "element_edit", "TITLE" => GetMessage("WD_EDIT_MSOFFICE"), "TEXT" => GetMessage("WD_EDIT_MSOFFICE_MENU"), "OFFICECHECK" => true, "DISABLED" => !($bShowWebdav && $res["SHOW"]["EDIT"] == "Y"), "ONCLICK" => 'return EditDocWithProgID(\'' . CUtil::addslashes($res["URL"]["~THIS"]) . '\');'); } } $arActions["element_view"] = array("ICONCLASS" => "element_view", "TITLE" => GetMessage("WD_VIEW_ELEMENT"), "TEXT" => GetMessage($res["~TYPE"] == "FILE" ? "WD_PROPERTIES" : "WD_VIEW"), "ONCLICK" => "jsUtils.Redirect([], '" . CUtil::JSEscape($res["URL"][$res["~TYPE"] == "FILE" ? "EDIT" : "~VIEW"]) . "');"); if ($arParams["USE_COMMENTS"] == "Y" && IsModuleInstalled("forum")) { $arActions["element_comment"] = array("ICONCLASS" => "element_comment", "TITLE" => GetMessage("WD_ELEMENT_COMMENT_NAME"), "TEXT" => GetMessage("WD_ELEMENT_COMMENT_TITLE"), "ONCLICK" => "jsUtils.Redirect([], '" . CUtil::JSEscape($res["URL"]["~VIEW"] . "?webdavForm" . $arParams["IBLOCK_ID"] . "_active_tab=tab_comments") . "');"); } if ($arParams["PERMISSION"] >= "U") { $arActions["copy_link"] = array("ICONCLASS" => "element_download", "TITLE" => GetMessage("WD_COPY_LINK_TITLE"), "TEXT" => GetMessage("WD_COPY_LINK"), "ONCLICK" => "WDCopyLinkDialog('" . CUtil::JSEscape(($GLOBALS['APPLICATION']->IsHTTPS() ? 'https' : 'http') . '://' . str_replace("//", "/", $_SERVER['HTTP_HOST'] . "/" . $res["URL"]["THIS"])) . "')"); /* $urlT = CUtil::JSEscape(($GLOBALS['APPLICATION']->IsHTTPS() ? 'https' : 'http').'://'.str_replace("//", "/", $_SERVER['HTTP_HOST']."/".$res["URL"]["THIS"])); $arActions["copy_ext_link"] = array( "ICONCLASS" => "element_download", "TITLE" => GetMessage("WD_COPY_EXT_LINK_TITLE"), "TEXT" => GetMessage("WD_COPY_EXT_LINK"), "ONCLICK" => CWebDavExtLinks::InsertDialogCallText($urlT) ); */ if ($res["SHOW"]["HISTORY"] == "Y") { $arActions["element_history"] = array("ICONCLASS" => "element_history" . ($res["SHOW"]["BP"] == "Y" ? " bizproc_history" : ""), "TITLE" => GetMessage("WD_HIST_ELEMENT_ALT"), "TEXT" => GetMessage("WD_HIST_ELEMENT"), "ONCLICK" => "jsUtils.Redirect([], '" . CUtil::JSEscape($res["URL"]["~VIEW"] . "?webdavForm" . $arParams["IBLOCK_ID"] . "_active_tab=tab_history") . "');"); } if ($res["SHOW"]["LOCK"] == "Y" || $res["SHOW"]["UNLOCK"] == "Y") { if ($res["SHOW"]["BP_VIEW"] == "Y") { $arActionsBpTmp[] = array("ICONCLASS" => "bizproc_document", "TITLE" => GetMessage("IBLIST_A_BP_H"), "TEXT" => GetMessage("IBLIST_A_BP_H"), "ONCLICK" => "jsUtils.Redirect([], '" . CUtil::JSEscape($res["URL"]["~BP"]) . "');"); } if ($res["SHOW"]["BP_START"] == "Y" && is_array($arParams["TEMPLATES"])) { $arr = array(); foreach ($arParams["TEMPLATES"] as $key => $arWorkflowTemplate) { if (!CBPDocument::CanUserOperateDocument(CBPCanUserOperateOperation::StartWorkflow, $GLOBALS["USER"]->GetID(), $res["DOCUMENT_ID"], array("UserGroups" => $res["USER_GROUPS"], "DocumentStates" => $res["~arDocumentStates"], "WorkflowTemplateList" => $arTemplates, "WorkflowTemplateId" => $arWorkflowTemplate["ID"]))) { continue; } $url = $res["URL"]["~BP_START"]; $url .= (strpos($url, "?") === false ? "?" : "&") . "workflow_template_id=" . $arWorkflowTemplate["ID"] . '&' . bitrix_sessid_get(); $arr[] = array("ICONCLASS" => "", "TITLE" => $arWorkflowTemplate["DESCRIPTION"], "TEXT" => $arWorkflowTemplate["NAME"], "ONCLICK" => "jsUtils.Redirect([], '" . CUtil::JSEscape($url) . "');"); } if (!empty($arr)) { $arActionsBpTmp[] = array("ICONCLASS" => "bizproc_start", "TITLE" => GetMessage("WD_START_BP_TITLE"), "TEXT" => GetMessage("WD_START_BP"), "MENU" => $arr); } } //if ($res["SHOW"]["BP_CLONE"] == "Y") //{ //$arActionsBpTmp[] = array( //"ICONCLASS" => "bizproc_document", //"TITLE" => GetMessage("WD_CREATE_VERSION_ALT"), //"TEXT" => GetMessage("WD_CREATE_VERSION"), //"ONCLICK" => "jsUtils.Redirect([], '".CUtil::JSEscape($res["URL"]["~CLONE"])."');"); //$arActionsBpTmp[] = array( //"ICONCLASS" => "bizproc_document", //"TITLE" => GetMessage("WD_VERSIONS_ALT"), //"TEXT" => GetMessage("WD_VERSIONS"), //"ONCLICK" => "jsUtils.Redirect([], '".CUtil::JSEscape($res["URL"]["~VERSIONS"])."');"); //} if (!empty($arActionsBpTmp)) { $arActions += $arActionsBpTmp; } $arActions["separator_del"] = array("SEPARATOR" => true); if ($ob->Type == "folder" || $ob->Type == "iblock" && $res["WF_PARENT_ELEMENT_ID"] === null) { $arActions["element_rename"] = array("ICONCLASS" => "element_rename", "TITLE" => GetMessage("WD_RENAME_TITLE"), "TEXT" => GetMessage("WD_RENAME_NAME"), "ONCLICK" => "WDRename(BX('ID_" . $res["TYPE"] . $res["ID"] . "'), bxGrid_" . $arParams["GRID_ID"] . ", '" . $arParams["GRID_ID"] . "')"); } } if ($res["SHOW"]["COPY"] == 'Y') { $url = WDAddPageParams($res["URL"]["SECTIONS_DIALOG"], array("ACTION" => "COPY", "NAME" => urlencode($res["NAME"]), "ID" => "E" . $res["ID"]), false); $arActions["element_copy"] = array("ICONCLASS" => "element_copy", "TITLE" => GetMessage("WD_COPY_TITLE"), "TEXT" => GetMessage("WD_COPY_NAME"), "ONCLICK" => "(new BX.CDialog({'width': 450, 'heght':400, 'content_url':'" . CUtil::JSEscape($url) . "'})).Show()"); } if ($ob->Type == "iblock" && $res["WF_PARENT_ELEMENT_ID"] === null && $res["SHOW"]["EDIT"] == "Y") { $url = WDAddPageParams($res["URL"]["SECTIONS_DIALOG"], array("ACTION" => "MOVE", "NAME" => urlencode($res["NAME"]), "ID" => "E" . $res["ID"]), false); $arActions["element_move"] = array("ICONCLASS" => "element_move", "TITLE" => GetMessage("WD_MOVE_TITLE"), "TEXT" => GetMessage("WD_MOVE_NAME"), "ONCLICK" => "(new BX.CDialog({'width': 450, 'heght':400, 'content_url':'" . CUtil::JSEscape($url) . "'})).Show()"); } if ($res["SHOW"]["RIGHTS"] == "Y") { $urlParams = array("IBLOCK_ID" => $arParams["IBLOCK_ID"], "ENTITY_TYPE" => "ELEMENT", "ENTITY_ID" => $res['ID'], "back_url" => urlencode($GLOBALS['APPLICATION']->GetCurPageParam())); if (isset($ob->attributes['user_id'])) { $urlParams['SOCNET_TYPE'] = 'user'; $urlParams['SOCNET_ID'] = $ob->attributes['user_id']; } elseif (isset($ob->attributes['group_id'])) { $urlParams['SOCNET_TYPE'] = 'group'; $urlParams['SOCNET_ID'] = $ob->attributes['group_id']; } $url = WDAddPageParams("/bitrix/components/bitrix/webdav.section.list/templates/.default/iblock_e_rights.php", $urlParams, false); $arActions["element_permissions"] = array("ICONCLASS" => "element_permissions", "TITLE" => GetMessage("WD_ELEMENT_PERMISSIONS"), "TEXT" => GetMessage("WD_PERMISSIONS"), "ONCLICK" => "(new BX.CDialog({'width': 750, 'heght':400, 'content_url':'" . CUtil::JSEscape($url) . "'})).Show()"); } if ($res["SHOW"]["DELETE"] == "Y" && (!$bInTrash || $bInTrash && $arParams["PERMISSION"] >= "X")) { $forceDeleteUrl = CHTTP::urlAddParams($res["URL"]["~DELETE"], array('delete_without_trash' => 1)); $arActions["element_delete"] = array("ICONCLASS" => "element_delete", "TITLE" => GetMessage("WD_DELETE_ELEMENT"), "TEXT" => GetMessage("WD_DELETE")); if ($res["SHOW"]["UNDELETE"] == "Y") { $arActions["element_delete"]["ONCLICK"] = "WDConfirm('" . CUtil::JSEscape(GetMessage("WD_DELETE_TITLE")) . "', '" . CUtil::JSEscape(GetMessage($res["SHOW"]["UNDELETE"] == "Y" ? "WD_DESTROY_CONFIRM" : "WD_DELETE_CONFIRM", array("#NAME#" => $res['NAME']))) . "', function() {jsUtils.Redirect([], '" . CUtil::JSEscape($res["URL"]["~DELETE"]) . "')})"; } elseif ($arParams['OBJECT']->CheckRight($res["E_RIGHTS"], "iblock_edit") >= "X") { $arActions["element_delete"]['ONCLICK'] = "WDConfirmDelete('" . CUtil::JSEscape(GetMessage("WD_DELETE_TITLE")) . "', '" . CUtil::JSEscape(GetMessage("WD_TRASH_DELETE_DESTROY_ELEMENT_CONFIRM", array("#NAME#" => $res['NAME']))) . "'" . ", '" . CUtil::JSEscape(GetMessage("WD_TRASH_DELETE_BUTTON")) . "'" . ", '" . CUtil::JSEscape(GetMessage("WD_TRASH_DESTROY_BUTTON")) . "'" . ", '" . CUtil::JSEscape(GetMessage("WD_TRASH_CANCEL_DELETE_BUTTON")) . "'" . ", function() { var urlDelete = '" . CUtil::JSEscape($res["URL"]["~DELETE"]) . "'; jsUtils.Redirect([], urlDelete)}" . ", function() { var urlDelete = '" . CUtil::JSEscape($forceDeleteUrl) . "'; jsUtils.Redirect([], urlDelete)})"; } else { $arActions["element_delete"]['ONCLICK'] = "WDConfirm('" . CUtil::JSEscape(GetMessage("WD_DELETE_TITLE")) . "', '" . CUtil::JSEscape(GetMessage("WD_DELETE_CONFIRM", array("#NAME#" => $res['NAME']))) . "', function() { var urlDelete = '" . CUtil::JSEscape($res["URL"]["~DELETE"]) . "'; jsUtils.Redirect([], urlDelete)})"; } } } } foreach (array("MODIFIED_BY", "CREATED_BY", "WF_LOCKED_BY") as $user_key) { $aCols[$user_key] = is_array($res[$user_key]) ? $res[$user_key] : __parse_user($res[$user_key], $arParams["USER_VIEW_URL"], isset($arParams["NAME_TEMPLATE"]) ? $arParams["NAME_TEMPLATE"] : null); $aCols[$user_key] = "<div class=\"wd-user-link\">" . $aCols[$user_key]['main_user_link'] . "</div>"; } if ($res["TYPE"] == "S") { $classNameForIcon = !empty($res['LINK']) || !empty($res['SHARED_SECTION']) ? 'shared-section-icon' : 'section-icon'; $res["FTYPE"] = "folder"; $aCols["PLAIN_NAME"] = $res["NAME"]; $aCols["NAME"]['shared'] = $res["SHOW"]["SHARED"] ? '<div class="element-shared"></div>' : ''; $aCols["NAME"] = '<div class="section-name"> <div class="' . $classNameForIcon . '"></div>' . $aCols["NAME"]['shared'] . '<a class="section-title" id="sec' . $res['ID'] . '" href="' . $res["URL"]["THIS"] . '"' . 'data-bx-viewer="' . $arActions['preview_launch']['type'] . '" ' . 'data-bx-title="' . htmlspecialcharsbx($arActions['preview_launch']['title']) . '" ' . 'data-bx-src="' . $arActions['preview_launch']['src'] . '" ' . 'data-bx-size="' . $arActions['preview_launch']['size'] . '" ' . 'data-bx-owner="' . htmlspecialcharsbx($arActions['preview_launch']['owner']) . '" ' . 'data-bx-dateModify="' . htmlspecialcharsbx($arActions['preview_launch']['dateModify']) . '" ' . '>' . $res["NAME"] . '</a> </div>'; if ((!empty($res['LINK']) || !empty($res['SHARED_SECTION'])) && isset($arActions["section_share"])) { $aCols['FILE_SIZE'] = '<div id="sec' . $res['ID'] . '-share" class="wd-share-hotkey-share section-name" onclick="' . $arActions["section_share"]['ONCLICK'] . '">' . GetMessage('WD_ALREADY_SHARE_SECTION') . '</div></div> '; } elseif (!empty($arParams["OBJECT"]->attributes['user_id']) && $arParams["OBJECT"]->attributes['user_id'] == $USER->getId() && !empty($arActions["section_share"]) && !$isExtranetUser) { $aCols['FILE_SIZE'] = '<div id="sec' . $res['ID'] . '-share" class="wd-share-hotkey-potential-share section-name" onclick="' . $arActions["section_share"]['ONCLICK'] . '"><div class="shared-section-icon"></div> ' . GetMessage('WD_MAKE_SHARE_SECTION') . '</div> '; } elseif (empty($arParams["OBJECT"]->attributes['user_id']) && CWebDavIblock::$possibleUseSymlinkByInternalSections && !empty($arActions["section_share"]) && !$isExtranetUser) { $aCols['FILE_SIZE'] = '<div id="sec' . $res['ID'] . '-share" class="wd-share-hotkey-potential-share section-name" onclick="' . $arActions["section_share"]['ONCLICK'] . '"><div class="shared-section-icon"></div> ' . GetMessage('WD_SHARE_SECTION_CONNECT_IN_GRID') . '</div> '; } } else { $aCols["NAME"] = array(); $hintLink = __make_hint($res); if (!isset($arParams['MERGE_VIEW'])) { $aCols["NAME"]['hint'] = $res['HINT']; } else { $aCols["NAME"]['hint'] = ''; $hintLink = ''; } $aCols["NAME"]['icon'] = '<div class="element-icon icons icon-' . substr($res["FILE_EXTENTION"], 1) . '"></div>'; $aCols["NAME"]['shared'] = $res["SHOW"]["SHARED"] ? '<div class="element-shared"></div>' : ''; if (strlen($res["NAME"]) == 0) { $aCols["NAME"]["name"] = "<span> </span>"; } else { $resName = $WrapLongWords ? WrapLongWords(htmlspecialcharsbx($res["NAME"])) : htmlspecialcharsbx($res["NAME"]); if ($ob->Type != "iblock") { $aCols["NAME"]['name'] = '<a class="element-title ' . (strlen($hintLink) > 0 ? 'element-hint ' : ' ') . '" id="doc' . $res['ID'] . '" ' . $hintLink . 'href="' . htmlspecialcharsbx($res["URL"]["THIS"]) . '" onclick="return OpenDoc(this, ' . (in_array($res["FILE_EXTENTION"], $arOfficeExtensions) && $arParams['DEFAULT_EDIT'] == 'Y' ? "true" : "false") . ')"' . ' target="_blank"' . (strlen($hintLink) > 0 ? '' : ' title="' . GetMessage("WD_DOWNLOAD_ELEMENT") . '"') . '>' . $resName . '</a>'; } else { $aCols["NAME"]['name'] = '<a class="element-title ' . (strlen($hintLink) > 0 ? 'element-hint ' : ' ') . '" id="doc' . $res['ID'] . '" ' . $hintLink . ' ' . 'data-bx-viewer="' . $arActions['preview_launch']['type'] . '" ' . 'data-bx-title="' . htmlspecialcharsbx($arActions['preview_launch']['title']) . '" ' . 'data-bx-src="' . $arActions['preview_launch']['src'] . '" ' . 'data-bx-historyPage="' . $arActions['preview_launch']['history'] . '" ' . 'data-bx-edit="' . $arActions['preview_launch']['edit'] . '" ' . 'data-bx-isFromUserLib="' . $arActions['preview_launch']['inPersonalLib'] . '" ' . 'data-bx-externalId="' . $arActions['preview_launch']['externalId'] . '" ' . 'data-bx-relativePath="' . $arActions['preview_launch']['relativePath'] . '" ' . 'data-bx-askConvert="' . $arActions['preview_launch']['askConvert'] . '" ' . 'data-bx-download="' . $arActions['preview_launch']['download'] . '" ' . 'data-bx-size="' . $arActions['preview_launch']['size'] . '" ' . 'data-bx-owner="' . htmlspecialcharsbx($arActions['preview_launch']['owner']) . '" ' . 'data-bx-dateModify="' . htmlspecialcharsbx($arActions['preview_launch']['dateModify']) . '" ' . 'data-bx-tooBigSizeMsg="' . htmlspecialcharsbx($arActions['preview_launch']['tooBigSizeMsg']) . '" ' . '>' . $resName . '</a>'; } } $aCols["NAME"]['status'] = ''; if ($arParams["PERMISSION"] >= "U" && in_array($res['LOCK_STATUS'], array("red", "yellow"))) { $aCols["NAME"]['status'] .= '<div class="element-status-' . $res['LOCK_STATUS'] . '">'; if ($res['LOCK_STATUS'] == "yellow") { $aCols["NAME"]['status'] .= '[' . GetMessage("IBLOCK_YELLOW_MSG") . ']'; } else { if (!is_array($res['WF_LOCKED_BY']) && intval($res['WF_LOCKED_BY']) > 0) { $rUserLockedBy = CUser::GetByID($res['WF_LOCKED_BY']); $res['WF_LOCKED_BY'] = $rUserLockedBy->Fetch(); } if (isset($res['WF_LOCKED_BY']['ID']) && $res['WF_LOCKED_BY']['ID'] > 0) { $res['LOCKED_USER_NAME'] = CUser::FormatName($nameTemplate, $res['WF_LOCKED_BY']); $aCols["NAME"]['status'] .= '[' . trim(GetMessage("IBLOCK_RED_MSG", array('#NAME#' => $res['LOCKED_USER_NAME']))) . ']'; } else { $aCols["NAME"]['status'] .= '[' . GetMessage("IBLOCK_RED_MSG_OTHER") . ']'; } } $aCols["NAME"]['status'] .= '</div>'; } if ($arParams["USE_COMMENTS"] == "Y" && intVal($res["PROPERTY_FORUM_MESSAGE_CNT_VALUE"]) > 0) { $aCols["NAME"]['comments'] = '<a href="' . $res["URL"]["VIEW"] . '?webdavForm' . $arParams["IBLOCK_ID"] . '_active_tab=tab_comments" class="element-properties element-comments" title="' . GetMessage("WD_COMMENTS_FOR_DOCUMENT") . " " . intVal($res["PROPERTY_FORUM_MESSAGE_CNT_VALUE"]) . '">' . intVal($res["PROPERTY_FORUM_MESSAGE_CNT_VALUE"]) . '</a>'; } $aCols["PROPERTY_FORUM_MESSAGE_CNT"] = '<a href="' . $res["URL"]["VIEW"] . '">' . intVal($res["PROPERTY_FORUM_MESSAGE_CNT_VALUE"]) . '</a>'; $aCols["BP_PUBLISHED"] = "<div class=\"wd-bp-published wd-bp-published-" . ($res["BP_PUBLISHED"] != "Y" ? "n" : "y") . "\"></div>"; $aCols["NAME"]["version"] = ""; if ($arParams["WORKFLOW"] == "bizproc" && $res["WF_PARENT_ELEMENT_ID"] > 0) { $aCols["NAME"]["version"] = "<span class=\"wd-element-version\">" . GetMessage("WD_NAME_VERSION") . "</span>"; } $aCols["BIZPROC"] = ""; if ($arParams["WORKFLOW"] == "bizproc" && !empty($res["arDocumentStates"])) { $arDocumentStates = $res["arDocumentStates"]; if (count($arDocumentStates) == 1) { $arDocumentState = reset($arDocumentStates); $arTasksWorkflow = CBPDocument::GetUserTasksForWorkflow($GLOBALS["USER"]->GetID(), $arDocumentState["ID"]); $aColss["BIZPROC"] = '<div class="bizproc-item-title">' . (!empty($arDocumentState["TEMPLATE_NAME"]) ? htmlspecialcharsbx(htmlspecialcharsbx($arDocumentState["TEMPLATE_NAME"])) : GetMessage("IBLIST_BP")) . ': ' . '<span class="bizproc-item-title bizproc-state-title" style="">' . '<a href="' . $res["URL"]["BP"] . '">' . (strlen($arDocumentState["STATE_TITLE"]) > 0 ? htmlspecialcharsbx(htmlspecialcharsbx($arDocumentState["STATE_TITLE"])) : htmlspecialcharsbx(htmlspecialcharsbx($arDocumentState["STATE_NAME"]))) . '</a>' . '</span>' . '</div>'; $aColss["BIZPROC"] = str_replace("'", "\"", $aColss["BIZPROC"]); $aCols["NAME"]['bizproc'] = "<div class=\"element-bizproc-status bizproc-statuses " . (!(strlen($arDocumentState["ID"]) <= 0 || strlen($arDocumentState["WORKFLOW_STATUS"]) <= 0) ? 'bizproc-status-' . (empty($arTasksWorkflow) ? "inprogress" : "attention") : '') . "\" onmouseover='BX.hint(this, \"" . addslashes($aColss["BIZPROC"]) . "\")'></div>"; if (!empty($arTasksWorkflow)) { $tmp = array(); foreach ($arTasksWorkflow as $key => $val) { $url = CComponentEngine::MakePathFromTemplate($arParams["WEBDAV_TASK_URL"], array("ELEMENT_ID" => $res["ID"], "ID" => $val["ID"])); $url = WDAddPageParams($url, array("back_url" => urlencode($GLOBALS['APPLICATION']->GetCurPageParam())), false); $tmp[] = '<a href="' . $url . '">' . $val["NAME"] . '</a>'; } $aColss["BIZPROC"] .= '<div class="bizproc-tasks">' . implode(", ", $tmp) . '</div>'; } } else { $arTasks = array(); $bInprogress = false; $tmp = array(); foreach ($arDocumentStates as $key => $arDocumentState) { $arTasksWorkflow = CBPDocument::GetUserTasksForWorkflow($GLOBALS["USER"]->GetID(), $arDocumentState["ID"]); if (!$bInprogress) { $bInprogress = strlen($arDocumentState["ID"]) > 0 && strlen($arDocumentState["WORKFLOW_STATUS"]) > 0; } $tmp[$key] = '<li class="bizproc-item">' . '<div class="bizproc-item-title">' . '<div class="bizproc-statuses ' . (strlen($arDocumentState["ID"]) > 0 && strlen($arDocumentState["WORKFLOW_STATUS"]) > 0 ? 'bizproc-status-' . (empty($arTasksWorkflow) ? "inprogress" : "attention") : '') . '"></div>' . (!empty($arDocumentState["TEMPLATE_NAME"]) ? $arDocumentState["TEMPLATE_NAME"] : GetMessage("IBLIST_BP")) . '</div>' . '<div class="bizproc-item-title bizproc-state-title">' . (strlen($arDocumentState["STATE_TITLE"]) > 0 ? $arDocumentState["STATE_TITLE"] : $arDocumentState["STATE_NAME"]) . '</div>'; if (!empty($arTasksWorkflow)) { $tmp_tasks = array(); foreach ($arTasksWorkflow as $val) { $url = CComponentEngine::MakePathFromTemplate($arParams["WEBDAV_TASK_URL"], array("ELEMENT_ID" => $res["ID"], "ID" => $val["ID"])); $url = WDAddPageParams($url, array("back_url" => urlencode($GLOBALS['APPLICATION']->GetCurPageParam())), false); $tmp_tasks[] = '<a href="' . $url . '">' . $val["NAME"] . '</a>'; $arTasks[] = $val; } $tmp[$key] .= '<div class="bizproc-tasks">' . implode(", ", $tmp_tasks) . '</div>'; } $tmp[$key] .= '</li>'; } $aColss["BIZPROC"] = '<span class="bizproc-item-title">' . GetMessage("WD_BP_R_P") . ': <a href="' . $res["URL"]["BP"] . '" title="' . GetMessage("WD_BP_R_P_TITLE") . '">' . count($arDocumentStates) . '</a>' . '</span>' . (!empty($arTasks) ? '<br /><span class="bizproc-item-title">' . GetMessage("WD_TASKS") . ': <a href="' . $res["URL"]["BP_TASK"] . '" title="' . GetMessage("WD_TASKS_TITLE") . '">' . count($arTasks) . '</a></span>' : ''); $aCols["NAME"]['bizproc'] = "<div class=\"element-bizproc-status bizproc-statuses " . ($bInprogress ? ' bizproc-status-' . (empty($arTasks) ? "inprogress" : "attention") : '') . "\" onmouseover='BX.hint(this, \"" . addslashes($aColss['BIZPROC']) . "\")'></div>"; } $aCols['BIZPROC'] = $aColss['BIZPROC']; } } $aCols["ACTIVE"] = $res["ACTIVE"] == "Y" ? GetMessage("WD_Y") : GetMessage("WD_N"); $aCols["TIMESTAMP_X"] = "<div class='wd_column_date'>" . FormatDate('X', MakeTimeStamp($res["TIMESTAMP_X"])) . "</div>"; $aCols["DATE_CREATE"] = "<div class='wd_column_date'>" . FormatDate('X', MakeTimeStamp($res["DATE_CREATE"])) . "</div>"; $sName = ''; $sRating = ''; if ($res['TYPE'] != 'S') { if ($arParams["SHOW_RATING"] == 'Y' && $arParams["RATING_TAG"] == 'Y') { $sRating = "#RATING#"; } $aCols["NAME"] = $aCols["NAME"]["hint"] . "<div class=\"element-name\">" . $aCols["NAME"]["icon"] . $aCols["NAME"]["shared"] . "<div class=\"element-name-wrapper\">" . $aCols["NAME"]["name"] . $aCols["NAME"]["version"] . CWebDavExtLinks::$icoRepStr . $aCols["NAME"]["comments"] . $sRating . $aCols["NAME"]["status"] . "</div>" . $aCols["NAME"]["bizproc"] . "</div>"; } if ($bTheFirstTimeonPage == true && $res["PERMISSION"] >= "U") { $bTheFirstTimeonPage = false; ?> <script> try { if (/*@cc_on ! @*/ false && new ActiveXObject("SharePoint.OpenDocuments.2")) { BX.ready( function() { setTimeout( function () { try { var res = document.getElementsByTagName("A"); for (var ii = 0; ii < res.length; ii++) { if (res[ii].className.indexOf("element-edit-office") >= 0) { res[ii].style.display = 'block'; } } } catch(e) {} } , 10 ) } ); } } catch(e) {} BX.message({ 'wd_desktop_disk_is_installed': '<?php echo (bool) CWebDavTools::isDesktopDiskInstall(); ?> ' }); </script> <?php } return array("actions" => $arActions, "columns" => $aCols); }
if ($arParams["RATING_TYPE"] == "standart") { $arParams["RATING_TYPE"] = "standart_text"; } } } foreach ($arResult["GRID_DATA"] as $id => $data) { ob_start(); $APPLICATION->IncludeComponent("bitrix:rating.vote", $arParams["RATING_TYPE"], $ar111 = array("ENTITY_TYPE_ID" => "IBLOCK_ELEMENT", "ENTITY_ID" => $data["data"]["ID"], "OWNER_ID" => $data["data"]["CREATED_BY"]["ID"], "USER_VOTE" => $arResult["RATING"][$data["data"]["ID"]]["USER_VOTE"], "USER_HAS_VOTED" => $arResult["RATING"][$data["data"]["ID"]]["USER_HAS_VOTED"], "TOTAL_VOTES" => $arResult["RATING"][$data["data"]["ID"]]["TOTAL_VOTES"], "TOTAL_POSITIVE_VOTES" => $arResult["RATING"][$data["data"]["ID"]]["TOTAL_POSITIVE_VOTES"], "TOTAL_NEGATIVE_VOTES" => $arResult["RATING"][$data["data"]["ID"]]["TOTAL_NEGATIVE_VOTES"], "TOTAL_VALUE" => $arResult["RATING"][$data["data"]["ID"]]["TOTAL_VALUE"], "PATH_TO_USER_PROFILE" => $arParams["USER_VIEW_URL"]), $component, array("HIDE_ICONS" => "Y")); $sVal = ob_get_contents(); ob_end_clean(); $text = ""; if (array_key_exists("EXT_LINKS_HASH_ARRAY", $arResult) && array_key_exists("BASE_URL_FOR_EXT_LINK", $data["data"]) && array_key_exists("URL_FOR_EXT_LINK", $data["data"]) && $data["data"]["BASE_URL_FOR_EXT_LINK"] != null && $data["data"]["URL_FOR_EXT_LINK"] != null) { $currHash = md5($data["data"]["BASE_URL_FOR_EXT_LINK"] . $data["data"]["URL_FOR_EXT_LINK"]); if (array_key_exists($currHash, $arResult["EXT_LINKS_HASH_ARRAY"]) && $arResult["EXT_LINKS_HASH_ARRAY"][$currHash] > 0) { //$arResult["EXT_LINKS_HASH_ARRAY"][$currHash] $urlT = CWebDavExtLinks::GetFullURL($data["data"]["BASE_URL_FOR_EXT_LINK"] . $data["data"]["URL_FOR_EXT_LINK"]) . "?" . bitrix_sessid_get(); $text = '<div class="ext-link-clip" onclick="ShowExtLinkDialog(\'' . $urlT . '&GetExtLink=1\',\'' . $urlT . '&GetDialogDiv=1\')" title="' . GetMessage("WD_COPY_EXT_LINK_TITLE") . '"></div>'; } } $arResult["GRID_DATA"][$id]['columns']['NAME'] = str_replace(CWebDavExtLinks::$icoRepStr, $text, $arResult["GRID_DATA"][$id]['columns']['NAME']); /*$arResult["GRID_DATA"][$id]['columns']['NAME'] = CWebDavExtLinks::InsertListIcon($arResult["GRID_DATA"][$id]['columns']['NAME'] ,$data);*/ $arResult["GRID_DATA"][$id]['columns']['NAME'] = str_replace("#RATING#", '<div class="rating_vote_text">' . $sVal . '</div>', $arResult["GRID_DATA"][$id]['columns']['NAME']); } } /***************** BASE ********************************************/ $arParams["SHOW_WORKFLOW"] = $arParams["SHOW_WORKFLOW"] == "N" ? "N" : "Y"; $arParams["BASE_URL"] = trim(str_replace(":443", "", $arParams["BASE_URL"])); $arHeaders = array(array("id" => "ID", "name" => "ID", "sort" => "id", "default" => in_array("ID", $arParams["COLUMNS"])), array("id" => "ACTIVE", "name" => GetMessage("WD_TITLE_ACTIVE"), "sort" => "active", "default" => in_array("SORT", $arParams["COLUMNS"])), array("id" => "SORT", "name" => GetMessage("WD_TITLE_SORT"), "sort" => "sort", "default" => in_array("SORT", $arParams["COLUMNS"])), array("id" => "CODE", "name" => GetMessage("WD_TITLE_CODE"), "sort" => "code", "default" => in_array("CODE", $arParams["COLUMNS"])), array("id" => "EXTERNAL_ID", "name" => GetMessage("WD_TITLE_EXTCODE"), "sort" => "external_id", "default" => in_array("EXTERNAL_ID", $arParams["COLUMNS"])), array("id" => "NAME", "name" => GetMessage("WD_TITLE_NAME"), "sort" => "name", "editable" => true, "default" => in_array("NAME", $arParams["COLUMNS"]))); if ($arParams["PERMISSION"] >= "U") { $arHeaders = array_merge($arHeaders, array(array("id" => "WF_STATUS_ID", "name" => GetMessage("WD_TITLE_STATUS"), "sort" => false, "default" => $arParams["WORKFLOW"] == "workflow" && $arParams["SHOW_WORKFLOW"] != "N"), array("id" => "BP_PUBLISHED", "name" => GetMessage("WD_TITLE_PUBLIC"), "sort" => false, "default" => $arParams["WORKFLOW"] == "bizproc" && $arParams['OBJECT']->workflow == 'bizproc'))); }
CWebDavExtLinks::CheckRights($ob); CWebDavExtLinks::PrintDialogDiv($ob); } if(array_key_exists("DeleteLink", $_REQUEST) && strlen($_REQUEST["DeleteLink"]) > 0) { CWebDavExtLinks::CheckSessID(); CWebDavExtLinks::CheckRights($ob); CWebDavExtLinks::DeleteLink($_REQUEST["DeleteLink"]); } if(array_key_exists("DeleteAllLinks", $_REQUEST) && strlen($_REQUEST["DeleteAllLinks"]) > 0) { CWebDavExtLinks::CheckSessID(); CWebDavExtLinks::CheckRights($ob); CWebDavExtLinks::DeleteAllLinks($_REQUEST["DeleteAllLinks"], $ob); } } //===== $ob->file_prop = $arParams["NAME_FILE_PROPERTY"]; $ob->replace_symbols = ($arParams["REPLACE_SYMBOLS"] == "Y" ? true : false); $arParams['WORKFLOW'] = $ob->workflow; $arResult['CURRENT_PATH'] = $ob->_path; $res = $ob->SetRootSection($arParams["ROOT_SECTION_ID"]); /******************************************************************** /
/** * @param $file * @return bool|string */ public function getPublicLink(array $file) { /** @var \CWebDavIblock $webdav */ $webdav = $this->init()->getWebDav(); $hash = CWebDavExtLinks::getHashLink(array('IBLOCK_TYPE' => $webdav->IBLOCK_TYPE, 'IBLOCK_ID' => $file['extra']['iblockId'], 'ROOT_SECTION_ID' => $file['extra']['rootSectionId']), array('PASSWORD' => '', 'URL' => $file['path'], 'BASE_URL' => $webdav->base_url, 'SINGLE_SESSION' => false, 'LINK_TYPE' => CWebDavExtLinks::LINK_TYPE_MANUAL, 'VERSION_ID' => null, 'FILE_ID' => null, 'ELEMENT_ID' => $file['extra']['id']), null); return $hash; }
} elseif (!empty($_REQUEST['showInViewer'])) { CUtil::JSPostUnescape(); CWebDavExtLinks::CheckSessID(); //alert to check_permissions $wdElement = $ob->GetObject(array('check_permissions' => false), false); //todo hack by load from url with historyget (example) if ($wdElement['not_found'] && $wdElement['basename'] && intval($wdElement['basename']) == $wdElement['basename']) { $wdElement = $ob->GetObject(array('check_permissions' => false, 'element_id' => $wdElement['basename']), false); } if (!$ob->CheckWebRights('', array('action' => 'read', 'arElement' => $wdElement), false)) { CWebDavTools::sendJsonResponse(array('error' => 'access_denied', 'message' => GetMessage("WD_ACCESS_DENIED"))); } if (!empty($_POST['checkViewByGoogle'])) { CWebDavTools::sendJsonResponse(array('viewByGoogle' => CWebDavExtLinks::getDownloadCountForLink($_POST['extLink']) > 0)); } $hash = CWebDavExtLinks::getHashLink(array('IBLOCK_TYPE' => $ob->IBLOCK_TYPE, 'IBLOCK_ID' => $wdElement['element_array']['IBLOCK_ID'], 'ROOT_SECTION_ID' => $ob->arRootSection['ID']), array('PASSWORD' => '', 'LIFETIME_NUMBER' => CWebDavExtLinks::LIFETIME_TYPE_AUTO, 'LIFETIME_TYPE' => 'minute', 'URL' => $ob->_path, 'BASE_URL' => $ob->base_url, 'SINGLE_SESSION' => false, 'LINK_TYPE' => CWebDavExtLinks::LINK_TYPE_AUTO, 'VERSION_ID' => !empty($_GET['v']) ? $_GET['v'] : null, 'FILE_ID' => !empty($_GET['f']) ? $_GET['f'] : null, 'ELEMENT_ID' => $wdElement['item_id']), null); if (!empty($_POST['json'])) { CWebDavTools::sendJsonResponse(array('file' => $hash, 'viewerUrl' => CWebDavExtLinks::$urlGoogleViewer . urlencode($hash) . '&embedded=true')); } } elseif (!empty($_REQUEST['saveToDisk'])) { if ($USER->GetId() && check_bitrix_sessid()) { $data = CWebDavIblock::getRootSectionDataForUser($USER->GetID()); if ($data) { $savedFolderId = CIBlockWebdavSocnet::createSavedFolder($data['IBLOCK_ID'], $data['SECTION_ID'], $USER->GetID()); if ($savedFolderId) { $wdElement = $ob->GetObject(array('check_permissions' => false), false); //todo hack by load from url with historyget (example) if ($wdElement['not_found']) { $partUri = explode('element/historyget/', $ob->uri); if (!empty($partUri[1])) { $elementId = (int) $partUri[1];
unset($arActions["element_versions"]); } } $editable = $res["TYPE"] == "S" && sizeof($arActions) > 1 || $res["TYPE"] == "E" && ($res["SHOW"]["EDIT"] === "Y" || $res["SHOW"]["DELETE"] === "Y"); $res["BASE_URL_FOR_EXT_LINK"] = $arParams["OBJECT"]->base_url; $res["URL_FOR_EXT_LINK"] = $res["PATH"]; $arIconHash[] = md5($res["BASE_URL_FOR_EXT_LINK"] . $res["URL_FOR_EXT_LINK"]); $arResult["GRID_DATA"][] = array("id" => $res["TYPE"] . $res["ID"], "data" => $res, "actions" => array_values($arActions), "columns" => $aCols, "editable" => $editable); /************** Grid Data/******************************************/ } unset($dataNavResults, $selfSharedSections, $res); if (!empty($arResult['preview'])) { CJSCore::Init(array('viewer')); } $arResult["EXT_LINKS_HASH_ARRAY"] = array(); $resExtLinks = CWebDavExtLinks::GetList(array("ONLY_CURRENT_USER" => true, "URL_HASH" => $arIconHash), array("URL_HASH"), array("COUNT" => true)); while ($arResExtLinks = $resExtLinks->Fetch()) { $arResult["EXT_LINKS_HASH_ARRAY"][$arResExtLinks["URL_HASH"]] = $arResExtLinks["CT"]; } } $arResult["GRID_DATA_COUNT"] += count($arResult["GRID_DATA"]); /*************** Users *********************************************/ $arResult["USERS"] = $arUsersCache; /*************** For custom Templates ******************************/ /******************************************************************** /Data ********************************************************************/ if (isset($_REQUEST['dialog2']) && $_REQUEST['dialog2'] == 'Y') { $this->__templateName = 'dialog2'; } $this->IncludeComponentTemplate();
?> </span> <?php if (substr_count($sType, "b24") > 0) { ?> <span class="logo-color">24</span> <?php } ?> </a> </div> </div> <?php if ($arResult["PASSWORD"] == "NOT") { $loadUrl = CWebDavExtLinks::GetFullExternalURL() . $arResult["HASH"] . '/?LoadFile=1'; ?> <script type="text/javascript"> BX.ready(function(){ BX.viewElementBind('cont-general-info', {}, {attribute: 'data-bx-viewer'}); }); </script> <div id="cont-general-info" class="fl-page"> <img src="<?php echo $tempPatch; ?> /icon/<?php echo $icon; ?>
static function PrintDialogDiv($ob) { $url = $ob->_path; $urlFull = $ob->base_url_full . "/"; $fileOptT = CWebDavExtLinks::GetFileOptions($ob); $GLOBALS["APPLICATION"]->RestartBuffer(); $resUrl = self::GetList(array("URL" => $url, "BASE_URL" => $ob->base_url, "ONLY_CURRENT_USER" => true)); $linksNum = 0; $arLinks = array(); $description = ""; if (array_key_exists("DESCRIPTION", $fileOptT) && strlen($fileOptT["DESCRIPTION"]) > 0) { $description = HTMLToTxt($fileOptT["DESCRIPTION"]); } $arUsers = array(); $currUserID = self::GetUserID(); while ($arU = $resUrl->Fetch()) { /* 'URL' => '/1.doc', 'RESOURCE_TYPE' => 'IBLOCK', 'FOLDER' => NULL, 'IBLOCK_TYPE' => 'library', 'IBLOCK_ID' => '19', 'BASE_URL' => '/docs/shared', 'HASH' => 'f9b22cf913a644c0d23b0c88e3c0407e', 'CREATION_DATE' => '1353762751', 'USER_ID' => '1', 'PASSWORD' => 'e10adc3949ba59abbe56e057f20f883e', 'LIFETIME' => '1669122751', */ $priority = 0; $arCurrStr = array("HASH" => $arU["HASH"]); if ($arU["LIFETIME"] - time() < 31536000) { $arCurrStr["TIME_LEFT"] = GetTime($arU["LIFETIME"] + CTimeZone::GetOffset(), "FULL"); $priority++; } if ($arU["PASSWORD"] != null) { $arCurrStr["PASSWORD"] = true; $priority += 2; } $arUsers[] = $arCurrStr["USER_ID"] = intval($arU["USER_ID"]); if ($arCurrStr["USER_ID"] == $currUserID) { $priority -= 100; } $arCurrStr["PRIORITY"] = $priority; $arLinks[] = $arCurrStr; $linksNum++; } $arProfilesLinks = array(); if (self::IsAdmin()) { $arProfilesLinks = self::GetUserProfilesLinks($arUsers); } usort($arLinks, array(self, '__SortMethod')); $fileName = htmlspecialcharsbx(GetFileName(CHTTP::urndecode($url))); $size = ""; $sizeI = intval($fileOptT["F_SIZE"]); if ($sizeI > 0) { $size .= " (" . htmlspecialcharsbx(CFile::FormatSize($sizeI)) . ")"; } $changeTime = ""; if (strlen($fileOptT["CHANGE_TIME"]) > 0) { $changeTime = " " . GetMessage("WD_EXT_LINKS_DIALOG_CHANGE_TIME") . " " . $fileOptT["CHANGE_TIME"]; } $demoLink = self::GetFullURL(self::GetUrl() . "/" . self::DEMO_HASH . '/' . self::GetDemoFileName()); ?> <div class="ext-link-dialog-content"> <div class="ext-link-section"> <span><span class="ext-link-dialog-file-name"><?php echo $fileName; ?> </span><?php echo $size . $changeTime; ?> </span> </div> <?php if (self::IsFirstView()) { ?> <div id="ext-link-green-window"> <div class="ext-link-dialog-wrap"> <div class="ext-link-dialog-info-block"> <div class="ext-link-dialog-img"></div> <div class="ext-link-dialog-title"><?php echo GetMessage("WD_EXT_LINKS_DIALOG_GREEN_WINDOW_TITLE"); ?> </div> <div class="ext-link-dialog-text"> <?php echo GetMessage("WD_EXT_LINKS_DIALOG_GREEN_WINDOW_TEXT"); ?> </div> <a href="<?php echo $demoLink; ?> " class="ext-link-dialog-link"><?php echo GetMessage("WD_EXT_LINKS_DIALOG_GREEN_WINDOW_LINK"); ?> </a> <span class="ext-link-dialog-close-btn" onclick="ExtLinkDialogCloseGreenWindow(this)"></span> </div> </div> </div> <?php } if ($linksNum > 0) { ?> <div id="ext-link-section" class="ext-link-section"> <div class="ext-link-list-spoiler-div"> <table class="ext-link-list-spoiler"> <thead onclick="ExtLinkDialogInitSpoiler(this)"> <tr> <th> <div><?php echo str_replace("#n#", '<span>(<span id="ext-link-spoiler-amount">' . $linksNum . '</span>)</span>', GetMessage("WD_EXT_LINKS_DIALOG_SPOILER_TITLE")); ?> </div> </th> </tr> </thead> <tbody style="display:none;" class="learning-spoiler"> <tr> <td> <div id="ext-link-list-div" class="ext-link-list-div"> <?php $n = 0; foreach ($arLinks as $v) { $n++; $fileNameT = str_replace(" ", "_", $fileName); $urlT = self::GetFullExternalURL() . $v["HASH"] . "/" . $fileNameT; $optionsStr = ''; if (array_key_exists("TIME_LEFT", $v)) { $optionsStr .= " " . GetMessage("WD_EXT_LINKS_DIALOG_TIME_LEFT") . $v["TIME_LEFT"] . "."; } if (array_key_exists("PASSWORD", $v)) { $optionsStr .= " " . GetMessage("WD_EXT_LINKS_DIALOG_PASSWORD"); } if (isset($arProfilesLinks[$v["USER_ID"]])) { $optionsStr .= " " . GetMessage("WD_EXT_LINKS_DIALOG_USER_NAME") . ": " . $arProfilesLinks[$v["USER_ID"]]; } if (strlen($optionsStr) > 0) { $optionsStr = '<span class="ext-link-list-options">' . $optionsStr . '</span>'; } echo ' <p id="ext-link-list-p-' . $n . '" class="ext-link-list-row"> <span class="ext-link-list-options-dash">–</span> <span class="ext-link-list-link">' . htmlspecialcharsbx($urlT) . ' <span class="ext-link-list-delete" onclick="ExtLinkDialogDeleteLink(\'' . htmlspecialcharsbx($urlFull) . '\',\'ext-link-list-p-' . $n . '\', {IFRAME: \'Y\', DeleteLink: \'' . $v["HASH"] . '\'})"></span> </span>' . $optionsStr . ' </p> '; } ?> </div> </td> </tr> <tr> <td> <span class="ext-link-delite-all" onclick="ExtLinkDialogDeleteAllLinks('<?php echo htmlspecialcharsbx($urlFull); ?> ','<?php echo htmlspecialcharsbx($url); ?> ')"><span class="ext-link-comments-link-text"> <?php echo GetMessage("WD_EXT_LINKS_DIALOG_DELETE_ALL_LINKS"); ?> </span><i></i></span> </td> </tr> </tbody> </table> </div> </div> <?php } ?> <div id="ext-link-time-div" class="ext-link-section"> <input name="ext-link-time-cb" class="ext-link-time-checkbox" type="checkbox" id="ext-link-time-cb"/><label for="ext-link-time-cb"><?php echo GetMessage("WD_EXT_LINKS_DIALOG_FILE_ACCESS_TIME_TITLE"); ?> </label> <span class="mdl-pwd" id="e2p"> <span class="ext-link-dash">–</span> <input name="ext-link-time-inp" id="ext-link-time-inp" type="text"/> <select name="ext-link-time-sel" id="ext-link-time-sel"> <option value="day"><?php echo GetMessage("WD_EXT_LINKS_DIALOG_FILE_ACCESS_TIME_DAY"); ?> </option> <option value="hour" selected><?php echo GetMessage("WD_EXT_LINKS_DIALOG_FILE_ACCESS_TIME_HOUR"); ?> </option> <option value="minute"><?php echo GetMessage("WD_EXT_LINKS_DIALOG_FILE_ACCESS_TIME_MIN"); ?> </option> </select> </span> </div> <div id="ext-link-pass-div" class="ext-link-section"> <input name="ext-link-pass-cb" id="ext-link-pass-cb" class="ext-link-time-checkbox" type="checkbox"/><label for="ext-link-pass-cb"><?php echo GetMessage("WD_EXT_LINKS_DIALOG_FILE_ACCESS_PASS_TITLE"); ?> </label> <div class="mdl-pwd" id="e3p"> <span><?php echo GetMessage("WD_EXT_LINKS_DIALOG_FILE_ACCESS_PASS1"); ?> :</span><input name="ext-link-pass-inp1" class="ext-link-pass-inp" id="ext-link-pass-inp1" type="password" onKeyUp="onKeyPress();"/><br/> <span><?php echo GetMessage("WD_EXT_LINKS_DIALOG_FILE_ACCESS_PASS2"); ?> :</span><input name="ext-link-pass-inp2" class="ext-link-pass-inp" id="ext-link-pass-inp2" type="password" onKeyUp="onKeyPress();"/> <div id="ext-link-pass-ico-ok"></div> <div id="ext-link-pass-text-wrong"><?php echo GetMessage("WD_EXT_LINKS_DIALOG_PASS_WRONG"); ?> </div> <div id="ext-link-pass-text-empty"><?php echo GetMessage("WD_EXT_LINKS_DIALOG_PASS_EMPTY"); ?> </div> </div> </div> <div class="ext-link-comments"> <span id="ext-link-comments-link" class="ext-link-comments-link" onClick="ExtLinkDialogAddDescription();"><span class="ext-link-comments-link-text"><?php echo GetMessage("WD_EXT_LINKS_DIALOG_ADD_COMENT"); ?> </span></span> <textarea id="text-link-comments-textarea" class="text-link-comments-textarea ext-link-hidden-comments"></textarea> <textarea id="text-link-comments-textarea2" style="display:none;"><?php echo $description; ?> </textarea> <span id="ext-link-comments-link-remove" class="ext-link-comments-link-remove ext-link-hidden-comments" onClick="ExtLinkDialogDeleteDescription();"><span class="ext-link-comments-link-text"><?php echo GetMessage("WD_EXT_LINKS_DIALOG_DELETE_COMENT"); ?> </span></span> </div> <div id="ext-link-url-div" class="ext-link-section ext-link-link ext-link-hidden"> <input id="ext-link-res-url" type="text" class="mdl-result"/> </div> <div id="ext-link-white-block" class="ext-link-white-block"></div> </div> <?php die; }