Beispiel #1
0
 public function resetCache()
 {
     if (\Cache::instance()->reset()) {
         \helpers\Msg::success('cache.reset.ok');
     } else {
         \helpers\Msg::success('cache.reset.error');
     }
 }
 /**
  * Регистрация нового пользователя с генерацией пароля
  */
 public function registrationGenPass()
 {
     if ($this->user_model->register($this->fw->get('POST'), true) != false) {
         \helpers\Msg::success('user.registration.ok');
         $this->fw->reroute('/' . $this->groups[0]['uri']);
     } else {
         $this->fw->reroute('@reg_get');
     }
 }
Beispiel #3
0
 public function update()
 {
     $this->table = $this->fw->get('PARAMS.table');
     $this->model = \models\Comment::getInstance($this->table);
     if (is_null($this->model->getTable())) {
         $this->fw->error(404);
     } else {
         $this->setAJAXLayout();
         if ($this->model->update(array('id' => $this->fw->get('POST.id'), $this->fw->get('POST.field') => $this->fw->get('POST.value')))) {
             if ($this->fw->get('POST.field') != 'moderation') {
                 \helpers\Msg::success('saved');
             }
         } else {
             \helpers\Msg::error('error');
             $this->fw->error(406);
         }
     }
 }
Beispiel #4
0
 /**
  * Создаёт таблицу для хранения элементов типа контента
  * @param type $table
  * @return boolean
  */
 public function createItemsTable($table)
 {
     if (Meta::getInstance()->exists($table)) {
         $items_table = $table . '__items';
         if (!$this->tableExists($items_table)) {
             $q = $this->getCreateItemTableQuery($table);
             if ($this->db->exec($q) !== false) {
                 //$this->metaWriter->setHasItems($table,true);
                 \helpers\Msg::success('tables.created');
                 return TRUE;
             }
         } else {
             return TRUE;
             //     \helpers\Msg::info('tables.already_exists', array($items_table, $title));
         }
     } else {
         \helpers\Msg::info('tables.content_doesnt_exist', array($table, $title));
         return false;
     }
 }
Beispiel #5
0
 public function create($post)
 {
     if (isset($post['obj']) && !empty($post['obj'])) {
         $obj_model = Base::getInstance($post['obj']);
         $obj = $obj_model->find($post['id']);
         if ($obj && $obj['published'] && isset($post['text']) && !empty($post['text'])) {
             $user_model = User::getInstance();
             $user = $user_model->checkUser();
             $isValid = true;
             $comment = $this->mapper;
             $comment->reset();
             if ($user) {
                 $comment->user_id = $user['id'];
             } else {
                 if (isset($post['name']) && !empty($post['name'])) {
                     $comment->name = $post['name'];
                 } else {
                     \helpers\Msg::error('comments.name.empty');
                     $isValid = false;
                 }
             }
             if ($isValid) {
                 $comment->obj_id = $obj['id'];
                 $comment->text = $post['text'];
                 $comment->ip = \Base::instance()->get('IP');
                 $comment->save();
                 \helpers\Msg::success('comments.created');
                 return true;
             }
         }
     }
     if (!$obj) {
         \helpers\Msg::error('comments.obj.empty');
     }
     if (empty($post['text'])) {
         \helpers\Msg::error('comments.text.empty');
     }
     return false;
 }
 public function create($table)
 {
     $tableMeta = $this->metaWriter->get($table);
     if (!$tableMeta) {
         \helpers\Msg::info('tables.wrong_name', $table);
         \helpers\Msg::error('tables.not_created', 'comments_' . $table);
         return false;
     }
     if ($tableMeta->isCommentable()) {
         \helpers\Msg::info('tables.already_exists', 'comments_' . $table);
         \helpers\Msg::error('tables.not_created', 'comments_' . $table);
         return false;
     }
     $q = $this->getCreateTableQuery($table);
     if ($this->db->exec($q) !== false) {
         $this->metaWriter->updateSettings($table);
         \helpers\Msg::success('tables.created');
         return true;
     }
     $this->db->log();
     \helpers\Msg::error('tables.not_created', 'comments_' . $table);
     return false;
 }
 function deleteField($table, $name)
 {
     if (empty($name) || empty($table)) {
         \helpers\Msg::error('empty_post');
         \helpers\Msg::error('tables.fields.not_deleted');
         return false;
     }
     if (!$this->tablesManager->isValidTableName($table)) {
         \helpers\Msg::warning('tables.wrong_name', $table);
         \helpers\Msg::error('tables.fields.not_deleted');
         return false;
     }
     $fields = $this->getAdditionalFieldsNames($table);
     if (!in_array('af_' . $name, $fields)) {
         \helpers\Msg::warning('tables.fields.not_found');
         \helpers\Msg::error('tables.fields.not_deleted');
         return false;
     }
     $q = "ALTER TABLE `{$table}` DROP `af_{$name}` ";
     if ($this->db->exec($q) !== false) {
         $this->metaWriter->updateFieldList($table);
         \helpers\Msg::success('tables.fields.deleted');
         CacheQuery::getInstance()->reset();
         return true;
     } else {
         if ($this->debugState) {
             \helpers\Msg::warning($this->db->log());
         }
         \helpers\Msg::error('db_error');
     }
     return false;
 }
 /**
  * Creates relation one-to-many
  * @param type $node_table 
  * @param type $cat_table
  * @param type $comment
  * @return boolean True if it's ok
  */
 function createSingle($node, $cat, $comment = '')
 {
     $f3 = \Base::instance();
     $f3->scrub($comment);
     $field = 'fko_' . $cat;
     if (!$this->hasSingle($node, $cat)) {
         $q = "ALTER TABLE `{$node}` " . "ADD `{$field}` INT(11) NOT NULL  COMMENT '{$comment}', " . "ADD INDEX (`{$field}`), " . "ADD FOREIGN KEY (`{$field}`) REFERENCES `{$cat}`(`id`) ON DELETE RESTRICT ON UPDATE RESTRICT;";
         if ($f3->get('db')->exec($q) !== false) {
             $this->metaWriter->updateRelationList($node);
             \helpers\Msg::success('relation.created');
             \Cache::instance()->reset();
             return true;
         } else {
             \helpers\Msg::error($f3->get('db')->log());
             \helpers\Msg::error('relation.not_created');
             return false;
         }
     } else {
         \helpers\Msg::error('relation.not_created');
         \helpers\Msg::warning('relation.already_exists', [$field, $comment]);
         return false;
     }
 }
Beispiel #9
0
 public function update()
 {
     if ($this->has_items && $this->fw->exists('POST.id') && is_numeric($this->fw->get('POST.id'))) {
         $id = (int) $this->fw->get('POST.id');
         // Выясняем id нода, к которому принадлежит item
         $pid = $this->item_model->getPid($id);
         $node = $this->model->get($pid);
         if ($node) {
             if ($this->checkAccess(\models\ACL::ACTION_UPDATE, $node->user_id)) {
                 $params = array('id' => $this->fw->get('POST.id'), $this->fw->get('POST.field') => $this->fw->get('POST.value'));
                 if (!$this->item_model->update($params)) {
                     \helpers\Msg::error('error');
                     $this->fw->error(406);
                 } elseif ($this->is_moderated) {
                     \helpers\Msg::success('saved');
                     $is_moderator = $this->checkAccess(\models\ACL::ACTION_MODERATION, $node->user_id);
                     // Надо ли проверять модератору?
                     if (!$is_moderator) {
                         $this->model->needModeration($pid);
                     }
                     return true;
                 } else {
                     \helpers\Msg::success('saved');
                     return true;
                 }
             } else {
                 // Нет прав на редактирования этого нода
                 \helpers\Msg::error('update_no_rights');
                 $this->fw->error(401);
             }
         } else {
             $this->fw->error(404);
         }
     } else {
         $this->fw->error(406);
         return false;
     }
 }
 public function zvonok()
 {
     parent::show();
     $f3->set('html.head_title', 'Заказ обратного звонка');
     if (!$f3->devoid('POST')) {
         $f3->set('html.page_title', 'Заказ обратного звонка');
         if ($this->isValidRequest($f3->get('POST'))) {
             $f3->set('html.page_title', 'Спасибо за обращение! Ожидайте звонка.');
             $f3->scrub($_POST);
             // Отправляем запрос на почту
             $f3->copy('POST', 'msg');
             $msg = \Template::instance()->render('fsled.ru/blocks/zvonok/mail.html');
             $subj = $f3->get('i18n.mailrequest.new') . ' ' . $f3->get('SITE_URL');
             if (\helpers\Tools::mail($f3->get('email.admin'), $subj, $msg, $f3->get('email.noreply'))) {
                 \helpers\Msg::success('mailrequest.ok');
                 $f3->set('content', $msg);
                 return;
             }
         }
         \helpers\Msg::success('mailrequest.error');
     }
     $this->addForm();
 }
 function deletePlace()
 {
     if (!$this->checkAccess(\models\ACL::ACTION_DELETE)) {
         \helpers\Msg::warning('delete_no_rights');
         $this->fw->error(401);
         return;
     }
     $this->setAJAXLayout();
     if ($this->isModerator() || $this->isAdmin()) {
         if ($this->manager->deletePlace($this->fw->get('PARAMS.name'))) {
             $this->manager->saveConfig();
             \helpers\Msg::success('htmlstaticblock.place.success');
         } else {
             \helpers\Msg::error('htmlstaticblock.place.error');
         }
     } else {
         \helpers\Msg::error('htmlstaticblock.place.error');
     }
     $this->manager->saveConfig($this->fw, 'delete', 'Place');
     $this->printPlacesList();
 }
