Advertisement
Guest User

news opencart

a guest
Jan 28th, 2015
227
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 10.74 KB | None | 0 0
  1. <?php
  2. class ControllerExtensionNews extends Controller {
  3.     private $error = array();
  4.    
  5.     public function index() {
  6.         $this->language->load('extension/news');
  7.        
  8.         $this->load->model('extension/news');
  9.        
  10.         $this->document->setTitle($this->language->get('heading_title'));
  11.        
  12.         $url = '';
  13.        
  14.         if (isset($this->request->get['page'])) {
  15.             $url .= '&page=' . $this->request->get['page'];
  16.         }
  17.        
  18.         $data['breadcrumbs'] = array();
  19.  
  20.         $data['breadcrumbs'][] = array(
  21.             'text'      => $this->language->get('text_home'),
  22.             'href'      => $this->url->link('common/home', 'token=' . $this->session->data['token'], 'SSL')
  23.         );
  24.  
  25.         $data['breadcrumbs'][] = array(
  26.             'text'      => $this->language->get('heading_title'),
  27.             'href'      => $this->url->link('extension/news', 'token=' . $this->session->data['token'] . $url, 'SSL')
  28.         );
  29.        
  30.         if (isset($this->session->data['success'])) {
  31.             $data['success'] = $this->session->data['success'];
  32.        
  33.             unset($this->session->data['success']);
  34.         } else {
  35.             $data['success'] = '';
  36.         }
  37.  
  38.         if (isset($this->error['warning'])) {
  39.             $data['error'] = $this->error['warning'];
  40.        
  41.             unset($this->error['warning']);
  42.         } else {
  43.             $data['error'] = '';
  44.         }
  45.        
  46.         if (isset($this->request->get['page'])) {
  47.             $page = $this->request->get['page'];
  48.         } else {
  49.             $page = 1;
  50.         }
  51.        
  52.         $url = '';
  53.        
  54.         $filter_data = array(
  55.             'page' => $page,
  56.             'limit' => $this->config->get('config_limit_admin'),
  57.             'start' => $this->config->get('config_limit_admin') * ($page - 1),
  58.         );
  59.        
  60.         $total = $this->model_extension_news->getTotalNews();
  61.        
  62.         $pagination = new Pagination();
  63.         $pagination->total = $total;
  64.         $pagination->page = $page;
  65.         $pagination->limit = $this->config->get('config_limit_admin');
  66.         $pagination->url = $this->url->link('catalog/product', 'token=' . $this->session->data['token'] . $url . '&page={page}', 'SSL');
  67.  
  68.         $data['pagination'] = $pagination->render();
  69.  
  70.         $data['results'] = sprintf($this->language->get('text_pagination'), ($total) ? (($page - 1) * $this->config->get('config_limit_admin')) + 1 : 0, ((($page - 1) * $this->config->get('config_limit_admin')) > ($total - $this->config->get('config_limit_admin'))) ? $total : ((($page - 1) * $this->config->get('config_limit_admin')) + $this->config->get('config_limit_admin')), $total, ceil($total / $this->config->get('config_limit_admin')));
  71.  
  72.         $data['heading_title'] = $this->language->get('heading_title');
  73.        
  74.         $data['text_title'] = $this->language->get('text_title');
  75.         $data['text_short_description'] = $this->language->get('text_short_description');
  76.         $data['text_date'] = $this->language->get('text_date');
  77.         $data['text_action'] = $this->language->get('text_action');
  78.         $data['text_edit'] = $this->language->get('text_edit');
  79.         $data['text_list'] = $this->language->get('text_list');
  80.         $data['text_no_results'] = $this->language->get('text_no_results');
  81.         $data['text_confirm'] = $this->language->get('text_confirm');
  82.        
  83.         $data['button_add'] = $this->language->get('button_add');
  84.         $data['button_delete'] = $this->language->get('button_delete');
  85.        
  86.         $url = '';
  87.        
  88.         if (isset($this->request->get['page'])) {
  89.             $url .= '&page=' . $this->request->get['page'];
  90.         }
  91.        
  92.         $data['add'] = $this->url->link('extension/news/insert', '&token=' . $this->session->data['token'] . $url, 'SSL');
  93.         $data['delete'] = $this->url->link('extension/news/delete', 'token=' . $this->session->data['token'] . $url, 'SSL');
  94.        
  95.         $data['all_news'] = array();
  96.        
  97.         $all_news = $this->model_extension_news->getAllNews($filter_data);
  98.        
  99.         foreach ($all_news as $news) {
  100.             $data['all_news'][] = array (
  101.                 'news_id'           => $news['news_id'],
  102.                 'title'             => $news['title'],
  103.                 'short_description' => $news['short_description'],
  104.                 'date_added'        => date($this->language->get('date_format_short'), strtotime($news['date_added'])),
  105.                 'edit'              => $this->url->link('extension/news/edit', 'news_id=' . $news['news_id'] . '&token=' . $this->session->data['token'] . $url, 'SSL')
  106.             );
  107.         }
  108.        
  109.         $data['header'] = $this->load->controller('common/header');
  110.         $data['column_left'] = $this->load->controller('common/column_left');
  111.         $data['footer'] = $this->load->controller('common/footer');
  112.  
  113.         $this->response->setOutput($this->load->view('extension/news_list.tpl', $data));   
  114.     }
  115.    
  116.     public function edit() {
  117.         $this->language->load('extension/news');
  118.        
  119.         $this->load->model('extension/news');
  120.        
  121.         $this->document->setTitle($this->language->get('heading_title'));
  122.        
  123.         if (($this->request->server['REQUEST_METHOD'] == 'POST') && $this->validate()) {
  124.             $this->model_extension_news->editNews($this->request->get['news_id'], $this->request->post);       
  125.            
  126.             $this->session->data['success'] = $this->language->get('text_success');
  127.                        
  128.             $this->response->redirect($this->url->link('extension/news', 'token=' . $this->session->data['token'], 'SSL'));
  129.         }
  130.        
  131.         $this->form();
  132.     }
  133.    
  134.     public function insert() {
  135.         $this->language->load('extension/news');
  136.        
  137.         $this->load->model('extension/news');
  138.        
  139.         $this->document->setTitle($this->language->get('heading_title'));
  140.        
  141.         if (($this->request->server['REQUEST_METHOD'] == 'POST') && $this->validate()) {
  142.             $this->model_extension_news->addNews($this->request->post);    
  143.            
  144.             $this->session->data['success'] = $this->language->get('text_success');
  145.                        
  146.             $this->response->redirect($this->url->link('extension/news', 'token=' . $this->session->data['token'], 'SSL'));
  147.         }
  148.  
  149.         $this->form();
  150.     }
  151.    
  152.     protected function form() {
  153.         $this->language->load('extension/news');
  154.        
  155.         $this->load->model('extension/news');
  156.        
  157.         $data['breadcrumbs'] = array();
  158.  
  159.         $data['breadcrumbs'][] = array(
  160.             'text'      => $this->language->get('text_home'),
  161.             'href'      => $this->url->link('common/home', 'token=' . $this->session->data['token'], 'SSL'),
  162.             'separator' => false
  163.         );
  164.  
  165.         $data['breadcrumbs'][] = array(
  166.             'text'      => $this->language->get('heading_title'),
  167.             'href'      => $this->url->link('extension/news', 'token=' . $this->session->data['token'], 'SSL'),
  168.             'separator' => ' :: '
  169.         );
  170.        
  171.         if (isset($this->request->get['news_id'])) {
  172.             $data['action'] = $this->url->link('extension/news/edit', '&news_id=' . $this->request->get['news_id'] . '&token=' . $this->session->data['token'], 'SSL');
  173.         } else {
  174.             $data['action'] = $this->url->link('extension/news/insert', '&token=' . $this->session->data['token'], 'SSL');
  175.         }
  176.        
  177.         $data['cancel'] = $this->url->link('extension/news', '&token=' . $this->session->data['token'], 'SSL');
  178.        
  179.         $data['heading_title'] = $this->language->get('heading_title');
  180.        
  181.         $data['text_image'] = $this->language->get('text_image');
  182.         $data['text_title'] = $this->language->get('text_title');
  183.         $data['text_description'] = $this->language->get('text_description');
  184.         $data['text_short_description'] = $this->language->get('text_short_description');
  185.         $data['text_status'] = $this->language->get('text_status');
  186.         $data['text_keyword'] = $this->language->get('text_keyword');
  187.         $data['text_enabled'] = $this->language->get('text_enabled');
  188.         $data['text_disabled'] = $this->language->get('text_disabled');
  189.         $data['text_browse'] = $this->language->get('text_browse');
  190.         $data['text_clear'] = $this->language->get('text_clear');
  191.         $data['text_image_manager'] = $this->language->get('text_image_manager');
  192.        
  193.         $data['button_save'] = $this->language->get('button_save');
  194.         $data['button_cancel'] = $this->language->get('button_cancel');
  195.        
  196.         $data['token'] = $this->session->data['token'];
  197.        
  198.         $this->load->model('localisation/language');
  199.        
  200.         $data['languages'] = $this->model_localisation_language->getLanguages();
  201.        
  202.         if (isset($this->error['warning'])) {
  203.             $data['error'] = $this->error['warning'];
  204.         } else {
  205.             $data['error'] = '';
  206.         }
  207.        
  208.         if (isset($this->request->get['news_id'])) {
  209.             $news = $this->model_extension_news->getNews($this->request->get['news_id']);
  210.         } else {
  211.             $news = array();
  212.         }
  213.        
  214.         if (isset($this->request->post['news'])) {
  215.             $data['news'] = $this->request->post['news'];
  216.         } elseif (!empty($news)) {
  217.             $data['news'] = $this->model_extension_news->getNewsDescription($this->request->get['news_id']);
  218.         } else {
  219.             $data['news'] = '';
  220.         }
  221.        
  222.         if (isset($this->request->post['image'])) {
  223.             $data['image'] = $this->request->post['image'];
  224.         } elseif (!empty($news)) {
  225.             $data['image'] = $news['image'];
  226.         } else {
  227.             $data['image'] = '';
  228.         }
  229.        
  230.         $this->load->model('tool/image');
  231.        
  232.         if (isset($this->request->post['image'])) {
  233.             $data['thumb'] = $this->model_tool_image->resize($this->request->post['image'], 100, 100);
  234.         } elseif (!empty($news)) {
  235.             $data['thumb'] = $this->model_tool_image->resize($news['image'] ? $news['image'] : 'no_image.png', 100, 100);
  236.         } else {
  237.             $data['thumb'] = $this->model_tool_image->resize('no_image.png', 100, 100);;
  238.         }
  239.        
  240.         $data['no_image'] = $this->model_tool_image->resize('no_image.png', 100, 100);
  241.        
  242.         if (isset($this->request->post['keyword'])) {
  243.             $data['keyword'] = $this->request->post['keyword'];
  244.         } elseif (!empty($news)) {
  245.             $data['keyword'] = $news['keyword'];
  246.         } else {
  247.             $data['keyword'] = '';
  248.         }
  249.        
  250.         if (isset($this->request->post['status'])) {
  251.             $data['status'] = $this->request->post['status'];
  252.         } elseif (!empty($news)) {
  253.             $data['status'] = $news['status'];
  254.         } else {
  255.             $data['status'] = '';
  256.         }
  257.        
  258.         $data['header'] = $this->load->controller('common/header');
  259.         $data['column_left'] = $this->load->controller('common/column_left');
  260.         $data['footer'] = $this->load->controller('common/footer');
  261.  
  262.         $this->response->setOutput($this->load->view('extension/news_form.tpl', $data));
  263.     }
  264.    
  265.     public function delete() {
  266.         $this->language->load('extension/news');
  267.        
  268.         $this->load->model('extension/news');
  269.  
  270.         $this->document->setTitle($this->language->get('heading_title'));
  271.        
  272.         if (isset($this->request->post['selected']) && $this->validateDelete()) {
  273.             foreach ($this->request->post['selected'] as $news_id) {
  274.                 $this->model_extension_news->deleteNews($news_id);
  275.             }
  276.  
  277.             $this->session->data['success'] = $this->language->get('text_success');
  278.         }
  279.        
  280.         $this->response->redirect($this->url->link('extension/news', 'token=' . $this->session->data['token'], 'SSL'));
  281.     }
  282.    
  283.     protected function validateDelete() {
  284.         if (!$this->user->hasPermission('modify', 'extension/news')) {
  285.             $this->error['warning'] = $this->language->get('error_permission');
  286.         }
  287.  
  288.         if (!$this->error) {
  289.             return true;
  290.         } else {
  291.             return false;
  292.         }
  293.     }
  294.    
  295.     protected function validate() {
  296.         if (!$this->user->hasPermission('modify', 'extension/news')) {
  297.             $this->error['warning'] = $this->language->get('error_permission');
  298.         }
  299.        
  300.         if (!$this->error) {
  301.             return true;
  302.         } else {
  303.             return false;
  304.         }  
  305.     }
  306. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement