Ejemplo n.º 1
0
 /**
  * Если для даннго типа контета существует свой именованный маршрут,
  * возвращает его имя. Иначе вовзращает имя стандартного маршрута.
  * @return string Alias маршрута
  */
 function getNamedRoute()
 {
     $routes = \Base::instance()->get('ALIASES');
     if (isset($routes['frontend_' . $this->table . '_node'])) {
         return 'frontend_' . $this->table . '_node';
     } else {
         return 'frontend_content_node';
     }
 }
Ejemplo n.º 2
0
 public static function dbStructure($table, $additionalFields = array())
 {
     $f3 = \Base::instance();
     $result = array();
     foreach ($f3->get("DB")->exec("EXPLAIN {$table};") as $key => $value) {
         $result[$value["Field"]] = "";
     }
     foreach ($additionalFields as $key => $value) {
         if ($key) {
             $result[$key] = $value;
         } else {
             $result[$value] = "";
         }
     }
     return $result;
 }
Ejemplo n.º 3
0
 /**
  * Меняет значение поля для правила
  * @param type $post
  * @return boolean
  */
 public function update($post)
 {
     $post = $this->isValid($post);
     //		\helpers\Debug::prePrintR($post);
     //	var_dump($post);
     if ($post !== false) {
         $changed = false;
         $node = $this->load($post['id']);
         // Основные поля
         $fields = array('group_id', 'object', 'relation', 'actions', 'active');
         foreach ($fields as $f) {
             if (isset($post[$f])) {
                 $node->{$f} = $post[$f];
                 $changed = true;
             }
         }
         $node->save();
         return $changed;
     } else {
         \Base::instance()->error(406);
         return false;
     }
 }
Ejemplo n.º 4
0
 /**
  * Составляет список полей, доступных для сортировки
  * @param string $table таблица
  * @param boolean $for_admin для админа
  * @return array список названий полей
  */
 static function getSortFieldNameList($table, $for_admin = false)
 {
     $cached_var = 'cached.sort_field_name_list.' . $table;
     $cache = \Cache::instance();
     if (!$cache->exists($cached_var, $list)) {
         $list = array('title', 'created', 'published', 'slug', 'priority');
         if ($for_admin) {
             $list[] = 'moderation';
             $list[] = 'deleted';
             $list[] = 'edited';
         }
         $tableMeta = \models\meta\Meta::getInstance()->getTableMeta($table);
         foreach ($tableMeta->getFields() as $k => $v) {
             if (preg_match('/^af_(.+)$/', $v['Field'], $m)) {
                 $list[] = $v['Field'];
             }
             if (preg_match('/^fko_(.+)$/', $v['Field'], $m)) {
                 $list[] = 'po_' . $m[1];
             }
         }
         \Base::instance()->set($cached_var, $list, 60 * 60 * 24);
     }
     foreach ($list as $v) {
         $list2[] = $table . '.' . $v;
     }
     return array_merge($list, $list2);
 }
Ejemplo n.º 5
0
 /**
  * Формирует массив, используемый для последующей генерации кода для
  * AJAX-редактирования и добавления записей в БД
  * @param string $table
  * @return array Массив с параметрами ajax-переменных
  */
 static function getAjaxAdditionalFields($table)
 {
     $ajax_fields = [];
     $tableMeta = \models\meta\Meta::getInstance()->getTableMeta($table);
     foreach ($tableMeta->getAdditionalFields() as $v) {
         //$type = self::getInputType($v['type']);
         if ($v['input_type'] == 'wysiwyg') {
             // Если есть поле с виз.редактором, подключаем его
             \Base::instance()->set('WYSIWYG.show', true);
         }
         $ajax_fields['af_' . $v['name']] = array('type' => $v['input_type'], 'name' => 'af_' . $v['name'], 'placeHolder' => $v['comment'], 'label' => $v['title']);
     }
     return $ajax_fields;
 }
Ejemplo n.º 6
0
 private function isValid($post, $oneField = false)
 {
     $f3 = \Base::instance();
     $audit = \Audit::instance();
     if (isset($post['email']) && isset($post['password']) || $oneField) {
         $isValid = true;
         foreach ($post as $name => $val) {
             switch (trim($name)) {
                 case 'email':
                     if (empty($val)) {
                         \helpers\Msg::error('user.email.required');
                         $isValid = false;
                         break 2;
                     }
                     if (!$audit->email($val, false)) {
                         \helpers\Msg::error('user.email.incorrect');
                         $isValid = false;
                         break 2;
                     }
                     if ($this->exists($val)) {
                         \helpers\Msg::error('user.email.registered_before');
                         \helpers\Msg::info('user.need_to_login');
                         $isValid = false;
                         break 2;
                     }
                     break;
                 case 'password':
                     if (strlen($val) < 6) {
                         \helpers\Msg::error('user.password.too_short');
                         $isValid = false;
                         break 2;
                     }
                     break;
                     //					case 'skype' :
                     //						if (!empty($val) && !preg_match('/^[a-z][a-z0-9\.,\-_]{5,31}$/i', $val)) {
                     //							\helpers\Msg::error('user.skype.incorrect');
                     //							$isValid = false;
                     //							break 2;
                     //						}
                     //						break;
                 //					case 'skype' :
                 //						if (!empty($val) && !preg_match('/^[a-z][a-z0-9\.,\-_]{5,31}$/i', $val)) {
                 //							\helpers\Msg::error('user.skype.incorrect');
                 //							$isValid = false;
                 //							break 2;
                 //						}
                 //						break;
                 case 'ref':
                     $val = (int) $val;
                     if ($val == 0) {
                         break 2;
                     } else {
                         //								\helpers\Debug::prePrintR($val);
                         $user = $this->getOne($val);
                         //								\helpers\Debug::prePrintR($user);
                         if ($user->id != $val) {
                             \helpers\Msg::error('user.ref.incorrect');
                             $isValid = false;
                             break 2;
                         }
                     }
                     break;
             }
         }
     } else {
         if (!isset($post['email'])) {
             \helpers\Msg::error('user.email.required');
         }
         if (!isset($post['password'])) {
             \helpers\Msg::error('user.password.required');
         }
         $isValid = false;
     }
     return $isValid;
 }