public function downloadsAction() { $request = $this->getRequest(); if (!JO_Session::get('user_id')) { JO_Session::set('msg_error', $this->translate('You must be logged to view your downloads')); $this->redirect(WM_Router::create($request->getBaseUrl() . '?controller=users&action=login')); } $this->getLayout()->meta_title = $this->translate('Downloads'); $this->getLayout()->meta_description = $this->translate('Downloads'); if (is_numeric($request->getParam('download_id'))) { if ($request->getParam('certificate')) { $item = Model_Items::get($request->getParam('download_id')); $order_info = Model_Orders::isBuyed($request->getParam('download_id'), JO_Session::get('user_id'), $request->getParam('oid')); if ($item && $order_info) { $this->noViewRenderer(true); $response = $this->getResponse(); $response->addHeader('Content-Type: text/plain; charset=UTF-8'); $response->addHeader('Content-Disposition: attachment; filename="item_licence(' . $order_info['id'] . ').txt"'); $response->addHeader('Cache-Control: must-revalidate, post-check=0, pre-check=0'); $response->addHeader('Pragma: public'); $response->addHeader("Content-Transfer-Encoding: binary"); $response->addHeader('Expires: 0'); if ($order_info['extended'] == 'true') { $this->view->licence = $this->translate('ONE EXTENDED LICENCE'); } else { $this->view->licence = $this->translate('ONE REGULAR LICENCE'); } $this->view->username = JO_Session::get('username'); $this->view->userfirstlastname = JO_Session::get('firstname') . ' ' . JO_Session::get('lastname'); $this->view->itemname = $order_info['item_name']; $this->view->item_href = WM_Router::create($this->getRequest()->getBaseUrl() . '?controller=items&item_id=' . $order_info['item_id']); $this->view->item_id = $order_info['item_id']; $this->view->order_id = $order_info['id']; $this->view->admin_mail = JO_Registry::get('admin_mail'); if (isset($order_info['main_file_info']) && $order_info['main_file_info']) { $this->view->main_file_info = $order_info['main_file_info']; } $this->view->domain = $request->getDomain(); $response->appendBody(str_replace("\n", "\n\r", $this->view->render('certificate', 'users'))); exit; } else { $this->forward('error', 'error404'); } } else { $item = Model_Items::get($request->getParam('download_id')); if ($item['free_file'] == 'true' || $item['user_id'] == JO_Session::get('user_id') || Model_Orders::isBuyed($item['id'], JO_Session::get('user_id'))) { if (file_exists(BASE_PATH . '/uploads' . $item['main_file']) && is_file(BASE_PATH . '/uploads' . $item['main_file'])) { $this->noViewRenderer(true); $response = $this->getResponse(); $response->addHeader('Content-Type: application/zip'); $response->addHeader('Content-Disposition: attachment; filename="' . $item['main_file_name'] . '"'); $response->addHeader("Content-Length:" . filesize(BASE_PATH . '/uploads' . $item['main_file'])); $response->addHeader('Cache-Control: must-revalidate, post-check=0, pre-check=0'); $response->addHeader('Pragma: public'); $response->addHeader("Content-Transfer-Encoding: binary"); $response->addHeader('Expires: 0'); $response->addHeader('Content-Description: ' . JO_Registry::get('meta_title') . ' Download'); readfile(BASE_PATH . '/uploads' . $item['main_file']); } else { $this->forward('error', 'error404'); } } else { $this->forward('error', 'error404'); } } } if (JO_Session::get('msg_success')) { $this->view->msg_success = JO_Session::get('msg_success'); JO_Session::clear('msg_success'); } if (JO_Session::get('msg_error')) { $this->view->msg_error = JO_Session::get('msg_error'); JO_Session::clear('msg_error'); } $orders = Model_Orders::getAllUserOrders(0, false, 'item_id'); $this->view->orders = array(); $username = JO_Session::get('username'); $this->view->crumbs = array(array('name' => $this->view->translate('Home'), 'href' => $request->getBaseUrl()), array('name' => $username, 'href' => WM_Router::create($request->getBaseUrl() . '?controller=users&username='******'name' => $this->view->translate('Downloads'))); $user = $this->view->users = Model_Users::getByUsername($username); $this->view->author_header = Helper_Author::authorHeader($user); $this->view->rate_link = WM_Router::create($request->getBaseUrl() . '?controller=items&action=rate_item'); if ($orders) { foreach ($orders as $order) { $order['download'] = true; $order['regular_href'] = WM_Router::create($request->getBaseUrl() . '?controller=licence'); $order['licence_href'] = WM_Router::create($request->getBaseUrl() . '?controller=users&action=downloads&item_id=' . $order['item_id'] . '/certificate/1'); $order['download_href'] = WM_Router::create($request->getBaseUrl() . '?controller=users&action=downloads&item_id=' . $order['item_id']); $this->view->orders[] = Helper_Items::returnViewIndex($order, 'downloads'); } } $this->view->children = array(); $this->view->children['header_part'] = 'layout/header_part'; $this->view->children['footer_part'] = 'layout/footer_part'; }