/** * Сохраняет опции контроллера * @param string $controller_name * @param array $options * @return boolean */ static function saveOptions($controller_name, $options) { $model = new cmsModel(); $model->filterEqual('name', $controller_name); $model->updateFiltered('controllers', array('options' => $options)); cmsCache::getInstance()->clean('controllers'); return true; }
/** * Сохраняет опции контроллера * @param string $controller_name * @param array $options * @return boolean */ static function saveOptions($controller_name, $options) { $model = new cmsModel(); $model->filterEqual('name', $controller_name); return $model->updateFiltered('controllers', array('options' => $options)); }
/** * Возвращает пользователей групп, для которых переданное правило включено * или установлено в значение $value * * @param string $controller Название компонента * @param string $name Название правила * @param mixed $value Значение правила. Если не передано, значение не учитывается * @param string $subject Субъект правила. Если не передан, то одинаков с компонентом * * @return array Массив пользователей с данными: id, email, nickname, avatar, notify_options, is_online */ static function getRulesGroupMembers($controller, $name, $value = false, $subject = false) { if (!$subject) { $subject = $controller; } $model = new cmsModel(); $rule = $model->filterEqual('controller', $controller)->filterEqual('name', $name)->getItem('perms_rules'); if (!$rule) { return array(); } $model->filterEqual('subject', $subject)->filterEqual('rule_id', $rule['id']); if ($value) { $model->filterEqual('value', $value); } $groups_ids = $model->selectOnly('group_id')->get('perms_users', function ($item, $model) { return $item['group_id']; }, 'group_id'); if (!$groups_ids) { return array(); } return $model->filterIn('group_id', $groups_ids)->selectOnly('user_id', 'id')->joinUser('user_id', array('u.notify_options' => 'notify_options', 'u.email' => 'email', 'u.nickname' => 'nickname', 'u.avatar' => 'avatar'))->get('{users}_groups_members', function ($item, $model) { $item['notify_options'] = cmsModel::yamlToArray($item['notify_options']); $item['is_online'] = cmsUser::userIsOnline($item['id']); return $item; }); }
/** * Уменьшает счетчик загруженных пользователем файлов * @return bool */ public function decreaseFilesCount() { $this->files_count--; $model = new cmsModel(); $model->filterEqual('id', $this->id); return $model->decrement('{users}', 'files_count'); }
private function widgetUpdate($manifest) { $model = new cmsModel(); $model->filterEqual('name', $manifest['package']['name'])->filterEqual('controller', $manifest['package']['controller'])->updateFiltered('widgets', array('title' => $manifest['info']['title'], 'author' => isset($manifest['author']['name']) ? $manifest['author']['name'] : LANG_CP_PACKAGE_NONAME, 'url' => isset($manifest['author']['url']) ? $manifest['author']['url'] : null, 'version' => $manifest['version']['major'] . '.' . $manifest['version']['minor'] . '.' . $manifest['version']['build'])); return 'widgets'; }
static function savePermissions($subject, $perms) { $model = new cmsModel(); foreach ($perms as $rule_id => $values) { if (is_null($values)) { $model->filterEqual('subject', $subject)->filterEqual('rule_id', $rule_id)->deleteFiltered('perms_users'); continue; } foreach ($values as $group_id => $value) { $model->filterEqual('subject', $subject)->filterEqual('rule_id', $rule_id)->filterEqual('group_id', $group_id)->lockFilters(); if (!$value) { $model->deleteFiltered('perms_users'); $model->unlockFilters(); $model->resetFilters(); continue; } $is_exists = $model->getFieldFiltered('perms_users', 'value'); $model->unlockFilters(); if ($is_exists) { $model->updateFiltered('perms_users', array('rule_id' => $rule_id, 'group_id' => $group_id, 'subject' => $subject, 'value' => $value)); } else { $model->insert('perms_users', array('rule_id' => $rule_id, 'group_id' => $group_id, 'subject' => $subject, 'value' => $value)); } } $model->resetFilters(); } }
private function widgetInstalled($manifest_package) { $model = new cmsModel(); return $model->filterEqual('name', $manifest_package['name'])->filterEqual('controller', $manifest_package['controller'])->getFieldFiltered('widgets', 'version'); }