function __forum_chapter_menu_gen() { $Dict = array("W" => array(), "T" => array()); CModule::IncludeModule("forum"); $db_res = CFilterDictionary::GetList(); while ($res = $db_res->Fetch()) { $Dict[$res["TYPE"]][] = array("text" => htmlspecialcharsEx($res["TITLE"]), "url" => "/bitrix/admin/forum_" . ($res["TYPE"] == "T" ? "letter" : "words") . ".php?DICTIONARY_ID=" . $res["ID"] . "&lang=" . LANG, "more_url" => array("/bitrix/admin/forum_" . ($res["TYPE"] == "T" ? "letter" : "words") . ".php?DICTIONARY_ID=" . $res["ID"] . "&lang=" . LANG, "/bitrix/admin/forum_dictionary_edit.php?DICTIONARY_ID=" . $res["ID"] . "&lang=" . LANG, "/bitrix/admin/forum_" . ($res["TYPE"] == "T" ? "letter" : "words") . "_edit.php?DICTIONARY_ID=" . $res["ID"] . "&lang=" . LANG), "title" => htmlspecialcharsEx($res["TITLE"])); } return $Dict; }
function Delete($ID) { global $DB, $USER; $ID = IntVal($ID); $Dictionary = ""; $Dictionary = CFilterDictionary::GetList(array(), array("ID" => $ID)); $Dictionary = $Dictionary->Fetch(); $res = false; $DB->StartTransaction(); if ($Dictionary["TYPE"] == "T") { $res = $DB->Query("DELETE FROM b_forum_letter WHERE DICTIONARY_ID=" . $ID); } else { $res = $DB->Query("DELETE FROM b_forum_filter WHERE DICTIONARY_ID=" . $ID); } if ($res) { $res = $DB->Query("DELETE FROM b_forum_dictionary WHERE ID=" . $ID); } if ($res) { $DB->Commit(); } else { $DB->Rollback(); } return $res; }
<table border="0" cellspacing="6" class="internal" style="width:auto;"> <tr class="heading"> <td align="center"><?php echo GetMessage("LANG"); ?> </td> <td align="center"><?php echo GetMessage("DICTINARY_AND_EREG"); ?> </td> <td align="center"><span id="SECTION_NAME_TITLE"><?php echo GetMessage("TRANSCRIPTION_DICTIONARY"); ?> </span></td> </tr><?php $db_res = CFilterDictionary::GetList(); $Dict = array(); while ($res = $db_res->Fetch()) { $Dict[$res["TYPE"]]["reference_id"][] = $res["ID"]; $Dict[$res["TYPE"]]["reference"][] = $res["TITLE"]; } $Dict['W']["reference_id"][] = ""; $Dict['W']["reference"][] = GetMessage("DICTIONARY_NONE"); $Dict['T']["reference_id"][] = ""; $Dict['T']["reference"][] = GetMessage("DICTIONARY_NONE"); $l = CLanguage::GetList($lby = "sort", $lorder = "asc"); while ($ar = $l->ExtractFields("l_")) { ?> <tr class="adm-detail-required-field"> <td><span class="tablefieldtext"><?php echo $ar["NAME"];
function GetList($arOrder = array("ID" => "ASC"), $arFilter = array(), $bCount = false) { global $DB; $arSqlSearch = array(); $strSqlSearch = ""; $arSqlOrder = array(); $strSqlOrder = ""; $arFilter = is_array($arFilter) ? $arFilter : array(); foreach ($arFilter as $key => $val) { $key_res = CFilterDictionary::GetFilterOperation($key); $key = strtoupper($key_res["FIELD"]); $strNegative = $key_res["NEGATIVE"]; $strOperation = $key_res["OPERATION"]; switch ($key) { case "LETTER": case "REPLACEMENT": if (strlen($val) <= 0) { $arSqlSearch[] = ($strNegative == "Y" ? "NOT" : "") . "(FL." . $key . " IS NULL OR LENGTH(FL." . $key . ")<=0)"; } else { $arSqlSearch[] = ($strNegative == "Y" ? " FL." . $key . " IS NULL OR NOT " : "") . "(FL." . $key . " " . $strOperation . " '" . $DB->ForSql($val) . "' )"; } break; case "DICTIONARY_ID": case "ID": if ($strOperation != "IN") { if (intVal($val) <= 0) { $arSqlSearch[] = ($strNegative == "Y" ? "NOT" : "") . "(FL." . $key . " IS NULL OR FL." . $key . "<=0)"; } else { $arSqlSearch[] = ($strNegative == "Y" ? " FL." . $key . " IS NULL OR NOT " : "") . "(FL." . $key . " " . $strOperation . " " . intVal($val) . " )"; } } else { if (!is_array($val)) { $val = explode(',', $val); } $val_int = array(); foreach ($val as $v) { $val_int[] = intval($v); } $val = implode(', ', $val_int); $arSqlSearch[] = ($strNegative == "Y" ? " NOT " : "") . "(FL." . $key . " IN (" . $DB->ForSql($val) . ") )"; } break; } } if (!empty($arSqlSearch)) { $strSqlSearch = " AND (" . implode(") AND (", $arSqlSearch) . ") "; } foreach ($arOrder as $by => $order) { $by = strtoupper($by); $order = strtoupper($order); if ($order != "ASC") { $order = "DESC"; } if ($by == "ID") { $arSqlOrder[] = " FL.ID " . $order . " "; } elseif ($by == "TITLE") { $arSqlOrder[] = " FD.TITLE " . $order . " "; } elseif ($by == "LETTER") { $arSqlOrder[] = " FL.LETTER " . $order . " "; } elseif ($by == "REPLACEMENT") { $arSqlOrder[] = " FL.REPLACEMENT " . $order . " "; } else { $arSqlOrder[] = " FL.ID " . $order . " "; $by = "ID"; } } DelDuplicateSort($arSqlOrder); if (!empty($arSqlOrder)) { $strSqlOrder = " ORDER BY " . implode(") AND (", $arSqlOrder); } if ($bCount) { $strSql = "SELECT COUNT(FD.ID) as CNT " . "FROM b_forum_letter FL, b_forum_dictionary FD " . "WHERE (FL.DICTIONARY_ID = FD.ID) " . $strSqlSearch; $db_res = $DB->Query($strSql, false, "File: " . __FILE__ . "<br>Line: " . __LINE__); $iCnt = 0; if ($ar_res = $db_res->Fetch()) { $iCnt = intVal($ar_res["CNT"]); } return $iCnt; } $strSql = "SELECT FL.ID, FL.LETTER, FL.REPLACEMENT, FL.DICTIONARY_ID, FD.TITLE " . "FROM b_forum_letter FL, b_forum_dictionary FD " . "WHERE (FL.DICTIONARY_ID = FD.ID) " . $strSqlSearch . $strSqlOrder; $db_res = $DB->Query($strSql, false, "File: " . __FILE__ . "<br>Line: " . __LINE__); return $db_res; }
if ($bVarsFromForm) { $DB->InitTableVarsForEdit("b_forum_letter", "", "str_"); } $aMenu = array(array("TEXT" => GetMessage("FLTR_LIST"), "LINK" => "/bitrix/admin/forum_letter.php?DICTIONARY_ID=" . $DICTIONARY_ID . "&lang=" . LANG, "ICON" => "btn_list")); if ($ID > 0 && $forumPermWrite) { $aMenu[] = array("SEPARATOR" => "Y"); $aMenu[] = array("TEXT" => GetMessage("FLTR_NEW"), "LINK" => "/bitrix/admin/forum_dictionary_edit.php?DICTIONARY_ID=" . $DICTIONARY_ID . "&lang=" . LANG, "ICON" => "btn_new"); $aMenu[] = array("TEXT" => GetMessage("FLTR_DEL"), "LINK" => "javascript:if(confirm('" . GetMessage("FLTR_DEL_CONFIRM") . "')) window.location='/bitrix/admin/forum_letter.php?DICTIONARY_ID=" . $DICTIONARY_ID . "&lang=" . LANG . "&action=delete&ID[]=" . $ID . "&" . bitrix_sessid_get() . "';", "ICON" => "btn_delete"); } $context = new CAdminContextMenu($aMenu); $context->Show(); if ($err = $APPLICATION->GetException()) { CAdminMessage::ShowMessage($err->GetString()); } /*******************************************************************/ $db_res = CFilterDictionary::GetList(array(), array("TYPE" => "T")); $Dict = array(); while ($res = $db_res->Fetch()) { $Dict["reference_id"][] = $res["ID"]; $Dict["reference"][] = $res["TITLE"]; } ?> <form method="POST" action="<?php echo $APPLICATION->GetCurPage(); ?> " name="forum_edit"> <input type="hidden" name="Update" value="Y"> <input type="hidden" name="lang" value="<?php echo LANG; ?> ">
} } $err = $APPLICATION->GetException(); if (!$err && !empty($_REQUEST['save'])) { LocalRedirect("forum_dictionary.php?TYPE=" . $arFields["TYPE"] . "&lang=" . LANG); } elseif ($err) { $bVarsFromForm = true; if ($err = $APPLICATION->GetException()) { $sError = $err->GetString(); } } } $arFields = array(); $bAdd = true; if ($_REQUEST["DICTIONARY_ID"] > 0) { $db_res = CFilterDictionary::GetList(array(), array("ID" => $_REQUEST["DICTIONARY_ID"])); if ($db_res && ($res = $db_res->Fetch())) { $arFields = array("ID" => $res["ID"], "TYPE" => $res["TYPE"], "TITLE" => $res["TITLE"]); $bAdd = false; } } if ($bAdd) { $arFields = array("ID" => 0, "TYPE" => "", "TITLE" => ""); } if ($bVarsFromForm) { $arFields = array("ID" => $_REQUEST["DICTIONARY_ID"], "TYPE" => $_REQUEST["TYPE"], "TITLE" => $_REQUEST["TITLE"]); } if ($bAdd) { $APPLICATION->SetTitle(GetMessage("FLTR_NEW")); } else { $APPLICATION->SetTitle(GetMessage("FLTR_UPDATE"));