本文整理汇总了PHP中CForumUser::CheckFields方法的典型用法代码示例。如果您正苦于以下问题:PHP CForumUser::CheckFields方法的具体用法?PHP CForumUser::CheckFields怎么用?PHP CForumUser::CheckFields使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CForumUser
的用法示例。
在下文中一共展示了CForumUser::CheckFields方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: Update
public static function Update($ID, $arFields, $strUploadDir = false, $UpdateByUserId = false)
{
global $DB;
$ID = intVal($ID);
if ($ID <= 0) {
return false;
}
$strUploadDir = $strUploadDir === false ? "forum/avatar" : $strUploadDir;
$arFields1 = array();
foreach ($arFields as $key => $value) {
if (substr($key, 0, 1) == "=") {
$arFields1[substr($key, 1)] = $value;
unset($arFields[$key]);
}
}
if (!CForumUser::CheckFields("UPDATE", $arFields)) {
return false;
}
if (array_key_exists("AVATAR", $arFields) && is_array($arFields["AVATAR"]) && (!array_key_exists("MODULE_ID", $arFields["AVATAR"]) || strlen($arFields["AVATAR"]["MODULE_ID"]) <= 0)) {
$arFields["AVATAR"]["MODULE_ID"] = "forum";
}
CFile::SaveForDB($arFields, "AVATAR", $strUploadDir);
/***************** Event onBeforeUserUpdate ************************/
$profileID = null;
foreach (GetModuleEvents("forum", "onBeforeUserUpdate", true) as $arEvent) {
if ($UpdateByUserId) {
if ($profileID == null) {
$arProfile = CForumUser::GetByIDEx($ID);
$profileID = $arProfile['ID'];
}
} else {
$profileID = $ID;
}
ExecuteModuleEventEx($arEvent, array($profileID, &$arFields));
}
/***************** /Event ******************************************/
if (empty($arFields) && empty($arFields1)) {
return false;
}
/***************** Cleaning cache **********************************/
if (is_set($arFields, "ALLOW_POST")) {
unset($GLOBALS["FORUM_CACHE"]["LOCKED_USERS"]);
if (CACHED_b_forum_user !== false) {
$GLOBALS["CACHE_MANAGER"]->CleanDir("b_forum_user");
}
}
/***************** Cleaning cache/**********************************/
$strUpdate = $DB->PrepareUpdate("b_forum_user", $arFields);
foreach ($arFields1 as $key => $value) {
if (strLen($strUpdate) > 0) {
$strUpdate .= ", ";
}
$strUpdate .= $key . "=" . $value . " ";
}
if (!$UpdateByUserId) {
$strSql = "UPDATE b_forum_user SET " . $strUpdate . " WHERE ID = " . $ID;
} else {
$strSql = "UPDATE b_forum_user SET " . $strUpdate . " WHERE USER_ID = " . $ID;
}
$arBinds = array();
if (is_set($arFields, "INTERESTS")) {
$arBinds["INTERESTS"] = $arFields["INTERESTS"];
}
$DB->QueryBind($strSql, $arBinds);
/***************** Event onAfterUserUpdate *************************/
foreach (GetModuleEvents("forum", "onAfterUserUpdate", true) as $arEvent) {
if ($UpdateByUserId) {
if ($profileID == null) {
$arProfile = CForumUser::GetByIDEx($ID);
$profileID = $arProfile['ID'];
}
} else {
$profileID = $ID;
}
ExecuteModuleEventEx($arEvent, array($profileID, $arFields));
}
/***************** /Event ******************************************/
unset($GLOBALS["FORUM_CACHE"]["USER"]);
unset($GLOBALS["FORUM_CACHE"]["USER_ID"]);
return $ID;
}