/** * Delete * @param $CODE * @return array * @throws \Exception */ public static function Delete($CODE) { $group = new \CGroup(); $user = new \CUser(); if (!empty($CODE)) { $by = "ID"; $order = "asc"; $dbGroup = $group->GetList($by, $order, array('STRING_ID' => $CODE)); if ($arGroup = $dbGroup->Fetch()) { $arReturn = $arGroup; } } else { throw new BimException('Empty group code'); } if (intval($arReturn['ID']) > 0) { $arUsers = $group->GetGroupUser($arReturn['ID']); foreach ($arUsers as $UserID) { $arGroup = $user->GetUserGroup($UserID); $arGroup[] = "3"; $user->SetUserGroup($UserID, $arGroup); } $res = $group->Delete($arReturn['ID']); if (is_object($res)) { return $arReturn['ID']; } else { throw new BimException($group->LAST_ERROR); } } else { throw new BimException('Group not found'); } }
/** * Получение массива групп пользователей * * @return array массив групп пользователей */ public static function getUserGroups() { $group = new \CGroup(); $groupOrder = array('sort' => 'asc'); $groupTmp = 'sort'; $groupQuery = $group->GetList($groupOrder, $groupTmp); $groups = array(); for ($i = 0; $item = $groupQuery->Fetch(); $i++) { $groups[$i] = $item; } return $groups; }
public function updateGroupIfExists($code, $fields = array()) { $groupId = $this->getGroupId($code); if (!$groupId) { return false; } if (empty($fields)) { $this->throwException(__METHOD__, 'Set fields for group %s', $code); } $group = new \CGroup(); if ($group->Update($groupId, $fields)) { return intval($groupId); } $this->throwException(__METHOD__, $group->LAST_ERROR); }
/** * Абстрактный метод проверки передаваемых параметров * * checkParams * @param array $groupId * @return mixed|void * @throws \Exception * @internal param array $params */ public function checkParams($groupId) { $group = new \CGroup(); if (!isset($groupId) || empty($groupId)) { throw new BimException('empty groupId param'); } $this->ownerItemDbData = array(); $groupDbRes = $group->GetList($by = 'id', $order = 'desc', array('ID' => $groupId)); if ($groupDbRes === false || !$groupDbRes->SelectedRowsCount()) { throw new BimException('Group with id = ' . $groupId . ' not exists'); } $groupData = $groupDbRes->Fetch(); if (!strlen($groupData['STRING_ID'])) { throw new BimException('Group with id = ' . $groupId . ' have empty STRING_ID!'); } $this->ownerItemDbData = $groupData; }
function BeforeUserAdd(&$arFields) { if (strstr($_SERVER['HTTP_REFERER'], "webim")) { $filter = array("STRING_ID" => "webim"); $by = 'c_sort'; $order = 'DESC'; $rsGroups = CGroup::GetList($by, $order, $filter); $is_filtered = $rsGroups->is_filtered; if ($row = $rsGroups->GetNext()) { $arFields["GROUP_ID"][] = array("GROUP_ID" => $row["ID"]); } } }
public function BeforeUserAdd(&$arFields) { if (strstr($_SERVER['HTTP_REFERER'], 'webim')) { $filter = array('STRING_ID' => 'webim'); $by = 'c_sort'; $order = 'DESC'; $rsGroups = CGroup::GetList($by, $order, $filter); $is_filtered = $rsGroups->is_filtered; if ($row = $rsGroups->GetNext()) { $arFields['GROUP_ID'][] = array('GROUP_ID' => $row['ID']); } } }
public function actionCreate() { $model = new CGroup(); $description = new CGroupDescription(); $this->performAjaxValidation(array($model, $description), 'cgroup-form'); if (isset($_POST['CGroupDescription'])) { //$model->setAttributes($_POST[$this->modelName]); $description->setAttributes($_POST[$this->modelName . 'Description']); $suc = Yii::t('info', 'CGroup was successfully created'); $err = Yii::t('info', 'Could not update CGroup'); $description->c_group_id = 0; $description->locale_code = Yii::app()->getLanguage(); if ($model->validate() && $description->validate()) { if ($model->save()) { $description->c_group_id = $model->id; $description->save(); Yii::app()->user->setFlash(TbHtml::ALERT_COLOR_SUCCESS, $suc); if (Yii::app()->getRequest()->getIsAjaxRequest()) { $this->renderPartial('_view', array('model' => $model, 'description' => $description), false, true); Yii::app()->end(); } else { $this->redirect(array('view', 'id' => $model->id)); } } else { Yii::app()->user->setFlash(TbHtml::ALERT_COLOR_ERROR, $err); } } else { $description->validate(); } UtilityHelper::sendToLog($model->getErrors()); UtilityHelper::sendToLog($description->getErrors()); } if (Yii::app()->getRequest()->getIsAjaxRequest()) { $this->renderPartial('_form', array('model' => $model, 'description' => $description), false, true); Yii::app()->end(); } $this->render('create', array('model' => $model, 'description' => $description)); }
/** * @return array */ public function getUserGroups() { if ($this->groups) { return $this->groups; } $ids = $this->user->GetUserGroupArray(); $res = array(); $dbRes = \CGroup::GetList($by = null, $order = null, array('ID' => implode('|', $ids))); while ($item = $dbRes->Fetch()) { $res[] = $item['STRING_ID']; } $this->groups = array_filter($res); return $this->groups; }
<?php if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true) { die; } if (!CModule::IncludeModule("iblock")) { return; } $arIBlockType = array(); $rsIBlockType = CIBlockType::GetList(array("sort" => "asc"), array("ACTIVE" => "Y")); while ($arr = $rsIBlockType->Fetch()) { if ($ar = CIBlockType::GetByIDLang($arr["ID"], LANGUAGE_ID)) { $arIBlockType[$arr["ID"]] = "[" . $arr["ID"] . "] " . $ar["NAME"]; } } $arIBlock = array(); $rsIBlock = CIBlock::GetList(array("sort" => "asc"), array("TYPE" => $arCurrentValues["IBLOCK_TYPE"], "ACTIVE" => "Y")); while ($arr = $rsIBlock->Fetch()) { $arIBlock[$arr["ID"]] = "[" . $arr["ID"] . "] " . $arr["NAME"]; } $arUserGroups = array(); $dbGroups = CGroup::GetList($b = "NAME", $o = "ASC", array("ACTIVE" => "Y")); while ($arGroup = $dbGroups->GetNext()) { $arUserGroups[$arGroup["ID"]] = "[" . $arGroup["ID"] . "] " . $arGroup["NAME"]; } $arComponentParameters = array("GROUPS" => array("VARIABLE_ALIASES" => array("NAME" => GetMessage("INTL_VARIABLE_ALIASES"))), "PARAMETERS" => array("IBLOCK_TYPE" => array("PARENT" => "BASE", "NAME" => GetMessage("INTL_IBLOCK_TYPE"), "TYPE" => "LIST", "VALUES" => $arIBlockType, "REFRESH" => "Y"), "IBLOCK_ID" => array("PARENT" => "BASE", "NAME" => GetMessage("INTL_IBLOCK"), "TYPE" => "LIST", "VALUES" => $arIBlock, "REFRESH" => "Y"), "PAGE_VAR" => array("NAME" => GetMessage("INTL_PAGE_VAR"), "TYPE" => "STRING", "MULTIPLE" => "N", "DEFAULT" => "", "COLS" => 25, "PARENT" => "VARIABLE_ALIASES"), "MEETING_VAR" => array("NAME" => GetMessage("INTL_MEETING_VAR"), "TYPE" => "STRING", "MULTIPLE" => "N", "DEFAULT" => "", "COLS" => 25, "PARENT" => "VARIABLE_ALIASES"), "MEETING_ID" => array("NAME" => GetMessage("INTL_MEETING_ID"), "TYPE" => "STRING", "MULTIPLE" => "N", "DEFAULT" => "", "COLS" => 25, "PARENT" => "BASE"), "ITEM_VAR" => array("NAME" => GetMessage("INTL_ITEM_VAR"), "TYPE" => "STRING", "MULTIPLE" => "N", "DEFAULT" => "", "COLS" => 25, "PARENT" => "VARIABLE_ALIASES"), "ITEM_ID" => array("NAME" => GetMessage("INTL_ITEM_ID"), "TYPE" => "STRING", "MULTIPLE" => "N", "DEFAULT" => "", "COLS" => 25, "PARENT" => "BASE"), "PATH_TO_MEETING" => array("NAME" => GetMessage("INTL_PATH_TO_MEETING"), "TYPE" => "STRING", "MULTIPLE" => "N", "DEFAULT" => "", "COLS" => 25, "PARENT" => "URL_TEMPLATES"), "PATH_TO_MEETING_LIST" => array("NAME" => GetMessage("INTL_PATH_TO_MEETING_LIST"), "TYPE" => "STRING", "MULTIPLE" => "N", "DEFAULT" => "", "COLS" => 25, "PARENT" => "URL_TEMPLATES"), "SET_NAVCHAIN" => array("PARENT" => "ADDITIONAL_SETTINGS", "NAME" => GetMessage("INTL_SET_NAVCHAIN"), "TYPE" => "CHECKBOX", "DEFAULT" => "Y"), "SET_TITLE" => array(), "USERGROUPS_RESERVE" => array("PARENT" => "BASE", "NAME" => GetMessage("INTL_USERGROUPS_RESERVE"), "TYPE" => "LIST", "MULTIPLE" => "Y", "VALUES" => $arUserGroups)));
<td><input type="text" name="find_name" value="<?echo htmlspecialcharsbx($find_name)?>" size="47"><?php echo ShowFilterLogicHelp(); ?> </td> </tr> <tr> <td><?echo GetMessage("MAIN_F_KEYWORDS")?></td> <td><input type="text" name="find_keywords" value="<?echo htmlspecialcharsbx($find_keywords)?>" size="47"><?php echo ShowFilterLogicHelp(); ?> </td> </tr> <tr valign="top"> <td><?echo GetMessage("F_GROUP")?><br><img src="/freetrix/images/main/mouse.gif" width="44" height="21" border="0" alt=""></td> <td><? $z = CGroup::GetDropDownList("AND ID!=2"); echo SelectBoxM("find_group_id[]", $z, $find_group_id, "", false, 10); ?></td> </tr> <input type="hidden" name="FN" value="<?echo htmlspecialcharsbx($FN)?>"> <input type="hidden" name="FC" value="<?echo htmlspecialcharsbx($FC)?>"> <input type="hidden" name="JSFUNC" value="<?echo htmlspecialcharsbx($JSFUNC)?>"> <? $oFilter->Buttons(array("table_id"=>$sTableID, "url"=>$APPLICATION->GetCurPage(), "form"=>"find_form")); $oFilter->End(); ?> </form> <? $lAdmin->DisplayList(); require($_SERVER["DOCUMENT_ROOT"]."/freetrix/modules/main/include/epilog_popup_admin.php");
} print "</pre>"; } } if ($_GET["date_from"] || $_GET["date_to"]) { $date_from = $_GET["date_from"]; $date_to = $_GET["date_to"]; } else { $date_from = date('d.m.Y', time() - 3600 * 24 * 10); $date_to = date('d.m.Y', time()); } $APPLICATION->ShowHead(); CJSCore::Init("jquery"); $APPLICATION->ShowPanel(); $APPLICATION->SetTitle("Статистика приглашений детально"); $groupObj = CGroup::GetList(); $groups = array(); while ($group = $groupObj->Fetch()) { if ($group["ID"] == 8 || $group["ID"] == 9) { //Усилители / Сотрудники $groups[$group["ID"]] = $group["NAME"]; } } $arFilter = array("DATE_REGISTER_1" => $date_from, "DATE_REGISTER_2" => $date_to); $usersObj = CUser::GetList($sort = "id", $direct = "asc", $arFilter, array("SELECT" => array("UF_*"), "FIELDS" => array("*"))); $counter = array(); while ($user = $usersObj->Fetch()) { if ($user["UF_USER_PARENT"]) { $counter[$user["UF_USER_PARENT"]][] = $user; } }
<? $module_id = "ws.projectsettings"; $CAT_RIGHT = $APPLICATION->GetGroupRight($module_id); if ($CAT_RIGHT >= "R") : global $MESS; include(GetLangFileName($GLOBALS["DOCUMENT_ROOT"] . "/bitrix/modules/main/lang/", "/options.php")); if ($REQUEST_METHOD == "GET" && strlen($RestoreDefaults) > 0 && $CAT_RIGHT == "W" && check_bitrix_sessid()) { COption::RemoveOption("ws.projectsettings"); $z = CGroup::GetList($v1 = "id", $v2 = "asc", array("ACTIVE" => "Y", "ADMIN" => "N")); while ($zr = $z->Fetch()) $APPLICATION->DelGroupRight($module_id, array($zr["ID"])); LocalRedirect($APPLICATION->GetCurPage() . "?lang=" . LANG . "&mid=" . urlencode($mid)); } $aTabs = array( array("DIV" => "edit1", "TAB" => GetMessage("MAIN_TAB_RIGHTS"), "TITLE" => GetMessage("MAIN_TAB_TITLE_RIGHTS")), ); $tabControl = new CAdminTabControl("tabControl", $aTabs); $tabControl->Begin(); ?> <form method="POST" action="<? echo $APPLICATION->GetCurPage() ?>?mid=<?php echo htmlspecialchars($mid); ?> &lang=<? echo LANG ?>" name="ara"> <?php echo bitrix_sessid_post(); ?> <? $tabControl->BeginNextTab();
/** * <p>Возвращает группу пользователей по ее коду <i>ID</i> в виде объекта класса <a href="http://dev.1c-bitrix.ru/api_help/main/reference/cdbresult/index.php">CDBResult</a>.</p> * * * * * @param int $id ID группы.</bo * * * * @param string $SHOW_USERS_AMOUNT = "N" "Y" - в выборке будет присутствовать поле ("USERS") с количеством * пользователей в группе; "N" - в выборке не будет поля с количеством * пользователей в группе (по умолчанию); * * * * @return CDBResult * * * <h4>Example</h4> * <pre> * <? * $rsGroup = <b>CGroup::GetByID</b>(2, "Y"); * $arGroup = $rsGroup->Fetch(); * echo "<pre>"; print_r($arGroup); echo "</pre>"; * ?> * </pre> * * * * <h4>See Also</h4> * <ul> <li> <a href="http://dev.1c-bitrix.ru/api_help/main/reference/cgroup/index.php#flds">Поля CGroup</a> </li> <li> * <a href="http://dev.1c-bitrix.ru/api_help/main/reference/cgroup/getlist.php">CGroup::GetList</a> </li> </ul></b<a * name="examples"></a> * * * @static * @link http://dev.1c-bitrix.ru/api_help/main/reference/cgroup/getbyid.php * @author Bitrix */ public static function GetByID($ID, $SHOW_USERS_AMOUNT = "N") { global $DB; $err_mess = CGroup::err_mess() . "<br>Function: GetList<br>Line: "; $ID = intval($ID); $strSql = "SELECT G.ID, G.ACTIVE, G.C_SORT, G.ANONYMOUS, G.NAME, G.STRING_ID, G.DESCRIPTION, " . $DB->DateToCharFunction("G.TIMESTAMP_X") . " as TIMESTAMP_X "; if ($SHOW_USERS_AMOUNT == "Y") { $strSql .= ", count(distinct U.USER_ID) USERS "; } else { $strSql .= ", G.SECURITY_POLICY "; } $strSql .= "FROM b_group G "; if ($SHOW_USERS_AMOUNT == "Y") { $strSql .= "LEFT JOIN b_user_group U ON (U.GROUP_ID=G.ID AND ((U.DATE_ACTIVE_FROM IS NULL) OR (U.DATE_ACTIVE_FROM <= " . $DB->CurrentTimeFunction() . ")) AND ((U.DATE_ACTIVE_TO IS NULL) OR (U.DATE_ACTIVE_TO >= " . $DB->CurrentTimeFunction() . "))) "; } $strSql .= "WHERE G.ID = " . $ID . " "; if ($SHOW_USERS_AMOUNT == "Y") { $strSql .= "GROUP BY G.ID, G.ACTIVE, G.C_SORT, G.TIMESTAMP_X, G.ANONYMOUS, G.NAME, G.STRING_ID, G.DESCRIPTION"; } $z = $DB->Query($strSql, false, $err_mess . __LINE__); return $z; }
function InstallDB() { /** @global string $DBType */ global $DB, $DBType, $DBHost, $DBLogin, $DBPassword, $DBName, $APPLICATION; if (!is_object($APPLICATION)) { $APPLICATION = new CMain(); } $DB = new CDatabase(); $DB->DebugToFile = false; $DB->debug = true; if (!defined("DBPersistent")) { define("DBPersistent", false); } if (!$DB->Connect($DBHost, $DBName, $DBLogin, $DBPassword)) { $APPLICATION->ThrowException(GetMessage("MAIN_INSTALL_DB_ERROR")); return false; } $result = $DB->Query("SELECT * FROM b_module WHERE ID='main'", true, "", array("fixed_connection" => true)); $success = $result && $result->Fetch(); if ($success) { return true; } if ($DBType == "mysql" && defined("MYSQL_TABLE_TYPE") && strlen(MYSQL_TABLE_TYPE) > 0) { $DB->Query("SET storage_engine = '" . MYSQL_TABLE_TYPE . "'", true); } $errors = $DB->RunSQLBatch($_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/install/" . $DBType . "/install.sql"); if ($errors !== false) { $APPLICATION->ThrowException(implode("", $errors)); return false; } $this->InstallTasks(); $group = new CGroup(); $arGroups = array(array("~ID" => 1, "ACTIVE" => "Y", "C_SORT" => 1, "NAME" => GetMessage("MAIN_ADMIN_GROUP_NAME"), "ANONYMOUS" => "N", "DESCRIPTION" => GetMessage("MAIN_ADMIN_GROUP_DESC")), array("~ID" => 2, "ACTIVE" => "Y", "C_SORT" => 2, "NAME" => GetMessage("MAIN_EVERYONE_GROUP_NAME"), "ANONYMOUS" => "Y", "DESCRIPTION" => GetMessage("MAIN_EVERYONE_GROUP_DESC")), array("~ID" => 3, "ACTIVE" => "Y", "C_SORT" => 3, "NAME" => GetMessage("MAIN_VOTE_RATING_GROUP_NAME"), "ANONYMOUS" => "N", "DESCRIPTION" => GetMessage("MAIN_VOTE_RATING_GROUP_DESC"), "STRING_ID" => "RATING_VOTE"), array("~ID" => 4, "ACTIVE" => "Y", "C_SORT" => 4, "NAME" => GetMessage("MAIN_VOTE_AUTHORITY_GROUP_NAME"), "ANONYMOUS" => "N", "DESCRIPTION" => GetMessage("MAIN_VOTE_AUTHORITY_GROUP_DESC"), "STRING_ID" => "RATING_VOTE_AUTHORITY")); foreach ($arGroups as $arGroup) { $rsGroup = CGroup::GetByID($arGroup["~ID"]); if ($rsGroup->Fetch()) { continue; } //mssql does not allow insert identity by default if (strtolower($DB->type) == "mssql") { unset($arGroup["~ID"]); } $success = (bool) $group->Add($arGroup); if (!$success) { $APPLICATION->ThrowException($group->LAST_ERROR); return false; } } self::InstallRatings(); $arLanguages = array(array("LID" => LANGUAGE_ID, "ACTIVE" => "Y", "SORT" => 1, "DEF" => "Y", "NAME" => GetMessage("MAIN_DEFAULT_LANGUAGE_NAME"), "FORMAT_DATE" => GetMessage("MAIN_DEFAULT_LANGUAGE_FORMAT_DATE"), "FORMAT_DATETIME" => GetMessage("MAIN_DEFAULT_LANGUAGE_FORMAT_DATETIME"), "FORMAT_NAME" => GetMessage("MAIN_DEFAULT_LANGUAGE_FORMAT_NAME"), "CHARSET" => defined("BX_UTF") ? "UTF-8" : GetMessage("MAIN_DEFAULT_LANGUAGE_FORMAT_CHARSET"))); if (LANGUAGE_ID != "en") { $arLanguages[] = array("LID" => "en", "ACTIVE" => "Y", "SORT" => 2, "DEF" => "N", "NAME" => "English", "FORMAT_DATE" => "MM/DD/YYYY", "FORMAT_DATETIME" => "MM/DD/YYYY H:MI:SS T", "FORMAT_NAME" => "#NAME# #LAST_NAME#", "CHARSET" => defined("BX_UTF") ? "UTF-8" : "iso-8859-1"); } if (LANGUAGE_ID != "de" && file_exists($_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/main/lang/de/install/index.php')) { $arLanguages[] = array("LID" => "de", "ACTIVE" => "Y", "SORT" => 3, "DEF" => "N", "NAME" => "German", "FORMAT_DATE" => "DD.MM.YYYY", "FORMAT_DATETIME" => "DD.MM.YYYY HH:MI:SS", "FORMAT_NAME" => "#NAME# #LAST_NAME#", "CHARSET" => defined("BX_UTF") ? "UTF-8" : "iso-8859-1"); } if (LANGUAGE_ID != "ru" && file_exists($_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/main/lang/ru/install/index.php')) { $arLanguages[] = array("LID" => "ru", "ACTIVE" => "Y", "SORT" => 3, "DEF" => "N", "NAME" => "Russian", "FORMAT_DATE" => "DD.MM.YYYY", "FORMAT_DATETIME" => "DD.MM.YYYY HH:MI:SS", "FORMAT_NAME" => "#NAME# #LAST_NAME#", "CHARSET" => defined("BX_UTF") ? "UTF-8" : "windows-1251"); } $lang = new CLanguage(); foreach ($arLanguages as $arLanguage) { $rsLang = CLanguage::GetByID($arLanguage["LID"]); if ($rsLang->Fetch()) { continue; } $success = (bool) $lang->Add($arLanguage); if (!$success) { $APPLICATION->ThrowException($lang->LAST_ERROR); return false; } } $arSite = array("LID" => "s1", "ACTIVE" => "Y", "SORT" => 1, "DEF" => "Y", "NAME" => GetMessage("MAIN_DEFAULT_SITE_NAME"), "DIR" => "/", "FORMAT_DATE" => GetMessage("MAIN_DEFAULT_SITE_FORMAT_DATE"), "FORMAT_DATETIME" => GetMessage("MAIN_DEFAULT_SITE_FORMAT_DATETIME"), "FORMAT_NAME" => GetMessage("MAIN_DEFAULT_SITE_FORMAT_NAME"), "CHARSET" => defined("BX_UTF") ? "UTF-8" : GetMessage("MAIN_DEFAULT_SITE_FORMAT_CHARSET"), "LANGUAGE_ID" => LANGUAGE_ID); $rsSites = CSite::GetByID($arSite["LID"]); if (!$rsSites->Fetch()) { $site = new CSite(); $success = (bool) $site->Add($arSite); if (!$success) { $APPLICATION->ThrowException($site->LAST_ERROR); return false; } } RegisterModule("main"); RegisterModuleDependences('iblock', 'OnIBlockPropertyBuildList', 'main', 'CIBlockPropertyUserID', 'GetUserTypeDescription', 100, '/modules/main/tools/prop_userid.php'); RegisterModuleDependences('main', 'OnUserDelete', 'main', 'CFavorites', 'OnUserDelete', 100, "/modules/main/classes/" . strtolower($GLOBALS["DB"]->type) . "/favorites.php"); RegisterModuleDependences('main', 'OnLanguageDelete', 'main', 'CFavorites', 'OnLanguageDelete', 100, "/modules/main/classes/" . strtolower($GLOBALS["DB"]->type) . "/favorites.php"); RegisterModuleDependences('main', 'OnUserDelete', 'main', 'CUserOptions', 'OnUserDelete'); RegisterModuleDependences('main', 'OnChangeFile', 'main', 'CMain', 'OnChangeFileComponent'); RegisterModuleDependences('main', 'OnUserTypeRightsCheck', 'main', 'CUser', 'UserTypeRightsCheck'); RegisterModuleDependences('main', 'OnUserLogin', 'main', 'UpdateTools', 'CheckUpdates'); RegisterModuleDependences('main', 'OnModuleUpdate', 'main', 'UpdateTools', 'SetUpdateResult'); RegisterModuleDependences('main', 'OnUpdateCheck', 'main', 'UpdateTools', 'SetUpdateError'); RegisterModuleDependences('main', 'OnPanelCreate', 'main', 'CUndo', 'CheckNotifyMessage'); RegisterModuleDependences('main', 'OnAfterAddRating', 'main', 'CRatingsComponentsMain', 'OnAfterAddRating'); RegisterModuleDependences('main', 'OnAfterUpdateRating', 'main', 'CRatingsComponentsMain', 'OnAfterUpdateRating'); RegisterModuleDependences('main', 'OnSetRatingsConfigs', 'main', 'CRatingsComponentsMain', 'OnSetRatingConfigs'); RegisterModuleDependences('main', 'OnGetRatingsConfigs', 'main', 'CRatingsComponentsMain', 'OnGetRatingConfigs'); RegisterModuleDependences('main', 'OnGetRatingsObjects', 'main', 'CRatingsComponentsMain', 'OnGetRatingObject'); RegisterModuleDependences('main', 'OnGetRatingContentOwner', 'main', 'CRatingsComponentsMain', 'OnGetRatingContentOwner'); RegisterModuleDependences('main', 'OnAfterAddRatingRule', 'main', 'CRatingRulesMain', 'OnAfterAddRatingRule'); RegisterModuleDependences('main', 'OnAfterUpdateRatingRule', 'main', 'CRatingRulesMain', 'OnAfterUpdateRatingRule'); RegisterModuleDependences('main', 'OnGetRatingRuleObjects', 'main', 'CRatingRulesMain', 'OnGetRatingRuleObjects'); RegisterModuleDependences('main', 'OnGetRatingRuleConfigs', 'main', 'CRatingRulesMain', 'OnGetRatingRuleConfigs'); RegisterModuleDependences('main', 'OnAfterUserAdd', 'main', 'CRatings', 'OnAfterUserRegister'); RegisterModuleDependences('main', 'OnUserDelete', 'main', 'CRatings', 'OnUserDelete'); RegisterModuleDependences('main', 'OnUserDelete', 'main', 'CAccess', 'OnUserDelete'); RegisterModuleDependences('main', 'OnAfterGroupAdd', 'main', 'CGroupAuthProvider', 'OnAfterGroupAdd'); RegisterModuleDependences('main', 'OnBeforeGroupUpdate', 'main', 'CGroupAuthProvider', 'OnBeforeGroupUpdate'); RegisterModuleDependences('main', 'OnBeforeGroupDelete', 'main', 'CGroupAuthProvider', 'OnBeforeGroupDelete'); RegisterModuleDependences('main', 'OnAfterUserUpdate', 'main', 'CGroupAuthProvider', 'OnAfterUserUpdate'); RegisterModuleDependences('main', 'OnUserLogin', 'main', 'CGroupAuthProvider', 'OnUserLogin'); RegisterModuleDependences("main", "OnEventLogGetAuditTypes", "main", "CEventMain", "GetAuditTypes"); RegisterModuleDependences("main", "OnEventLogGetAuditHandlers", "main", "CEventMain", "MakeMainObject"); RegisterModuleDependences("perfmon", "OnGetTableSchema", "main", "CTableSchema", "OnGetTableSchema"); RegisterModuleDependences("main", "OnUserTypeBuildList", "main", "CUserTypeString", "GetUserTypeDescription", 110); RegisterModuleDependences("main", "OnUserTypeBuildList", "main", "CUserTypeInteger", "GetUserTypeDescription", 120); RegisterModuleDependences("main", "OnUserTypeBuildList", "main", "CUserTypeDouble", "GetUserTypeDescription", 130); RegisterModuleDependences("main", "OnUserTypeBuildList", "main", "CUserTypeDateTime", "GetUserTypeDescription", 140); RegisterModuleDependences("main", "OnUserTypeBuildList", "main", "CUserTypeBoolean", "GetUserTypeDescription", 150); RegisterModuleDependences("main", "OnUserTypeBuildList", "main", "CUserTypeFile", "GetUserTypeDescription", 160); RegisterModuleDependences("main", "OnUserTypeBuildList", "main", "CUserTypeEnum", "GetUserTypeDescription", 170); RegisterModuleDependences("main", "OnUserTypeBuildList", "main", "CUserTypeIBlockSection", "GetUserTypeDescription", 180); RegisterModuleDependences("main", "OnUserTypeBuildList", "main", "CUserTypeIBlockElement", "GetUserTypeDescription", 190); RegisterModuleDependences("main", "OnUserTypeBuildList", "main", "CUserTypeStringFormatted", "GetUserTypeDescription", 200); COption::SetOptionString('main', 'auth_comp2', 'Y'); COption::SetOptionString("main", "PARAM_MAX_SITES", "2"); COption::SetOptionString("main", "PARAM_MAX_USERS", "0"); COption::SetOptionString("main", "distributive6", "Y"); COption::SetOptionString("main", "~new_license11_sign", "Y"); COption::SetOptionString("main", "GROUP_DEFAULT_TASK", "1"); if (LANGUAGE_ID == "ru") { COption::SetOptionString("main", "vendor", "1c_bitrix"); } else { COption::SetOptionString("main", "vendor", "bitrix"); } COption::SetOptionString("main", "admin_lid", LANGUAGE_ID); COption::SetOptionString("main", "update_site", "www.bitrixsoft.com"); COption::SetOptionString("main", "update_site_ns", "Y"); COption::SetOptionString("main", "optimize_css_files", "Y"); COption::SetOptionString("main", "optimize_js_files", "Y"); CAgent::AddAgent("CEvent::CleanUpAgent();", "main", "Y", 86400); CAgent::AddAgent("CUser::CleanUpHitAuthAgent();", "main", "Y", 86400); CAgent::AddAgent("CCaptchaAgent::DeleteOldCaptcha(3600);", "main", "N", 3600); CAgent::AddAgent("CUndo::CleanUpOld();", "main", "Y", 86400); self::InstallDesktop(); self::InstallSmiles(); return true; }
public function GetAllowableUserGroups($documentType) { $documentType = trim($documentType); if (strlen($documentType) <= 0) { return false; } $iblockId = intval(substr($documentType, strlen("type_"))); $arResult = array("Author" => GetMessage("BPVDX_DOCUMENT_AUTHOR")); // $arRes = array(1); // $arGroups = CIBlock::GetGroupPermissions($iblockId); // foreach ($arGroups as $groupId => $perm) // { // if ($perm > "R") // $arRes[] = $groupId; // } $dbGroupsList = CGroup::GetListEx(array("NAME" => "ASC"), array("ACTIVE" => "Y")); //array("ID" => $arRes) while ($arGroup = $dbGroupsList->Fetch()) { $arResult[$arGroup["ID"]] = $arGroup["NAME"]; } return $arResult; }
<?php if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true) { die; } if (WIZARD_IS_RERUN) { return; } if (!CModule::IncludeModule("fileman")) { return; } $arAccessRights = array(WIZARD_PORTAL_ADMINISTRATION_GROUP => 'F', WIZARD_PERSONNEL_DEPARTMENT_GROUP => 'F'); $arTaskIDs = array(); $dbRes = CTask::GetList(array(), array('MODULE_ID' => 'fileman', 'SYS' => 'Y', 'LETTER' => implode('|', $arAccessRights), 'BINDING' => 'module')); while ($arRes = $dbRes->Fetch()) { $arTaskIDs[$arRes['LETTER']] = $arRes['ID']; } $arTasksForModule = array(); foreach ($arAccessRights as $group => $letter) { $APPLICATION->SetGroupRight('fileman', $group, $letter); $arTasksForModule[$group] = array('ID' => $arTaskIDs[$letter]); } CGroup::SetTasksForModule('fileman', $arTasksForModule);
} } $arSectProperty_LNS = array(); $arUserFields = $GLOBALS["USER_FIELD_MANAGER"]->GetUserFields("IBLOCK_".$arCurrentValues["IBLOCK_ID"]."_SECTION"); foreach($arUserFields as $FIELD_NAME=>$arUserField) if($arUserField["USER_TYPE"]["BASE_TYPE"]=="string") $arSectProperty_LNS[$FIELD_NAME] = $arUserField["LIST_COLUMN_LABEL"]? $arUserField["LIST_COLUMN_LABEL"]: $FIELD_NAME; $arAscDesc = array( "asc" => GetMessage("IBLOCK_SORT_ASC"), "desc" => GetMessage("IBLOCK_SORT_DESC"), ); $arUGroupsEx = Array(); $dbUGroups = CGroup::GetList($by = "c_sort", $order = "asc"); while($arUGroups = $dbUGroups -> Fetch()) { $arUGroupsEx[$arUGroups["ID"]] = $arUGroups["NAME"]; } $arComponentParameters = array( "GROUPS" => array( "RATING_SETTINGS" => array( "NAME" => GetMessage("T_IBLOCK_DESC_RATING_SETTINGS"), ), "REVIEW_SETTINGS" => array( "NAME" => GetMessage("T_IBLOCK_DESC_REVIEW_SETTINGS"), ), "FILTER_SETTINGS" => array( "NAME" => GetMessage("T_IBLOCK_DESC_FILTER_SETTINGS"),
public function GetAllowableUserGroups($documentType) { $documentType = trim($documentType); if (strlen($documentType) <= 0) { return false; } $iblockId = intval(substr($documentType, strlen("iblock_"))); $arResult = array("Author" => GetMessage("IBD_DOCUMENT_AUTHOR")); $arRes = array(1); if (CIBlock::GetArrayByID($iblockId, "RIGHTS_MODE") === "E") { $obRights = new CIBlockRights($iblockId); foreach ($obRights->GetGroups() as $GROUP_CODE) { if (preg_match("/^G(\\d+)\$/", $GROUP_CODE, $match)) { $arRes[] = $match[1]; } } } else { foreach (CIBlock::GetGroupPermissions($iblockId) as $groupId => $perm) { if ($perm > "R") { $arRes[] = $groupId; } } } $dbGroupsList = CGroup::GetListEx(array("NAME" => "ASC"), array("ID" => $arRes)); while ($arGroup = $dbGroupsList->Fetch()) { $arResult[$arGroup["ID"]] = $arGroup["NAME"]; } return $arResult; }
function SetUserGroups($arGroups) { if (!is_array($arGroups)) { return; } foreach ($arGroups as $groupID) { $groupID = intval($groupID); $rsGroup = CGroup::GetByID($groupID); if (!$rsGroup->Fetch()) { continue; } if (!is_array($this->userGroups)) { $this->userGroups = array(); } $this->userGroups[] = $groupID; } }
?> </textarea><?php } ?> </td> </tr> <?php } ?> <tr> <td><?php echo GetMessage("FLOW_ADMIN"); ?> </td> <td><?php echo SelectBox("WORKFLOW_ADMIN_GROUP_ID", CGroup::GetDropDownList(""), GetMessage("MAIN_NO"), htmlspecialcharsbx($WORKFLOW_ADMIN_GROUP_ID)); ?> </td> </tr> <?php $tabControl->BeginNextTab(); require_once $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/admin/group_rights.php"; $tabControl->Buttons(); ?> <input <?php if ($WORKFLOW_RIGHT < "W") { echo "disabled"; } ?> type="submit" name="Update" value="<?php
?> </table> </td></tr> <? if ($USER->IsAdmin()) { if (CBXFeatures::IsFeatureEnabled('SaleRecurring')) { $tabControl->BeginNextTab(); $arVal = array(); $strVal = (string)Option::get('catalog', 'avail_content_groups'); if ($strVal != '') $arVal = explode(',', $strVal); $dbUserGroups = CGroup::GetList(($b="c_sort"), ($o="asc"), array("ANONYMOUS" => "N")); while ($arUserGroups = $dbUserGroups->Fetch()) { $arUserGroups["ID"] = (int)$arUserGroups["ID"]; if ($arUserGroups["ID"] == 2) continue; ?> <tr> <td width="40%"><label for="user_group_<?php echo $arUserGroups["ID"]; ?> "><?php echo htmlspecialcharsEx($arUserGroups["NAME"]); ?> </label> [<a href="group_edit.php?ID=<?php echo $arUserGroups["ID"];
public static function fillFilterReferenceColumn(&$filterElement, Entity\ReferenceField $field) { if ($field->getRefEntityName() == '\\Bitrix\\Main\\User') { // USER if ($filterElement['value']) { $res = CUser::GetByID($filterElement['value']); $user = $res->fetch(); if ($user) { $username = CUser::FormatName(CSite::GetNameFormat(null, self::getDefaultSiteId()), $user, true, false); $filterElement['value'] = array('id' => $user['ID'], 'name' => $username); } else { $filterElement['value'] = array('id' => $filterElement['value'], 'name' => GetMessage('REPORT_USER_NOT_FOUND')); } } else { $filterElement['value'] = array('id' => ''); } } else { if ($field->getRefEntityName() == '\\Bitrix\\Main\\Group') { // GROUP if ($filterElement['value']) { $res = CGroup::GetByID($filterElement['value']); $group = $res->fetch(); if ($group) { $filterElement['value'] = array('id' => $group['ID'], 'name' => $group['NAME']); } else { $filterElement['value'] = array('id' => $filterElement['value'], 'name' => GetMessage('SALE_REPORT_GROUP_NOT_FOUND')); } } else { $filterElement['value'] = array('id' => ''); } } } }
function GetAccessArrTmp() { $PERM = array(); @(include $_SERVER["DOCUMENT_ROOT"] . "/bitrix/.access.php"); return $PERM; } $arFPermsTmp = GetAccessArrTmp(); $arFPerms = array_key_exists("admin", $arFPermsTmp) ? $arFPermsTmp["admin"] : array(); $arFPerms[$groupId . ""] = "R"; $APPLICATION->SetFileAccessPermission(array(SITE_ID, "/bitrix/admin"), $arFPerms); } LocalRedirect($APPLICATION->GetCurPage() . "?lang=" . LANGUAGE_ID . "&success=Y&crm_imp_url=" . urlencode(($crmUrlScheme == 'ssl://' ? "https" : "http") . "://" . $crmUrlHost . ":" . $crmUrlPort . $crmUrl4Import) . "&crm_url=" . urlencode(($crmUrlScheme == 'ssl://' ? "https" : "http") . "://" . $crmUrlHost . ":" . $crmUrlPort)); } else { if ($createNewSaleUser) { if ($groupId > 0) { $group = new CGroup(); $group->Delete($groupId); } if ($userId > 0) { CUser::Delete($userId); } } } } if ($_SERVER["REQUEST_METHOD"] == "GET" && $_REQUEST["clear_crm_stat"] == "Y" && $saleModulePermissions >= "W" && check_bitrix_sessid()) { if (!isset($_REQUEST["clear_crm_stat_url"])) { COption::SetOptionString("sale", "~crm_integration", ""); } else { $ar = array(); foreach ($arCrmIntegration as $k => $v) { if ($k != $_REQUEST["clear_crm_stat_url"]) {
$iblockXMLFile = WIZARD_SERVICE_RELATIVE_PATH . "/ibexp/ru/sannews.xml"; $iblockCode = "news"; //_".WIZARD_SITE_ID; $iblockType = "news"; $rsIBlock = CIBlock::GetList(array(), array("CODE" => $iblockCode, "TYPE" => $iblockType)); $iblockID = false; if ($arIBlock = $rsIBlock->Fetch()) { $iblockID = $arIBlock["ID"]; if (WIZARD_INSTALL_DEMO_DATA) { CIBlock::Delete($arIBlock["ID"]); $iblockID = false; } } if ($iblockID == false) { $permissions = array("1" => "X", "2" => "R"); $dbGroup = CGroup::GetList($by = "", $order = "", array("STRING_ID" => "content_editor")); if ($arGroup = $dbGroup->Fetch()) { $permissions[$arGroup["ID"]] = 'W'; } $iblockID = WizardServices::ImportIBlockFromXML($iblockXMLFile, $iblockCode, $iblockType, WIZARD_SITE_ID, $permissions); if ($iblockID < 1) { return; } //WizardServices::SetIBlockFormSettings($iblockID, Array ( 'tabs' => GetMessage("W_IB_GROUP_PHOTOG_TAB1").$REAL_PICTURE_PROPERTY_ID.GetMessage("W_IB_GROUP_PHOTOG_TAB2").$rating_PROPERTY_ID.GetMessage("W_IB_GROUP_PHOTOG_TAB3").$vote_count_PROPERTY_ID.GetMessage("W_IB_GROUP_PHOTOG_TAB4").$vote_sum_PROPERTY_ID.GetMessage("W_IB_GROUP_PHOTOG_TAB5").$APPROVE_ELEMENT_PROPERTY_ID.GetMessage("W_IB_GROUP_PHOTOG_TAB6").$PUBLIC_ELEMENT_PROPERTY_ID.GetMessage("W_IB_GROUP_PHOTOG_TAB7"), )); //IBlock fields $iblock = new CIBlock(); $arFields = array("ACTIVE" => "Y", "FIELDS" => array('IBLOCK_SECTION' => array('IS_REQUIRED' => 'N', 'DEFAULT_VALUE' => ''), 'ACTIVE' => array('IS_REQUIRED' => 'Y', 'DEFAULT_VALUE' => 'Y'), 'ACTIVE_FROM' => array('IS_REQUIRED' => 'N', 'DEFAULT_VALUE' => '=today'), 'ACTIVE_TO' => array('IS_REQUIRED' => 'N', 'DEFAULT_VALUE' => ''), 'SORT' => array('IS_REQUIRED' => 'N', 'DEFAULT_VALUE' => ''), 'NAME' => array('IS_REQUIRED' => 'Y', 'DEFAULT_VALUE' => ''), 'PREVIEW_PICTURE' => array('IS_REQUIRED' => 'N', 'DEFAULT_VALUE' => array('FROM_DETAIL' => 'N', 'SCALE' => 'N', 'WIDTH' => '', 'HEIGHT' => '', 'IGNORE_ERRORS' => 'N')), 'PREVIEW_TEXT_TYPE' => array('IS_REQUIRED' => 'Y', 'DEFAULT_VALUE' => 'text'), 'PREVIEW_TEXT' => array('IS_REQUIRED' => 'N', 'DEFAULT_VALUE' => ''), 'DETAIL_PICTURE' => array('IS_REQUIRED' => 'N', 'DEFAULT_VALUE' => array('SCALE' => 'N', 'WIDTH' => '', 'HEIGHT' => '', 'IGNORE_ERRORS' => 'N')), 'DETAIL_TEXT_TYPE' => array('IS_REQUIRED' => 'Y', 'DEFAULT_VALUE' => 'text'), 'DETAIL_TEXT' => array('IS_REQUIRED' => 'N', 'DEFAULT_VALUE' => ''), 'XML_ID' => array('IS_REQUIRED' => 'N', 'DEFAULT_VALUE' => ''), 'CODE' => array('IS_REQUIRED' => 'N', 'DEFAULT_VALUE' => ''), 'TAGS' => array('IS_REQUIRED' => 'N', 'DEFAULT_VALUE' => '')), "CODE" => $iblockCode, "XML_ID" => $iblockCode, "NAME" => $iblock->GetArrayByID($iblockID, "NAME")); $iblock->Update($iblockID, $arFields); } else { $arSites = array(); $db_res = CIBlock::GetSite($iblockID);
} if ($templateID === false) { //Get default template if templateID not set $obTemplate = CSite::GetTemplateList($site); while ($arSiteTemplate = $obTemplate->Fetch()) { if (strlen($arSiteTemplate["CONDITION"]) <= 0) { $templateID = $arSiteTemplate["TEMPLATE"]; break; } } } //default edit groups - need to limit access $edit_groups = explode(",", COption::GetOptionString('fileman', 'default_edit_groups', '')); $arGroupList = array(); $arEditGroups = array(); $gr = CGroup::GetList($v1 = "sort", $v2 = "asc", array("ACTIVE" => "Y", "ADMIN" => "N", "ANONYMOUS" => "N")); while ($group = $gr->Fetch()) { $arGroupList[$group["ID"]] = $group; if (in_array($group["ID"], $edit_groups)) { $arEditGroups[$group["ID"]] = $group["ID"]; } } $bAdmin = $USER->CanDoFileOperation("fm_edit_permission", array($site, $path)); $strWarning = ""; //Check post values if ($_SERVER["REQUEST_METHOD"] == "POST" && isset($_REQUEST["save"])) { CUtil::JSPostUnescape(); $fileName = isset($_REQUEST["fileName"]) ? $_REQUEST["fileName"] : ""; $pageTitle = isset($_REQUEST["pageTitle"]) ? $_REQUEST["pageTitle"] : ""; $editAfterSave = isset($_REQUEST["editAfterSave"]) && $_REQUEST["editAfterSave"] == "Y"; $addToMenu = isset($_REQUEST["addToMenu"]) && $_REQUEST["addToMenu"] == "Y";
return; } $group = new CGroup(); $arFields = array("ACTIVE" => "Y", "C_SORT" => 3, "NAME" => GetMessage("REGISTERED_GROUP_NAME"), "STRING_ID" => "REGISTERED_USERS"); $groupID = $group->Add($arFields); if ($groupID > 0) { COption::SetOptionString("main", "new_user_registration_def_group", $groupID); if ($editProfileTask) { CGroup::SetTasks($groupID, array($editProfileTask), true); } } //Control panel users $dbResult = CGroup::GetList($by, $order, array("STRING_ID" => "CONTROL_PANEL_USERS")); $arGroup = $dbResult->Fetch(); if (!$arGroup) { $group = new CGroup(); $arFields = array("ACTIVE" => "Y", "C_SORT" => 4, "NAME" => GetMessage("CONTROL_PANEL_GROUP_NAME"), "STRING_ID" => "CONTROL_PANEL_USERS"); $groupID = $group->Add($arFields); if ($groupID > 0) { DemoSiteUtil::SetFilePermission(array("s1", "/bitrix/admin"), array($groupID => "R")); if ($editProfileTask) { CGroup::SetTasks($groupID, array($editProfileTask), true); } } } else { $groupID = $arGroup["ID"]; } if ($groupID > 0 && !strlen(COption::GetOptionString("main", "show_panel_for_users", ""))) { COption::SetOptionString("main", "show_panel_for_users", serialize(array("G" . $groupID))); } //Options
/** * @param $documentType * @param bool $withExtended * @return array|bool */ public function GetAllowableUserGroups($documentType, $withExtended = false) { $documentType = trim($documentType); if (strlen($documentType) <= 0) { return false; } $iblockId = intval(substr($documentType, strlen("iblock_"))); $result = array("Author" => GetMessage("IBD_DOCUMENT_AUTHOR")); $groupsId = array(1); $extendedGroupsCode = array(); if (CIBlock::getArrayByID($iblockId, "RIGHTS_MODE") === "E") { $rights = new CIBlockRights($iblockId); foreach ($rights->getGroups() as $iblockGroupCode) { if (preg_match("/^G(\\d+)\$/", $iblockGroupCode, $match)) { $groupsId[] = $match[1]; } else { $extendedGroupsCode[] = $iblockGroupCode; } } } else { foreach (CIBlock::getGroupPermissions($iblockId) as $groupId => $perm) { if ($perm > "R") { $groupsId[] = $groupId; } } } $groupsIterator = CGroup::getListEx(array("NAME" => "ASC"), array("ID" => $groupsId)); while ($group = $groupsIterator->fetch()) { $result[$group["ID"]] = $group["NAME"]; } if ($withExtended && $extendedGroupsCode) { foreach ($extendedGroupsCode as $groupCode) { $result['group_' . $groupCode] = CBPHelper::getExtendedGroupName($groupCode); } } return $result; }
protected function execute(InputInterface $input, OutputInterface $output) { $file = $input->getArgument('file'); if (!file_exists($file) || !($fh = fopen($file, 'r'))) { $output->writeln('<error>Can\'t read data from file</error>'); return null; } //выбираем группу $group = 0; $res = \CGroup::GetList($by = '', $order = '', ['STRING_ID' => 'totaldict_chairman_experts']); if ($ob = $res->Fetch()) { $group = $ob['ID']; } //выбираем список статусов $statusList = []; $rsData = \CUserTypeEntity::GetList([], ['ENTITY_ID' => 'USER', 'FIELD_NAME' => 'UF_TD_ORG_STATUS']); if ($fob = $rsData->GetNext()) { $ar = ['newby' => 'НОВИЧКИ', 'pretty_boy' => 'КРАСАВЧИКИ', 'catching' => 'ДОГОНЯЮЩИЕ', 'redneck' => 'ДЕРЕВНИ']; $res = \CUserFieldEnum::GetList([], ['USER_FIELD_ID' => $fob['ID']]); while ($ob = $res->Fetch()) { if (empty($ar[$ob['XML_ID']])) { continue; } $statusList[$ar[$ob['XML_ID']]] = $ob['ID']; } } //список стран для заполнения $countries = GetCountryArray(); $countries = array_combine($countries['reference'], $countries['reference_id']); $currentStatus = null; while (($data = fgetcsv($fh)) !== false) { //если заполнена только вторая колонка то это статус if (empty($data[1]) && !empty($data[0]) && isset($statusList[$data[0]])) { $currentStatus = $statusList[$data[1]]; continue; } //массив для загрузки данных пользователя $arLoad = ['ACTIVE' => 'Y', 'PERSONAL_COUNTRY' => isset($countries['Россия']) ? $countries['Россия'] : null, 'PERSONAL_CITY' => $data[0], 'LAST_NAME' => $data[1], 'WORK_POSITION' => $data[3], 'PERSONAL_MOBILE' => $data[4], 'PERSONAL_STREET' => $data[6], 'PERSONAL_WWW' => $data[8], 'PASSWORD' => 'Test,user,passwr0d', 'CONFIRM_PASSWORD' => 'Test,user,passwr0d', 'UF_TD_ORG_STATUS' => $currentStatus, 'GROUP_ID' => [2, $group]]; //пробуем разбить email if (strpos($data[5], ',')) { $explode = array_map('trim', explode(',', $data[5])); $arLoad['EMAIL'] = $explode[0]; unset($explode[0]); $arLoad['PERSONAL_NOTES'] = implode(', ', $explode); } elseif (strpos($data[5], 'и')) { $explode = array_map('trim', explode('и', $data[5])); $arLoad['EMAIL'] = $explode[0]; unset($explode[0]); $arLoad['PERSONAL_NOTES'] = implode(', ', $explode); } elseif (strpos($data[5], ';')) { $explode = array_map('trim', explode(';', $data[5])); $arLoad['EMAIL'] = $explode[0]; unset($explode[0]); $arLoad['PERSONAL_NOTES'] = implode(', ', $explode); } elseif (strpos($data[5], ' ')) { $explode = array_map('trim', explode(' ', $data[5])); $arLoad['EMAIL'] = $explode[0]; unset($explode[0]); $arLoad['PERSONAL_NOTES'] = implode(', ', $explode); } else { $arLoad['EMAIL'] = trim($data[5]); } //пробуем разбить фамилию и имя if (strpos($data[2], ' ')) { $explode = explode(' ', trim($data[2])); $arLoad['NAME'] = $explode[0]; $arLoad['SECOND_NAME'] = $explode[1]; } else { $arLoad['NAME'] = trim($data[2]); } //пробуем завести дату в базу if (($time = strtotime($data[7])) !== false) { $arLoad['PERSONAL_BIRTHDAY'] = ConvertTimeStamp($time, 'SHORT', 'ru'); } //пробуем найти страну, чтобы привязать пользователя к городу $country = \bxpimple\Locator::$item->get('countryFinder')->mergeFilterWith(['NAME' => 'Россия'])->one(); if ($country) { //если нашли страну, то пробуем найти и город $city = \bxpimple\Locator::$item->get('cityFinder')->mergeFilterWith(['NAME' => trim($data[0]), 'PROPERTY_TOTALDICT_GEO_CITIES_COUNTRY' => $country->getAttribute('ID')->getValue()])->one(); if ($city) { //если нашли город, то привязываем пользователя $arLoad['UF_TD_CITY_IB'] = $city->getAttribute('ID')->getValue(); } } //задаем логин, по умолчанию используем email $arLoad['LOGIN'] = $arLoad['EMAIL']; //пробуем найти пользователя по его логину $user = new \CUser(); $res = \CUser::GetList($by = '', $order = '', ['LOGIN_EQUAL' => $arLoad['LOGIN']]); if ($ob = $res->Fetch()) { $arGroups = \CUser::GetUserGroup($ob['ID']); if (is_array($arGroups)) { $arLoad['GROUP_ID'] = array_unique(array_merge($arLoad['GROUP_ID'], $arGroups)); } //обновляем if (!$user->Update($ob['ID'], $arLoad)) { $output->writeln('<error>User ' . $arLoad['LOGIN'] . ' error: ' . $user->LAST_ERROR . '</error>'); } else { $output->writeln('<info>User ' . $arLoad['LOGIN'] . ' updated</info>'); } } else { //создаем нового if (!$user->Add($arLoad)) { $output->writeln('<error>User ' . $arLoad['LOGIN'] . ' error: ' . $user->LAST_ERROR . '</error>'); } else { $output->writeln('<info>New user ' . $arLoad['LOGIN'] . ' added</info>'); } } } fclose($fh); }
/** * Shows data form in admin part when you edit or add usertype. * @param bool $arUserField * @param string $arHtmlControl * @param bool $bVarsFromForm * @return string */ function GetSettingsHTML($arUserField = false, $arHtmlControl, $bVarsFromForm) { if (!CModule::IncludeModule("vote")) return ''; $value = ""; if($bVarsFromForm) $value = $GLOBALS[$arHtmlControl["NAME"]]["CHANNEL_ID"]; elseif(is_array($arUserField)){ $value = $arUserField["SETTINGS"]["CHANNEL_ID"]; $GLOBALS[$arHtmlControl["NAME"]]["NOTIFY"] = $arUserField["SETTINGS"]["NOTIFY"]; } $value = (!empty($value) ? intval($value) : "add"); $db_res = CVoteChannel::GetList($by = "", $order = "", array("ACTIVE" => "Y"), $is_filtered); $arVoteChannels = array("reference" => array(GetMessage("V_NEW_CHANNEL")), "reference_id" => array("add")); if ($db_res && $res = $db_res->Fetch()) { do { $arVoteChannels["reference"][] = $res["TITLE"]; $arVoteChannels["reference_id"][] = $res["ID"]; } while ($res = $db_res->Fetch()); } ob_start(); ?> <tr> <td><?php echo GetMessage("V_CHANNEL_ID_COLON"); ?> </td> <td><?php echo str_replace("<select", "<select onchange='if(this.value!=\"add\"){BX.hide(BX(\"channel_create\"));BX.show(this.nextSibling);}" . "else{BX(\"channel_create\").style.display=\"\";BX.hide(this.nextSibling);}' ", SelectBoxFromArray($arHtmlControl["NAME"] . "[CHANNEL_ID]", $arVoteChannels, $value)); ?> <a style="margin-left: 1em;" href="" rel="/bitrix/admin/vote_channel_edit.php?ID=#id#" <? ?>onmousedown="this.href=this.rel.replace('#id#',this.previousSibling.value);"><?php echo GetMessage("V_CHANNEL_ID_EDIT"); ?> </a></td> </tr> <tbody id="channel_create" style="<?if ($value != "add") {?>display:none;<?}?>"> <tr class="adm-detail-required-field"> <td class="adm-detail-content-cell-l" width="40%"><?php echo GetMessage("V_CHANNEL_ID_TITLE"); ?> </td> <td class="adm-detail-content-cell-r" width="60%"><input type="text" name="<?php echo $arHtmlControl["NAME"]; ?> [CHANNEL_TITLE]" <? ?>value="<?php echo htmlspecialcharsbx($GLOBALS[$arHtmlControl["NAME"]]["CHANNEL_TITLE"]); ?> " /></td> </tr> <tr class="adm-detail-required-field"> <td class="adm-detail-content-cell-l"><?php echo GetMessage("V_CHANNEL_ID_SYMBOLIC_NAME"); ?> </td> <td class="adm-detail-content-cell-r"><input type="text" name="<?php echo $arHtmlControl["NAME"]; ?> [CHANNEL_SYMBOLIC_NAME]" <? ?>value="<?php echo htmlspecialcharsbx($GLOBALS[$arHtmlControl["NAME"]]["CHANNEL_SYMBOLIC_NAME"]); ?> " /></td> </tr> <tr> <td class="adm-detail-content-cell-l"> </td> <td class="adm-detail-content-cell-r"><input type="checkbox" name="<?php echo $arHtmlControl["NAME"]; ?> [CHANNEL_USE_CAPTCHA]" <? ?>id="CHANNEL_USE_CAPTCHA" <?if ($GLOBALS[$arHtmlControl["NAME"]]["CHANNEL_USE_CAPTCHA"] == "Y"){?> checked <?} ?>value="Y" /> <label for="CHANNEL_USE_CAPTCHA"><?php echo GetMessage("V_CHANNEL_ID_USE_CAPTCHA"); ?> </label></td> </tr><? $db_res = CGroup::GetList($by = "sort", $order = "asc", Array("ADMIN" => "N")); while ($group = $db_res->GetNext()) { if($bVarsFromForm) $value = $GLOBALS[$arHtmlControl["NAME"]]["GROUP_ID"][$group["ID"]]; else $value = ($group["ID"] == 2 ? 1 : ($group["ID"] == 1 ? 4 : 2)); ?> <tr> <td class="adm-detail-content-cell-l"><?php echo $group["NAME"] . ":"; ?> </td> <td class="adm-detail-content-cell-r"><?php echo SelectBoxFromArray("GROUP_ID[" . $group["ID"] . "]", $GLOBALS["aVotePermissions"], $value); ?> </td> </tr><? } ?> </tbody> <? if($bVarsFromForm) { $GLOBALS[$arHtmlControl["NAME"]]['UNIQUE'] = is_array($GLOBALS[$arHtmlControl["NAME"]]['UNIQUE']) ? $GLOBALS[$arHtmlControl["NAME"]]['UNIQUE'] : array(); $uniqType = 0; foreach ($GLOBALS[$arHtmlControl["NAME"]]['UNIQUE'] as $res) $uniqType |= $res; } else { $uniqType = ($arUserField["SETTINGS"]["UNIQUE"] ? $arUserField["SETTINGS"]["UNIQUE"] : 13); if (is_array($arUserField["SETTINGS"]["UNIQUE"])) { foreach ( $arUserField["SETTINGS"]["UNIQUE"] as $res) { $uniqType |= $res; } $uniqType += 5; } $uniqType -=5; } ?> <script language="javascript"> function __utch(show) { if (BX("UNIQUE_TYPE_IP").checked) BX.show(BX("DELAY_TYPE"), ""); else BX.hide(BX("DELAY_TYPE")); var show = BX("UNIQUE_TYPE_USER_ID").checked, res = BX("UNIQUE_TYPE_USER_ID_NEW"); res.disabled = !show; if (!!show) BX.show(res.parentNode.parentNode, ""); else BX.hide(res.parentNode.parentNode); } </script> <tr> <td class="adm-detail-content-cell-l adm-detail-valign-top" width="40%"><?php echo GetMessage("VOTE_NOTIFY"); ?> </td> <td class="adm-detail-content-cell-r" width="60%"><? $GLOBALS[$arHtmlControl["NAME"]]["NOTIFY"] = ( $GLOBALS[$arHtmlControl["NAME"]]["NOTIFY"] != "I" && $GLOBALS[$arHtmlControl["NAME"]]["NOTIFY"] != "Y" ? "N" : $GLOBALS[$arHtmlControl["NAME"]]["NOTIFY"]); if (IsModuleInstalled("im")){?> <?php echo InputType("radio", $arHtmlControl["NAME"] . "[NOTIFY]", "I", $GLOBALS[$arHtmlControl["NAME"]]["NOTIFY"], false, GetMessage("VOTE_NOTIFY_IM")); ?> <br /><? } else { $GLOBALS[$arHtmlControl["NAME"]]["NOTIFY"] = ($GLOBALS[$arHtmlControl["NAME"]]["NOTIFY"] == "I" ? "N" : $GLOBALS[$arHtmlControl["NAME"]]["NOTIFY"]); }?> <?php echo InputType("radio", $arHtmlControl["NAME"] . "[NOTIFY]", "Y", $GLOBALS[$arHtmlControl["NAME"]]["NOTIFY"], false, GetMessage("VOTE_NOTIFY_EMAIL")); ?> <br /> <?php echo InputType("radio", $arHtmlControl["NAME"] . "[NOTIFY]", "N", $GLOBALS[$arHtmlControl["NAME"]]["NOTIFY"], false, GetMessage("VOTE_NOTIFY_N")); ?> <? ?></td> </tr> <tr> <td class="adm-detail-content-cell-l adm-detail-valign-top"><?php echo GetMessage("V_UNIQUE"); ?> </td> <td class="adm-detail-content-cell-r"> <? if (IsModuleInstalled('statistic')) { ?> <input type="checkbox" name="<?php echo $arHtmlControl["NAME"]; ?> [UNIQUE][]" id="UNIQUE_TYPE_SESSION" value="1" <?php echo $uniqType & 1 ? " checked" : ""; ?> /> <label for="UNIQUE_TYPE_SESSION"><?php echo GetMessage("V_UNIQUE_SESSION"); ?> </label><br /> <? } ?> <input type="checkbox" name="<?php echo $arHtmlControl["NAME"]; ?> [UNIQUE][]" id="UNIQUE_TYPE_COOKIE" value="2" <?php echo $uniqType & 2 ? " checked" : ""; ?> /> <label for="UNIQUE_TYPE_COOKIE"><?php echo GetMessage("V_UNIQUE_COOKIE_ONLY"); ?> </label><br /> <input type="checkbox" name="<?php echo $arHtmlControl["NAME"]; ?> [UNIQUE][]" id="UNIQUE_TYPE_IP" onclick="__utch()" value="4" <? ?><?php echo $uniqType & 4 ? " checked" : ""; ?> /> <label for="UNIQUE_TYPE_IP"><?php echo GetMessage("V_UNIQUE_IP_ONLY"); ?> </label><br /> <input type="checkbox" name="<?php echo $arHtmlControl["NAME"]; ?> [UNIQUE][]" id="UNIQUE_TYPE_USER_ID" onclick="__utch();" value="8" <? ?><?php echo $uniqType & 8 ? " checked" : ""; ?> /> <label for="UNIQUE_TYPE_USER_ID"><?php echo GetMessage("V_UNIQUE_USER_ID_ONLY"); ?> </label><br /> </td> </tr> <tr> <td class="adm-detail-content-cell-l" width="40%"> </td> <td class="adm-detail-content-cell-r" width="60%"><input type="checkbox" name="<?php echo $arHtmlControl["NAME"]; ?> [UNIQUE][]" id="UNIQUE_TYPE_USER_ID_NEW" value="16" <? ?><?php echo $uniqType & 16 ? " checked " : ""; ?> <? ?><?php echo $uniqType & 8 ? "" : " disabled"; ?> /> <label for="UNIQUE_TYPE_USER_ID_NEW"><?php echo GetMessage("V_UNIQUE_USER_ID_NEW"); ?> </label> </td> </tr> <? if($bVarsFromForm) $value = $GLOBALS[$arHtmlControl["NAME"]]["UNIQUE_IP_DELAY"]; else $value = (is_array($arUserField) ? $arUserField["SETTINGS"]["UNIQUE_IP_DELAY"] : array("DELAY" => "10", "DELAY_TYPE" => "D")); ?> <tr id="DELAY_TYPE"> <td class="adm-detail-content-cell-l" width="40%"><?php echo GetMessage("V_UNIQUE_IP_DELAY"); ?> </td> <td class="adm-detail-content-cell-r" width="60%"> <input type="text" name="<?php echo $arHtmlControl["NAME"]; ?> [UNIQUE_IP_DELAY][DELAY]" value="<?php echo htmlspecialcharsbx($value["DELAY"]); ?> " /> <?php echo SelectBoxFromArray($arHtmlControl["NAME"] . "[UNIQUE_IP_DELAY][DELAY_TYPE]", array("reference_id" => array("S", "M", "H", "D"), "reference" => array(GetMessage("V_SECONDS"), GetMessage("V_MINUTES"), GetMessage("V_HOURS"), GetMessage("V_DAYS"))), $value["DELAY_TYPE"]); ?> <script type="text/javascript"> BX.ready(function(){ if (!!document.forms.post_form.MULTIPLE) BX.hide(document.forms.post_form.MULTIPLE.parentNode.parentNode); __utch(); }); </script> </td> </tr> <? return ob_get_clean(); }
?> <sup>1)</sup></td> </tr> <?php $arCurProductGroups = array(); $dbProductGroups = CCatalogProductGroups::GetList(array(), array("PRODUCT_ID" => $ID), false, false, array("ID", "GROUP_ID", "ACCESS_LENGTH", "ACCESS_LENGTH_TYPE")); while ($arProductGroup = $dbProductGroups->Fetch()) { $arCurProductGroups[intval($arProductGroup["GROUP_ID"])] = array(intval($arProductGroup["ACCESS_LENGTH"]), $arProductGroup["ACCESS_LENGTH_TYPE"]); } $arAvailContentGroups = array(); $availContentGroups = COption::GetOptionString("catalog", "avail_content_groups"); if (strlen($availContentGroups) > 0) { $arAvailContentGroups = explode(",", $availContentGroups); } $bNoAvailGroups = true; $dbGroups = CGroup::GetList($b = "c_sort", $o = "asc", array("ANONYMOUS" => "N")); while ($arGroup = $dbGroups->Fetch()) { $arGroup["ID"] = intval($arGroup["ID"]); if ($arGroup["ID"] == 2 || !in_array($arGroup["ID"], $arAvailContentGroups)) { continue; } if ($bVarsFromForm) { if (isset(${"CAT_USER_GROUP_ID_" . $arGroup["ID"]}) && ${"CAT_USER_GROUP_ID_" . $arGroup["ID"]} == "Y") { $arCurProductGroups[$arGroup["ID"]] = array(intval(${"CAT_ACCESS_LENGTH_" . $arGroup["ID"]}), ${"CAT_ACCESS_LENGTH_TYPE_" . $arGroup["ID"]}); } elseif (array_key_exists($arGroup["ID"], $arCurProductGroups)) { unset($arCurProductGroups[$arGroup["ID"]]); } } $bNoAvailGroups = false; ?> <tr>