/** * Если для даннго типа контета существует свой именованный маршрут, * возвращает его имя. Иначе вовзращает имя стандартного маршрута. * @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'; } }
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; }
/** * Меняет значение поля для правила * @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; } }
/** * Составляет список полей, доступных для сортировки * @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); }
/** * Формирует массив, используемый для последующей генерации кода для * 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; }
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; }