/** * 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; }