Beispiel #12
0
 /**
  * Обновляет значение поля для объекта
  * @param type $this->fw
  * @return boolean
  */
 public function update()
 {
     if ($this->fw->exists('POST.id') && is_numeric($this->fw->get('POST.id')) && $this->fw->exists('POST.field')) {
         $id = (int) $this->fw->get('POST.id');
         $one = $this->model->get($id);
         if ($this->checkAccess(\models\ACL::ACTION_UPDATE)) {
             $field = $this->fw->get('POST.field');
             $params = array('id' => $id, $field => $this->fw->get('POST.value'));
             if (!$this->model->update($params)) {
                 \helpers\Msg::error('error');
                 $this->fw->error(406);
             } else {
                 $this->setAJAXLayout();
                 \helpers\Msg::success('saved');
                 return true;
             }
         } else {
             // Нет прав на редактирования
             \helpers\Msg::error('update_no_rights');
             $this->fw->error(401);
         }
     } else {
         $this->fw->error(406);
     }
 }
Beispiel #13
0
 /**
  * Обновляет значение поля с картинкой для объекта
  * @return boolean
  */
 public function updateImageField()
 {
     $this->setAJAXLayout();
     if ($this->fw->exists('PARAMS.id') && is_numeric($this->fw->get('PARAMS.id')) && $this->fw->exists('POST.field')) {
         $id = (int) $this->fw->get('PARAMS.id');
         $node = $this->model->get($id);
         $this->fw->scrub($_POST);
         if ($node) {
             if ($this->checkAccess(\models\ACL::ACTION_UPDATE, $node->user_id)) {
                 // Редактирует модератор?
                 $is_moderator = $this->checkAccess(\models\ACL::ACTION_MODERATION, $one->user_id);
                 $this->fw->scrub($_POST);
                 if (!$this->model->upload($id, $this->fw->get('POST.field'), $this->fw->get('POST.content'), !$is_moderator)) {
                     \helpers\Msg::error('error');
                     $this->fw->error(406);
                 } else {
                     $this->setAJAXLayout();
                     \helpers\Msg::success('saved');
                     return true;
                 }
             } else {
                 // Нет прав на редактирования этого нода
                 \helpers\Msg::warning('update_no_rights');
                 $this->fw->error(401);
             }
         } else {
             $this->fw->error(401);
         }
     } else {
         \helpers\Msg::error('error');
         \helpers\Msg::warning('check_fields');
         $this->fw->error(406);
     }
 }
Beispiel #14
0
 public function update($post)
 {
     if ($this->isValid($post, true)) {
         $this->load($post['id']);
         $fields = ['email', 'password', 'group_id'];
         foreach ($fields as $v) {
             if (isset($post[$v])) {
                 $this->mapper->{$v} = $post[$v];
             }
         }
         $this->mapper->save();
         \helpers\Msg::success('saved');
         return true;
     }
     \helpers\Msg::warning('error');
     return false;
 }
Beispiel #15
0
 /**
  * Добавлет/удаляет элемент из списка допустимых
  */
 public function itemsUpdate()
 {
     if ($this->checkAccess(\models\ACL::ACTION_UPDATE)) {
         $this->setAJAXLayout();
         if ($this->fw->exists('POST.id')) {
             if ($this->fw->get('POST.value') == 1) {
                 $this->meta->createItemsTable($this->table);
                 \Cache::instance()->reset();
                 if ($this->meta->addItem($this->table, $this->fw->get('POST.id'))) {
                     \helpers\Msg::success('saved');
                     \Cache::instance()->reset();
                 } else {
                     \helpers\Msg::error('error');
                 }
             } else {
                 if ($this->meta->deleteItem($this->table, $this->fw->get('POST.id'))) {
                     \helpers\Msg::success('saved');
                     \Cache::instance()->reset();
                 } else {
                     \helpers\Msg::error('error');
                 }
             }
         }
         $this->fw->set('inc', 'components/alerts.html');
     } else {
         // Нет прав на редактирования этого нода
         \helpers\Msg::warning('update_no_rights');
         $this->fw->error(401);
     }
 }
Beispiel #16
0
 public function deleteTable($table)
 {
     if ($this->isValidTableName($table)) {
         if ($this->tableExists($table)) {
             $q = 'DROP TABLE ' . $table;
             if ($this->db->exec($q) !== false) {
                 $this->metaWriter->remove($table);
                 \helpers\Msg::success('tables.removed');
                 return TRUE;
             }
         } else {
             \helpers\Msg::info('tables.does_not_exists', array($table));
         }
     } else {
         \helpers\Msg::info('tables.wrong_name', $table);
     }
     $this->db->log();
     \helpers\Msg::error('tables.not_removed', array($table));
     return FALSE;
 }