function GetShortUrl($url, $server = false) { $show = false; $rsData = CBXShortUri::GetList(array(), array()); while ($arRes = $rsData->Fetch()) { if ($arRes["URI"] == $url) { $str_SHORT_URI = $arRes["SHORT_URI"]; $show = true; } } if ($show) { return $server ? 'http://' . $_SERVER['SERVER_NAME'] . '/' . $str_SHORT_URI : $str_SHORT_URI; } else { $str_SHORT_URI = CBXShortUri::GenerateShortUri(); $arFields = array("URI" => $url, "SHORT_URI" => $str_SHORT_URI, "STATUS" => "301"); $ID = CBXShortUri::Add($arFields); return $server ? 'http://' . $_SERVER['SERVER_NAME'] . '/' . $str_SHORT_URI : $str_SHORT_URI; } }
public static function GenerateShortUri() { do { $uri = "~" . randString(5); $bNew = true; $uriCrc32 = self::Crc32($uri); $dbResult = CBXShortUri::GetList(array(), array("SHORT_URI_CRC" => $uriCrc32)); while ($arResult = $dbResult->Fetch()) { if ($arResult["SHORT_URI"] == $uri) { $bNew = false; break; } } } while (!$bNew); return $uri; }
/** * Returns short link * * @param string $fullLink * @return string */ public static function getShortLink($fullLink) { $prefix = 'http://' . SITE_SERVER_NAME . '/'; $rsShortLink = \CBXShortUri::GetList([], ['URI' => $fullLink]); if ($shortLink = $rsShortLink->Fetch()) { return $prefix . $shortLink['SHORT_URI']; } $shortLink = \CBXShortUri::GenerateShortUri(); $id = \CBXShortUri::Add(['URI' => $fullLink, 'SHORT_URI' => $shortLink, 'STATUS' => '301']); if ($id) { return $prefix . $shortLink; } }
} $ID = IntVal($ID); switch ($_REQUEST['action']) { case "delete": @set_time_limit(0); $DB->StartTransaction(); if (!CBXShortUri::Delete($ID)) { $DB->Rollback(); $lAdmin->AddGroupError(GetMessage("SU_AF_del_err"), $ID); } $DB->Commit(); break; } } } $rsData = CBXShortUri::GetList(array($by => $order), $arFilter, array("nPageSize" => CAdminResult::GetNavSize($sTableID))); $rsData = new CAdminResult($rsData, $sTableID); $rsData->NavStart(); $lAdmin->NavText($rsData->GetNavPrint(GetMessage("SU_AF_nav"))); $lAdmin->AddHeaders(array(array("id" => "ID", "content" => "ID", "sort" => "ID", "align" => "right", "default" => true), array("id" => "MODIFIED", "content" => GetMessage("SU_FLD_MODIFIED"), "sort" => "MODIFIED", "default" => true), array("id" => "URI", "content" => GetMessage("SU_FLD_URI"), "sort" => "URI", "default" => true), array("id" => "SHORT_URI", "content" => GetMessage("SU_FLD_SHORT_URI"), "sort" => "SHORT_URI", "default" => true), array("id" => "STATUS", "content" => GetMessage("SU_FLD_STATUS"), "sort" => "STATUS", "default" => true), array("id" => "LAST_USED", "content" => GetMessage("SU_FLD_LAST_USED"), "sort" => "LAST_USED", "default" => true), array("id" => "NUMBER_USED", "content" => GetMessage("SU_FLD_NUMBER_USED"), "sort" => "NUMBER_USED", "default" => true))); while ($arRes = $rsData->NavNext(true, "f_")) { $row =& $lAdmin->AddRow($f_ID, $arRes); /* if($f_USER_ID > 0) $strUser = "******"/bitrix/admin/user_edit.php?ID=".$f_USER_ID."&lang=".LANG."\" title=\"".GetMessage("subscr_user_edit_title")."\">".$f_USER_ID."</a>] (".$f_USER_LOGIN.") ".$f_USER_NAME." ".$f_USER_LAST_NAME; else $strUser = GetMessage("subscr_adm_anon"); $row->AddViewField("USER_ID", $strUser); $row->AddCheckField("ACTIVE"); $row->AddInputField("EMAIL", array("size"=>20)); $row->AddViewField("EMAIL", '<a href="subscr_edit.php?ID='.$f_ID.'&lang='.LANG.'" title="'.GetMessage("subscr_upd").'">'.$f_EMAIL.'</a>'); $row->AddSelectField("FORMAT",array("text"=>GetMessage("SU_AF_TEXT"),"html"=>GetMessage("SU_AF_HTML")));
ClearVars(); $str_SHORT_URI = CBXShortUri::GenerateShortUri(); if (isset($_REQUEST["public"])) { $str_URI = $_REQUEST["str_URI"]; $suri = CBXShortUri::GetList(array(), array("URI_EXACT" => $str_URI)); if ($a = $suri->Fetch()) $ID = $a["ID"]; $str_URI = htmlspecialcharsbx($str_URI); } if($ID>0) { $suri = CBXShortUri::GetList(array(), array("ID" => $ID)); if(!$suri->ExtractFields("str_")) $ID=0; } if($bVarsFromForm) $DB->InitTableVarsForEdit("b_short_uri", "", "str_"); $APPLICATION->SetTitle(($ID>0? GetMessage("SU_EF_title_edit").$ID : GetMessage("SU_EF_title_add"))); require($_SERVER["DOCUMENT_ROOT"]."/freetrix/modules/main/include/prolog_admin_after.php"); $aMenu = array( array( "TEXT"=>GetMessage("SU_EF_list_text"), "TITLE"=>GetMessage("SU_EF_list"),