Exemple #1
0
 /**
  * Диспатчер ajax-запросов
  *
  * @param string $action
  * @return JSON
  */
 public function ajax_action($action = NULL)
 {
     $ajax = new Ajax();
     switch ($action) {
         case 'saveItemsTree':
             if (!($menu = menu($param))) {
                 return event('empty');
             }
             if ($this->rebuildItemsTree($this->input->post('items'))) {
                 $ajax->success = TRUE;
                 $ajax->message(t('Структура сохранена!'));
             } else {
                 $ajax->success = FALSE;
                 $ajax->message(t('Не удалось сохранить структуру'), 'error', t('Ошибка'));
             }
             break;
         case 'order':
         default:
             if ($menus = $this->input->post('menus')) {
                 foreach ($menus as $id => $position) {
                     if ($menu = menu($id)) {
                         $menu->update(array('position' => $position));
                     }
                 }
             }
     }
     $ajax->json();
 }
Exemple #2
0
 /**
  * Edit action
  */
 public function edit_action($id = NULL)
 {
     $post = new Post();
     $post->id = $id;
     $post->cache(FALSE);
     if (!$post->find()) {
         return event('404');
     }
     $form = new Form('Post/forms/post');
     $form->object($post);
     $form->elements->title->options->label = t('Редактирование публикации');
     event('post.edit', $post, $form);
     if ($result = $form->result()) {
         $post->object()->extend($result);
         if ($result->delete && access('Post.delete', $post)) {
             if ($post->delete()) {
                 flash_success(t('Пост удалён!'));
                 redirect();
             }
         }
         if ($result->preview) {
             $post->created_date = time();
             $post->aid = $this->user->id;
             $post->preview = TRUE;
             $post->show();
         } else {
             if (Ajax::is() && $this->input->get('autosave')) {
                 $post->update();
                 $ajax = new Ajax();
                 $ajax->message(t('Пост сохранён!', 'Post'));
                 $ajax->send();
             }
             if ($result->draft) {
                 $post->published = 0;
             } elseif ($result->publish) {
                 $post->published = 1;
             }
             if ($post->save()) {
                 if ($post->published) {
                     $link = l($post->getLink());
                     flash_success(t('Пост опубликован!'), NULL, 'growl');
                 } else {
                     $link = l($post->getLink());
                     flash_success(t('Сохранено в черновиках!'), NULL, 'growl');
                 }
                 redirect($post->getLink());
             }
         }
     }
     $form->show();
 }
Exemple #3
0
 /**
  * Ajax интерцептор
  *
  * @param string $action
  * @param mixed $param
  */
 public function admin_ajax($action = 'getLink', $param = NULL)
 {
     $ajax = new Ajax();
     switch ($action) {
         case 'getLink':
             if ($page = page($param)) {
                 $ajax->success = TRUE;
                 $ajax->link = trim($page->getLink(), '/');
             } else {
                 $ajax->success = FALSE;
             }
             break;
         case 'saveDBtree':
             if ($pages = $this->rebuildPagesTree($this->input->post('items'))) {
                 $ajax->success = TRUE;
                 $ajax->message(t('Структура сохранена!'));
             } else {
                 $ajax->success = FALSE;
                 $ajax->message(t('Не удалось сохранить структуру'), 'error', t('Ошибка'));
             }
             break;
     }
     $ajax->json();
 }