public function setAuthToken($user_id, $auth_token, $type = null, $subj = null) { if (!$type) { $type = cmsRequest::getDeviceType(); } return $this->insert('{users}_auth_tokens', array('ip' => sprintf('%u', ip2long(cmsUser::getIp())), 'access_type' => cmsModel::arrayToYaml(array('type' => $type, 'subj' => $subj)), 'auth_token' => $auth_token, 'user_id' => $user_id)); }
/** * Возвращает массив полей формы, заполнив их значениями переданными в запросе $request * @param cmsRequest $request * @param bool $is_submitted * @param array $item * @return array */ public function parse($request, $is_submitted = false, $item = false) { $result = array(); foreach ($this->structure as $fieldset) { if (!isset($fieldset['childs'])) { continue; } foreach ($fieldset['childs'] as $field) { $name = $field->getName(); // если поле отключено, пропускаем поле if (in_array($name, $this->disabled_fields)) { continue; } $is_array = strpos($name, ':'); $value = $request->get($name, null); if (is_null($value) && $field->hasDefaultValue() && !$is_submitted) { $value = $field->getDefaultValue(); } $old_value = $item ? isset($item[$name]) ? $item[$name] : null : null; $field->setItem($item); $value = $field->store($value, $is_submitted, $old_value); if ($value === false) { continue; } if ($is_array === false) { $result[$name] = $value; } if ($is_array !== false) { $name_parts = explode(':', $name); $result[$name_parts[0]][$name_parts[1]] = $value; } } } return $result; }
private static function loadDeviceType() { $device_type = (string) cmsUser::getCookie('device_type'); if (!$device_type || !in_array($device_type, self::$device_types, true)) { cmsCore::loadLib('mobile_detect.class'); $detect = new Mobile_Detect(); $device_type = $detect->isMobile() ? $detect->isTablet() ? 'tablet' : 'mobile' : 'desktop'; cmsUser::setCookie('device_type', $device_type, 31536000); // на 1 год } self::$device_type = $device_type; }
/** * Выводит окончательный вид страницы в браузер */ public function renderPage() { $config = $this->site_config; $layout = $this->getLayout(); $template_file = $this->getTplFilePath($layout . '.tpl.php'); $device_type = cmsRequest::getDeviceType(); if ($template_file) { if (!$config->min_html) { include $template_file; } if ($config->min_html) { ob_start(); include $template_file; echo html_minify(ob_get_clean()); } } else { cmsCore::error(ERR_TEMPLATE_NOT_FOUND . ': ' . $this->name . ':' . $layout); } }