Exemplo n.º 1
0
 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));
 }
Exemplo n.º 2
0
 /**
  * Возвращает массив полей формы, заполнив их значениями переданными в запросе $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;
 }
Exemplo n.º 3
0
 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;
 }
Exemplo n.º 4
0
 /**
  * Выводит окончательный вид страницы в браузер
  */
 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);
     }
 }