diff options
author | Jesús <heckyel@hyperbola.info> | 2019-08-18 21:14:58 -0500 |
---|---|---|
committer | Jesús <heckyel@hyperbola.info> | 2019-08-18 21:14:58 -0500 |
commit | 2eed7b082f83630301e51f57ca8394de228a8605 (patch) | |
tree | 1d19962d22d30f99317d9276e4bae7744fc93fc2 /public/admin/controller/extension/feed | |
download | librecart-2eed7b082f83630301e51f57ca8394de228a8605.tar.lz librecart-2eed7b082f83630301e51f57ca8394de228a8605.tar.xz librecart-2eed7b082f83630301e51f57ca8394de228a8605.zip |
first commit
Diffstat (limited to 'public/admin/controller/extension/feed')
3 files changed, 360 insertions, 0 deletions
diff --git a/public/admin/controller/extension/feed/google_base.php b/public/admin/controller/extension/feed/google_base.php new file mode 100644 index 0000000..ff88d41 --- /dev/null +++ b/public/admin/controller/extension/feed/google_base.php @@ -0,0 +1,243 @@ +<?php +class ControllerExtensionFeedGoogleBase extends Controller { + private $error = array(); + + public function index() { + $this->load->language('extension/feed/google_base'); + + $this->document->setTitle($this->language->get('heading_title')); + + $this->load->model('setting/setting'); + + if (($this->request->server['REQUEST_METHOD'] == 'POST') && $this->validate()) { + $this->model_setting_setting->editSetting('feed_google_base', $this->request->post); + + $this->session->data['success'] = $this->language->get('text_success'); + + $this->response->redirect($this->url->link('marketplace/extension', 'user_token=' . $this->session->data['user_token'] . '&type=feed', true)); + } + + if (isset($this->error['warning'])) { + $data['error_warning'] = $this->error['warning']; + } else { + $data['error_warning'] = ''; + } + + $data['breadcrumbs'] = array(); + + $data['breadcrumbs'][] = array( + 'text' => $this->language->get('text_home'), + 'href' => $this->url->link('common/dashboard', 'user_token=' . $this->session->data['user_token'], true) + ); + + $data['breadcrumbs'][] = array( + 'text' => $this->language->get('text_extension'), + 'href' => $this->url->link('marketplace/extension', 'user_token=' . $this->session->data['user_token'] . '&type=feed', true) + ); + + $data['breadcrumbs'][] = array( + 'text' => $this->language->get('heading_title'), + 'href' => $this->url->link('extension/feed/google_base', 'user_token=' . $this->session->data['user_token'], true) + ); + + $data['action'] = $this->url->link('extension/feed/google_base', 'user_token=' . $this->session->data['user_token'], true); + + $data['cancel'] = $this->url->link('marketplace/extension', 'user_token=' . $this->session->data['user_token'] . '&type=feed', true); + + $data['user_token'] = $this->session->data['user_token']; + + $data['data_feed'] = HTTP_CATALOG . 'index.php?route=extension/feed/google_base'; + + if (isset($this->request->post['feed_google_base_status'])) { + $data['feed_google_base_status'] = $this->request->post['feed_google_base_status']; + } else { + $data['feed_google_base_status'] = $this->config->get('feed_google_base_status'); + } + + $data['header'] = $this->load->controller('common/header'); + $data['column_left'] = $this->load->controller('common/column_left'); + $data['footer'] = $this->load->controller('common/footer'); + + $this->response->setOutput($this->load->view('extension/feed/google_base', $data)); + } + + protected function validate() { + if (!$this->user->hasPermission('modify', 'extension/feed/google_base')) { + $this->error['warning'] = $this->language->get('error_permission'); + } + + return !$this->error; + } + + public function install() { + $this->load->model('extension/feed/google_base'); + + $this->model_extension_feed_google_base->install(); + } + + public function uninstall() { + $this->load->model('extension/feed/google_base'); + + $this->model_extension_feed_google_base->uninstall(); + } + + public function import() { + $this->load->language('extension/feed/google_base'); + + $json = array(); + + // Check user has permission + if (!$this->user->hasPermission('modify', 'extension/feed/google_base')) { + $json['error'] = $this->language->get('error_permission'); + } + + if (!$json) { + if (!empty($this->request->files['file']['name']) && is_file($this->request->files['file']['tmp_name'])) { + // Sanitize the filename + $filename = basename(html_entity_decode($this->request->files['file']['name'], ENT_QUOTES, 'UTF-8')); + + // Allowed file extension types + if (utf8_strtolower(utf8_substr(strrchr($filename, '.'), 1)) != 'txt') { + $json['error'] = $this->language->get('error_filetype'); + } + + // Allowed file mime types + if ($this->request->files['file']['type'] != 'text/plain') { + $json['error'] = $this->language->get('error_filetype'); + } + + // Return any upload error + if ($this->request->files['file']['error'] != UPLOAD_ERR_OK) { + $json['error'] = $this->language->get('error_upload_' . $this->request->files['file']['error']); + } + } else { + $json['error'] = $this->language->get('error_upload'); + } + } + + if (!$json) { + $json['success'] = $this->language->get('text_success'); + + $this->load->model('extension/feed/google_base'); + + // Get the contents of the uploaded file + $content = file_get_contents($this->request->files['file']['tmp_name']); + + $this->model_extension_feed_google_base->import($content); + + unlink($this->request->files['file']['tmp_name']); + } + + $this->response->addHeader('Content-Type: application/json'); + $this->response->setOutput(json_encode($json)); + } + + public function category() { + $this->load->language('extension/feed/google_base'); + + if (isset($this->request->get['page'])) { + $page = $this->request->get['page']; + } else { + $page = 1; + } + + $data['google_base_categories'] = array(); + + $this->load->model('extension/feed/google_base'); + + $results = $this->model_extension_feed_google_base->getCategories(($page - 1) * 10, 10); + + foreach ($results as $result) { + $data['google_base_categories'][] = array( + 'google_base_category_id' => $result['google_base_category_id'], + 'google_base_category' => $result['google_base_category'], + 'category_id' => $result['category_id'], + 'category' => $result['category'] + ); + } + + $category_total = $this->model_extension_feed_google_base->getTotalCategories(); + + $pagination = new Pagination(); + $pagination->total = $category_total; + $pagination->page = $page; + $pagination->limit = 10; + $pagination->url = $this->url->link('extension/feed/google_base/category', 'user_token=' . $this->session->data['user_token'] . '&page={page}', true); + + $data['pagination'] = $pagination->render(); + + $data['results'] = sprintf($this->language->get('text_pagination'), ($category_total) ? (($page - 1) * 10) + 1 : 0, ((($page - 1) * 10) > ($category_total - 10)) ? $category_total : ((($page - 1) * 10) + 10), $category_total, ceil($category_total / 10)); + + $this->response->setOutput($this->load->view('extension/feed/google_base_category', $data)); + } + + public function addCategory() { + $this->load->language('extension/feed/google_base'); + + $json = array(); + + if (!$this->user->hasPermission('modify', 'extension/feed/google_base')) { + $json['error'] = $this->language->get('error_permission'); + } elseif (!empty($this->request->post['google_base_category_id']) && !empty($this->request->post['category_id'])) { + $this->load->model('extension/feed/google_base'); + + $this->model_extension_feed_google_base->addCategory($this->request->post); + + $json['success'] = $this->language->get('text_success'); + } + + $this->response->addHeader('Content-Type: application/json'); + $this->response->setOutput(json_encode($json)); + } + + public function removeCategory() { + $this->load->language('extension/feed/google_base'); + + $json = array(); + + if (!$this->user->hasPermission('modify', 'extension/feed/google_base')) { + $json['error'] = $this->language->get('error_permission'); + } else { + $this->load->model('extension/feed/google_base'); + + $this->model_extension_feed_google_base->deleteCategory($this->request->post['category_id']); + + $json['success'] = $this->language->get('text_success'); + } + + $this->response->addHeader('Content-Type: application/json'); + $this->response->setOutput(json_encode($json)); + } + + public function autocomplete() { + $json = array(); + + if (isset($this->request->get['filter_name'])) { + $this->load->model('extension/feed/google_base'); + + if (isset($this->request->get['filter_name'])) { + $filter_name = $this->request->get['filter_name']; + } else { + $filter_name = ''; + } + + $filter_data = array( + 'filter_name' => html_entity_decode($filter_name, ENT_QUOTES, 'UTF-8'), + 'start' => 0, + 'limit' => 5 + ); + + $results = $this->model_extension_feed_google_base->getGoogleBaseCategories($filter_data); + + foreach ($results as $result) { + $json[] = array( + 'google_base_category_id' => $result['google_base_category_id'], + 'name' => strip_tags(html_entity_decode($result['name'], ENT_QUOTES, 'UTF-8')) + ); + } + } + + $this->response->addHeader('Content-Type: application/json'); + $this->response->setOutput(json_encode($json)); + } +} diff --git a/public/admin/controller/extension/feed/google_sitemap.php b/public/admin/controller/extension/feed/google_sitemap.php new file mode 100644 index 0000000..38c96dc --- /dev/null +++ b/public/admin/controller/extension/feed/google_sitemap.php @@ -0,0 +1,69 @@ +<?php +class ControllerExtensionFeedGoogleSitemap extends Controller { + private $error = array(); + + public function index() { + $this->load->language('extension/feed/google_sitemap'); + + $this->document->setTitle($this->language->get('heading_title')); + + $this->load->model('setting/setting'); + + if (($this->request->server['REQUEST_METHOD'] == 'POST') && $this->validate()) { + $this->model_setting_setting->editSetting('feed_google_sitemap', $this->request->post); + + $this->session->data['success'] = $this->language->get('text_success'); + + $this->response->redirect($this->url->link('marketplace/extension', 'user_token=' . $this->session->data['user_token'] . '&type=feed', true)); + } + + if (isset($this->error['warning'])) { + $data['error_warning'] = $this->error['warning']; + } else { + $data['error_warning'] = ''; + } + + $data['breadcrumbs'] = array(); + + $data['breadcrumbs'][] = array( + 'text' => $this->language->get('text_home'), + 'href' => $this->url->link('common/dashboard', 'user_token=' . $this->session->data['user_token'], true) + ); + + $data['breadcrumbs'][] = array( + 'text' => $this->language->get('text_extension'), + 'href' => $this->url->link('marketplace/extension', 'user_token=' . $this->session->data['user_token'] . '&type=feed', true) + ); + + $data['breadcrumbs'][] = array( + 'text' => $this->language->get('heading_title'), + 'href' => $this->url->link('extension/feed/google_sitemap', 'user_token=' . $this->session->data['user_token'], true) + ); + + $data['action'] = $this->url->link('extension/feed/google_sitemap', 'user_token=' . $this->session->data['user_token'], true); + + $data['cancel'] = $this->url->link('marketplace/extension', 'user_token=' . $this->session->data['user_token'] . '&type=feed', true); + + if (isset($this->request->post['feed_google_sitemap_status'])) { + $data['feed_google_sitemap_status'] = $this->request->post['feed_google_sitemap_status']; + } else { + $data['feed_google_sitemap_status'] = $this->config->get('feed_google_sitemap_status'); + } + + $data['data_feed'] = HTTP_CATALOG . 'index.php?route=extension/feed/google_sitemap'; + + $data['header'] = $this->load->controller('common/header'); + $data['column_left'] = $this->load->controller('common/column_left'); + $data['footer'] = $this->load->controller('common/footer'); + + $this->response->setOutput($this->load->view('extension/feed/google_sitemap', $data)); + } + + protected function validate() { + if (!$this->user->hasPermission('modify', 'extension/feed/google_sitemap')) { + $this->error['warning'] = $this->language->get('error_permission'); + } + + return !$this->error; + } +}
\ No newline at end of file diff --git a/public/admin/controller/extension/feed/openbaypro.php b/public/admin/controller/extension/feed/openbaypro.php new file mode 100644 index 0000000..10e8994 --- /dev/null +++ b/public/admin/controller/extension/feed/openbaypro.php @@ -0,0 +1,48 @@ +<?php +class ControllerExtensionFeedOpenbaypro extends Controller { + private $error = array(); + + public function index() { + $this->response->redirect($this->url->link('marketplace/openbay', 'user_token=' . $this->session->data['user_token'], true)); + } + + protected function validate() { + if (!$this->user->hasPermission('modify', 'extension/module/openbaypro')) { + $this->error['warning'] = $this->language->get('error_permission'); + } + + return !$this->error; + } + + public function install() { + $this->load->model('setting/setting'); + $this->load->model('setting/event'); + + $this->model_user_user_group->addPermission($this->user->getGroupId(), 'access', 'marketplace/openbay'); + $this->model_user_user_group->addPermission($this->user->getGroupId(), 'modify', 'marketplace/openbay'); + + $settings = $this->model_setting_setting->getSetting('feed_openbaypro'); + $settings['feed_openbaypro_status'] = 1; + $settings['feed_openbaypro_language'] = "en_GB"; + $this->model_setting_setting->editSetting('feed_openbaypro', $settings); + + $this->model_setting_event->addEvent('openbay_product_del_after', 'admin/model/catalog/product/deleteProduct/after', 'marketplace/openbay/eventDeleteProduct'); + + $this->model_setting_event->addEvent('openbay_product_edit_after', 'admin/model/catalog/product/editProduct/after', 'marketplace/openbay/eventEditProduct'); + + $this->model_setting_event->addEvent('openbay_menu', 'admin/view/common/column_left/before', 'marketplace/openbay/eventMenu'); + } + + public function uninstall() { + $this->load->model('setting/setting'); + $this->load->model('setting/event'); + + $settings = $this->model_setting_setting->getSetting('feed_openbaypro'); + $settings['feed_openbaypro_status'] = 0; + $this->model_setting_setting->editSetting('feed_openbaypro', $settings); + + $this->model_setting_event->deleteEventByCode('openbay_product_del_after'); + $this->model_setting_event->deleteEventByCode('openbay_product_edit_after'); + $this->model_setting_event->deleteEventByCode('openbay_menu'); + } +} |