/** * 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"); }
/** * The default action - show the home page */ public function indexAction() { $forumModel = new Model_DbTable_Forum(); $categories = array("faq" => "Вопросы и запросы", "reviews" => "Отзывы и предложения", "complaints" => "Книга жалоб", "all" => "all"); $pages = array("Вопросы и запросы" => 1, "Отзывы и предложения" => 1, "Книга жалоб" => 1, "all" => 1); foreach ($categories as $key => $tab) { if (NULL != ($page = $this->getRequest()->getParam($key))) { $pages[$tab] = intval($page, 10); } } $questions = $forumModel->fetchAll($forumModel->select()->where("parent_id IS NULL")->order("timestamp DESC")); $db = $forumModel->getAdapter(); $this->view->lasts = array("Вопросы и запросы" => $db->fetchOne("SELECT COUNT(*) FROM forum WHERE category='Вопросы и запросы' AND parent_id IS NULL") / $this::PAGE_NUM, "Отзывы и предложения" => $db->fetchOne("SELECT COUNT(*) FROM forum WHERE category='Отзывы и предложения' AND parent_id IS NULL") / $this::PAGE_NUM, "Книга жалоб" => $db->fetchOne("SELECT COUNT(*) FROM forum WHERE category='Книга жалоб' AND parent_id IS NULL") / $this::PAGE_NUM, "all" => count($questions) / $this::PAGE_NUM); $topics = array(); $admin_topics = array(); $i = array("all" => 0); foreach ($questions as $question) { $i[$question->category] = 0; } foreach ($questions as $question) { $answer = $question->findDependentRowset('Model_DbTable_Forum'); if (count($answer) > 0) { if ($i["all"] >= ($pages["all"] - 1) * $this::PAGE_NUM && $i["all"] <= $pages["all"] * $this::PAGE_NUM - 1) { $topics['all'][] = array('question' => $question, 'answers' => $answer); } if ($i[$question->category] >= ($pages[$question->category] - 1) * $this::PAGE_NUM && $i[$question->category] <= $pages[$question->category] * $this::PAGE_NUM - 1) { $topics[$question->category][] = array('question' => $question, 'answers' => $answer); } } elseif (Zend_Auth::getInstance()->hasIdentity()) { if ($i["all"] >= ($pages["all"] - 1) * $this::PAGE_NUM && $i["all"] <= $pages["all"] * $this::PAGE_NUM - 1) { $admin_topics['all'][] = $question; } if ($i[$question->category] >= ($pages[$question->category] - 1) * $this::PAGE_NUM && $i[$question->category] <= $pages[$question->category] * $this::PAGE_NUM - 1) { $admin_topics[$question->category][] = $question; } } $i[$question->category] += 1; $i["all"] += 1; } $this->view->admin_topics = $admin_topics; $this->view->topics = $topics; $this->view->pages = $pages; }