/**
  * Default action, will forward, or show start page
  */
 public function indexAction()
 {
     Zend_Layout::getMvcInstance()->setLayout("index");
     $categoriesModel = new Model_DbTable_PagesCategories();
     $pagesModel = new Model_DbTable_Pages();
     $category = $categoriesModel->fetchRow($categoriesModel->select()->where("name = ?", "Пресса")->where("parent_id IS NULL"));
     $categories = $category->findDependentRowset("Model_DbTable_PagesCategories");
     foreach ($categories as $category) {
         switch ($category->name) {
             case 'Новости':
                 $news = $category;
                 break;
             case 'Акции':
                 $stocks = $category;
                 break;
             case 'Статьи':
                 $posts = $category;
                 break;
         }
     }
     if (isset($posts)) {
         $this->view->post = $pagesModel->fetchRow($pagesModel->random()->where("category_id = ?", $posts->id));
     }
     if (isset($news)) {
         $this->view->news = $pagesModel->fetchRow($pagesModel->select()->where("category_id = ?", $news->id)->order("timestamp DESC"));
     }
     if (isset($stocks)) {
         $this->view->stocks = $pagesModel->fetchRow($pagesModel->select()->where("category_id = ?", $stocks->id)->order("timestamp DESC"));
     }
     $forumModel = new Model_DbTable_Forum();
     $this->view->forum = new StdClass();
     $this->view->forum->answer = $forumModel->fetchRow($forumModel->select()->order("timestamp DESC")->where("parent_id IS NOT NULL"));
     $this->view->forum->question = $this->view->forum->answer->findParentRow("Model_DbTable_Forum");
 }
 public function editAction()
 {
     if (!Zend_Auth::getInstance()->hasIdentity()) {
         throw new Zend_Exception("You cant edit this item");
     }
     $id = $this->getRequest()->getParam("id");
     $type = $this->getRequest()->getParam("type");
     $from = $this->getRequest()->getParam("from");
     $this->view->type = $type;
     $this->view->from = $from;
     $categoriesModel = new Model_DbTable_PagesCategories();
     $categories = $categoriesModel->getMedia();
     $pagesModel = new Model_DbTable_Pages();
     if ($id) {
         $page = $pagesModel->find($id)->current();
     } elseif ($this->getRequest()->isPost() && isset($categories[$type]) || !$this->getRequest()->isPost()) {
         $page = $pagesModel->createRow();
         $page->category_id = $categories[$type]->id;
     } elseif ($this->getRequest()->getParam("parent_id")) {
         $page = $pagesModel->createRow();
         $page->category_id = $this->getRequest()->getParam("parent_id");
     } else {
         throw new Zend_Exception("Selected type not available");
     }
     if (!$page) {
         throw new Zend_Exception("Page isn't found");
     }
     $form = Model_Static_Loader::loadForm("page");
     if ($this->getRequest()->isPost() && $form->isValid($_POST)) {
         $values = $form->getValues();
         unset($values["thumb"]);
         foreach ($values as $key => $val) {
             $page->{$key} = $val;
         }
         if ($type != "posts") {
             // upload files
             if (isset($_FILES["thumb"]) && $_FILES["thumb"]["size"]) {
                 $filename = date("Ymd_His") . $_FILES["thumb"]["name"];
                 if (!$type) {
                     $type = "common";
                 }
                 move_uploaded_file($_FILES['thumb']['tmp_name'], $_SERVER["DOCUMENT_ROOT"] . "/files/" . $type . "/" . $filename);
                 $page->thumb = "/files/" . $type . "/" . $filename;
             }
         }
         $page->save();
         switch ($page->category_id) {
             case 4:
                 $url = "/sections/post?id={$page->id}";
                 break;
             case 3:
             case 2:
                 $url = "/sections/news?id={$page->id}";
                 break;
             case 7:
                 $url = "/sections/pipeline/";
                 break;
         }
         $this->_redirect($url);
         exit;
     }
     $this->view->page = $page;
 }