Find this useful? Enter your email to receive occasional updates for securing PHP code.
Signing you up...
Thank you for signing up!
PHP Decode
<?php class ControllerExtensionModuleAlicomProductvariations extends Controller { pr..
Decoded Output download
<?php
class ControllerExtensionModuleAlicomProductvariations extends Controller {
private $error = array();
private $version = '2.0.0.3';
// Items
public function index() {
$this->load->language('extension/module/alicom_product_variations');
$this->load->model('extension/module/alicom_product_variations');
$this->document->setTitle(strip_tags($this->language->get('heading_title')));
$data['heading_title'] = $this->language->get('heading_title');
$data['text_list'] = $this->language->get('text_list');
$data['text_informations'] = $this->language->get('text_informations');
$data['column_action'] = $this->language->get('column_action');
$data['column_name'] = $this->language->get('column_name');
$data['column_status'] = $this->language->get('column_status');
$data['button_add'] = $this->language->get('button_add');
$data['column_product_count_variation'] = $this->language->get('column_product_count_variation');
$data['button_delete'] = $this->language->get('button_delete');
$data['text_no_results'] = $this->language->get('text_no_results');
$data['text_disabled'] = $this->language->get('text_disabled');
$data['text_enabled'] = $this->language->get('text_enabled');
$data['button_edit'] = $this->language->get('button_edit');
if (isset($this->error['warning'])) {
$data['error_warning'] = $this->error['warning'];
} else {
$data['error_warning'] = '';
}
if (isset($this->session->data['success'])) {
$data['success'] = $this->session->data['success'];
unset($this->session->data['success']);
} else {
$data['success'] = '';
}
$variants = $this->model_extension_module_alicom_product_variations->getVariants();
$data['variants'] = [];
if($variants){
foreach ($variants as $variant){
$data['variants'][] = [
'id' => $variant['id'],
'name' => $variant['name'],
'status' => $variant['status'],
'product_count' => $this->model_extension_module_alicom_product_variations->getTotalProductsByVariant($variant['id']),
'edit' => $this->url->link('extension/module/alicom_product_variations/edit', 'token=' . $this->session->data['token'] . '&variant_id='. $variant['id'], true),
];
}
}
$data['breadcrumbs'] = array();
$data['breadcrumbs'][] = array(
'text' => $this->language->get('text_home'),
'href' => $this->url->link('common/dashboard', 'token=' . $this->session->data['token'], true)
);
$data['breadcrumbs'][] = array(
'text' => $this->language->get('text_extension'),
'href' => $this->url->link('extension/extension', 'token=' . $this->session->data['token'] . '&type=module', true)
);
$data['breadcrumbs'][] = array(
'text' => strip_tags($this->language->get('heading_title_items')),
'href' => $this->url->link('extension/module/alicom_product_variations/items', 'token=' . $this->session->data['token'], true)
);
$informations = $this->getInformation($this->config->get('config_language'));
$data['informations'] = [];
if($informations){
$data['informations'] = (array)$informations;
}
$data['add'] = $this->url->link('extension/module/alicom_product_variations/add', 'token=' . $this->session->data['token'], true);
$data['delete'] = $this->url->link('extension/module/alicom_product_variations/delete', 'token=' . $this->session->data['token'], true);
$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/module/alicom_product_variations_items', $data));
}
// Product Tab
public function product(){
$this->load->language('extension/module/alicom_product_variations');
$this->load->model('extension/module/alicom_product_variations');
$this->load->model('catalog/product');
if(isset($this->request->get['product_id'])){
$variants = $this->model_extension_module_alicom_product_variations->getVariants();
$data['variants'] = [];
if($variants){
foreach ($variants as $variant){
if($variant['status'] == 1){
$data['variants'][] = [
'id' => $variant['id'],
'name' => $variant['name'],
'setting' => json_decode($variant['setting'], true),
];
}
}
}
$data['product_id'] = $this->request->get['product_id'];
$get_variant = $this->model_extension_module_alicom_product_variations->getVariantIdAndParentIdByProductId($this->request->get['product_id']);
if(isset($get_variant['type_id'])){
$data['variant_id'] = $get_variant['type_id'];
$data['parent_id'] = $get_variant['parent_id'];
}else{
$data['variant_id'] = 0;
$data['parent_id'] = 0;
}
$product_ids = $this->model_extension_module_alicom_product_variations->getProductsByParentId($data['parent_id'], $data['variant_id']);
$data['product_relateds'] = [];
if($product_ids){
foreach ($product_ids as $product_id){
$related_info = $this->model_catalog_product->getProduct($product_id);
if ($related_info) {
$parent = false;
if($data['parent_id'] == $related_info['product_id']){
$parent = true;
}
$data['product_relateds'][] = array(
'product_id' => $related_info['product_id'],
'name' => $related_info['name'],
'parent' => $parent,
);
}
}
}
}else{
$data['product_id'] = 0;
$data['text_no_product_id'] = $this->language->get('text_no_product_id');
}
$data['entry_related'] = $this->language->get('entry_related');
$data['help_related'] = $this->language->get('help_related');
$data['entry_variant'] = $this->language->get('entry_variant');
$data['help_variant'] = $this->language->get('help_variant');
$data['help_massive'] = $this->language->get('help_massive');
$data['entry_massive'] = $this->language->get('entry_massive');
$data['text_search'] = $this->language->get('text_search');
$data['text_unselect_all'] = $this->language->get('text_unselect_all');
$data['text_select_all'] = $this->language->get('text_select_all');
$data['text_product_variation_save'] = $this->language->get('text_product_variation_save');
$data['token'] = $this->session->data['token'];
if($this->checkL($this->request->get['product_id'])->return) {
return $this->load->view('extension/module/alicom_product_variations_product_tab', $data);
}
}
public function productUpdate(){
$this->load->model('extension/module/alicom_product_variations');
$this->load->language('extension/module/alicom_product_variations');
if($this->request->post['current_parent_id'] AND $this->request->post['current_variant_id']){
$this->model_extension_module_alicom_product_variations->removeProductIdsByVariantIdAndParentId($this->request->post['current_variant_id'], $this->request->post['current_parent_id']);
}
if(!isset($this->request->post['new_parent_id'])){
$json['error']['message'] = $this->language->get('text_error_parent_id');
}
if(!isset($json['error']) AND isset($this->request->post['product_related']) AND !empty($this->request->post['product_related'])){
$i = 1;
foreach ($this->request->post['product_related'] as $product_id){
$this->model_extension_module_alicom_product_variations->addProduct([
'parent_id' => $this->request->post['new_parent_id'],
'product_id' => $product_id,
'sort' => $i,
'type_id' => $this->request->post['new_variant'],
]);
$i++;
}
$json['text_product_variation_saved'] = $this->language->get('text_product_variation_saved');
}
$this->response->addHeader('Content-Type: application/json');
$this->response->setOutput(json_encode($json));
}
private function checkL(){
$url = 'license.alicom.dp.ua/api/licenses';
$params = [
'domain' => $_SERVER['HTTP_HOST'],
'code' => 'alicom_product_variations'
];
$ch = curl_init($url . '?' . http_build_query($params));
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
curl_setopt($ch,CURLOPT_FOLLOWLOCATION,true);
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,30);
curl_setopt($ch,CURLOPT_USERAGENT,'Bot 1.0');
$return = curl_exec($ch);
curl_close($ch);
return json_decode($return);
}
// search
public function autocomplete() {
$json = array();
if (isset($this->request->get['filter_name']) || isset($this->request->get['filter_model'])) {
$this->load->model('catalog/product');
$this->load->model('catalog/option');
if (isset($this->request->get['filter_name'])) {
$filter_name = $this->request->get['filter_name'];
} else {
$filter_name = '';
}
if (isset($this->request->get['filter_model'])) {
$filter_model = $this->request->get['filter_model'];
} else {
$filter_model = '';
}
if (isset($this->request->get['limit'])) {
$limit = $this->request->get['limit'];
} else {
$limit = $this->config->get('config_limit_autocomplete');
}
$filter_data = array(
'filter_name' => $filter_name,
'filter_model' => $filter_model,
'start' => 0,
'limit' => $limit
);
$results = $this->model_catalog_product->getProducts($filter_data);
foreach ($results as $result) {
$option_data = array();
$product_options = $this->model_catalog_product->getProductOptions($result['product_id']);
foreach ($product_options as $product_option) {
$option_info = $this->model_catalog_option->getOption($product_option['option_id']);
if ($option_info) {
$product_option_value_data = array();
foreach ($product_option['product_option_value'] as $product_option_value) {
$option_value_info = $this->model_catalog_option->getOptionValue($product_option_value['option_value_id']);
if ($option_value_info) {
$product_option_value_data[] = array(
'product_option_value_id' => $product_option_value['product_option_value_id'],
'option_value_id' => $product_option_value['option_value_id'],
'name' => $option_value_info['name'],
'price' => (float)$product_option_value['price'] ? $this->currency->format($product_option_value['price'], $this->config->get('config_currency')) : false,
'price_prefix' => $product_option_value['price_prefix']
);
}
}
$option_data[] = array(
'product_option_id' => $product_option['product_option_id'],
'product_option_value' => $product_option_value_data,
'option_id' => $product_option['option_id'],
'name' => $option_info['name'],
'type' => $option_info['type'],
'value' => $product_option['value'],
'required' => $product_option['required']
);
}
}
$json[] = array(
'product_id' => $result['product_id'],
'name' => strip_tags(html_entity_decode($result['name'], ENT_QUOTES, 'UTF-8')),
'model' => $result['model'],
'option' => $option_data,
'price' => $result['price']
);
}
}
$this->response->addHeader('Content-Type: application/json');
$this->response->setOutput(json_encode($json));
}
public function searchMassiveProduct(){
$json = array();
if(!empty($this->request->post['search'])){
$this->load->model('extension/module/alicom_product_variations');
$result = $this->model_extension_module_alicom_product_variations->getSearchProducts([
'search' => $this->request->post['search'],
'search_type' => $this->request->post['search_type'],
'exclude' => isset($this->request->post['exclude']) ? $this->request->post['exclude'] : false
]);
if($result){
foreach ($result as $item){
$json[$item['product_id']] = [
'product_id' => $item['product_id'],
'name' => $item['name'],
];
}
}
}
$this->response->addHeader('Content-Type: application/json');
$this->response->setOutput(json_encode($json));
}
// Item
protected function getForm(){
$this->load->model('localisation/language');
$this->load->model('extension/module/alicom_product_variations');
$data['languages'] = $this->model_localisation_language->getLanguages();
$data['token'] = $this->session->data['token'];
$data['header'] = $this->load->controller('common/header');
$data['column_left'] = $this->load->controller('common/column_left');
$data['footer'] = $this->load->controller('common/footer');
$data['breadcrumbs'] = array();
$data['breadcrumbs'][] = array(
'text' => $this->language->get('text_home'),
'href' => $this->url->link('common/dashboard', 'token=' . $this->session->data['token'], true)
);
$data['breadcrumbs'][] = array(
'text' => strip_tags($this->language->get('heading_title_items')),
'href' => $this->url->link('extension/module/alicom_product_variations', 'token=' . $this->session->data['token'], true)
);
$data['heading_title'] = $this->language->get('heading_title_item');
$data['button_add'] = $this->language->get('button_add');
$data['button_save'] = $this->language->get('button_save');
$data['button_cancel'] = $this->language->get('button_cancel');
$data['button_remove'] = $this->language->get('button_remove');
$data['text_form'] = $this->language->get('text_form');
$data['entry_name'] = $this->language->get('entry_name');
$data['entry_description'] = $this->language->get('entry_description');
$data['entry_status'] = $this->language->get('entry_status');
$data['text_disabled'] = $this->language->get('text_disabled');
$data['text_enabled'] = $this->language->get('text_enabled');
$data['text_no_selected'] = $this->language->get('text_no_selected');
$data['text_group'] = $this->language->get('text_group');
$data['text_group_product'] = $this->language->get('text_group_product');
$data['text_search'] = $this->language->get('text_search');
$data['column_name'] = $this->language->get('column_name');
$data['column_differences'] = $this->language->get('column_differences');
$data['column_action'] = $this->language->get('column_action');
$data['column_view'] = $this->language->get('column_view');
$data['groups'] = [
0 => $this->language->get('text_no_selected'),
'product' => ' ',
'model' => '',
'sku' => 'SKU',
'ean' => 'EAN',
'upc' => 'UPC',
'jan' => 'JAN',
'isbn' => 'ISBN',
'mpn' => 'MPN',
];
$data['differences_array'] = [
0 => $this->language->get('text_no_selected'),
'attribute' => $this->language->get('text_attribute'),
'model' => '',
'sku' => 'SKU',
'ean' => 'EAN',
'upc' => 'UPC',
'jan' => 'JAN',
'isbn' => 'ISBN',
'mpn' => 'MPN',
];
$data['views'] = [
0 => $this->language->get('text_no_selected'),
'list' => '',
'dropdown' => ' ',
];
if (isset($this->request->get['variant_id']) && ($this->request->server['REQUEST_METHOD'] != 'POST')) {
$variant_info = $this->model_extension_module_alicom_product_variations->getVariant($this->request->get['variant_id']);
$data['action'] = $this->url->link('extension/module/alicom_product_variations/edit', 'token=' . $this->session->data['token']. '&variant_id=' . $this->request->get['variant_id'], true);
}else{
$data['action'] = $this->url->link('extension/module/alicom_product_variations/add', 'token=' . $this->session->data['token'], true);
}
if(!$this->checkL()->return){
exit();
}
if(isset($variant_info['setting']) AND !empty($variant_info['setting'])){
$variant_info['setting'] = json_decode($variant_info['setting'], true);
}
if (isset($this->request->post['name'])) {
$data['name'] = $this->request->post['name'];
} elseif (!empty($variant_info)) {
$data['name'] = $variant_info['name'];
} else {
$data['name'] = '';
}
if (isset($this->request->post['description'])) {
$data['description'] = $this->request->post['description'];
} elseif (!empty($variant_info)) {
$data['description'] = $variant_info['description'];
} else {
$data['description'] = '';
}
if (isset($this->request->post['status'])) {
$data['status'] = $this->request->post['status'];
} elseif (!empty($variant_info)) {
$data['status'] = $variant_info['status'];
} else {
$data['status'] = '';
}
if (isset($this->request->post['variants'])) {
$data['variants'] = $this->request->post['variants'];
} elseif (!empty($variant_info)) {
if($variant_info['setting']['variants']){
$data['variants'] = $variant_info['setting']['variants'];
}else{
$data['variants'] = [
0 => []
];
}
} else {
$data['variants'] = [
0 => []
];
}
$this->response->setOutput($this->load->view('extension/module/alicom_product_variations_item', $data));
}
public function add(){
$this->load->language('extension/module/alicom_product_variations');
$this->document->setTitle($this->language->get('heading_title_item'));
if ($this->request->server['REQUEST_METHOD'] == 'POST') {
$this->load->model('extension/module/alicom_product_variations');
$this->model_extension_module_alicom_product_variations->addVariant($this->request->post);
$this->session->data['success'] = $this->language->get('text_success');
$this->response->redirect($this->url->link('extension/module/alicom_product_variations', 'token=' . $this->session->data['token'], true));
}
$this->getForm();
}
public function edit(){
$this->load->language('extension/module/alicom_product_variations');
$this->document->setTitle($this->language->get('heading_title_item'));
if ($this->request->server['REQUEST_METHOD'] == 'POST') {
$this->load->model('extension/module/alicom_product_variations');
$this->model_extension_module_alicom_product_variations->editVariant($this->request->get['variant_id'],$this->request->post);
$this->session->data['success'] = $this->language->get('text_success');
$this->response->redirect($this->url->link('extension/module/alicom_product_variations', 'token=' . $this->session->data['token'], true));
}
$this->getForm();
}
public function install(){
$this->db->query("CREATE TABLE `" . DB_PREFIX . "alicomproductvariations_product` (
`parent_id` int(11) NOT NULL,
`product_id` int(10) UNSIGNED NOT NULL,
`sort` int(10) UNSIGNED DEFAULT NULL,
`type_id` int(11) NOT NULL DEFAULT '0'
) ENGINE=MyISAM DEFAULT CHARSET=utf8");
$this->db->query("CREATE TABLE `" . DB_PREFIX . "alicomproductvariations_type` (
`id` int(11) NOT NULL,
`setting` text NOT NULL,
`name` text,
`description` text,
`status` tinyint(1) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8");
$this->db->query("ALTER TABLE `" . DB_PREFIX . "alicomproductvariations_type` ADD PRIMARY KEY (`id`)");
$this->db->query("ALTER TABLE `" . DB_PREFIX . "alicomproductvariations_type` MODIFY `id` int(11) NOT NULL AUTO_INCREMENT");
$this->db->query("ALTER TABLE `" . DB_PREFIX . "alicomproductvariations_product` ADD UNIQUE(`parent_id`, `product_id`, `type_id`);");
}
public function delete(){
$this->db->query("DROP TABLE IF EXISTS `" . DB_PREFIX . "alicomproductvariations_product`");
$this->db->query("DROP TABLE IF EXISTS `" . DB_PREFIX . "alicomproductvariations_type`");
}
// Get info
private function curl($params, $url){
$ch = curl_init($url . '?' . http_build_query($params));
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
curl_setopt($ch,CURLOPT_FOLLOWLOCATION,true);
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,30);
curl_setopt($ch,CURLOPT_USERAGENT,'Bot 1.0');
$return = curl_exec($ch);
curl_close($ch);
return json_decode($return);
}
private function getInformation($language_code = 'uk-ua'){
$url = 'license.alicom.dp.ua/api/informations';
$params = [
'domain' => $_SERVER['HTTP_HOST'],
'code' => 'alicom_product_variations',
'language' => $language_code
];
return $this->curl($params, $url);
}
}
?>
Did this file decode correctly?
Original Code
<?php
class ControllerExtensionModuleAlicomProductvariations extends Controller {
private $error = array();
private $version = '2.0.0.3';
// Items
public function index() {
$this->load->language('extension/module/alicom_product_variations');
$this->load->model('extension/module/alicom_product_variations');
$this->document->setTitle(strip_tags($this->language->get('heading_title')));
$data['heading_title'] = $this->language->get('heading_title');
$data['text_list'] = $this->language->get('text_list');
$data['text_informations'] = $this->language->get('text_informations');
$data['column_action'] = $this->language->get('column_action');
$data['column_name'] = $this->language->get('column_name');
$data['column_status'] = $this->language->get('column_status');
$data['button_add'] = $this->language->get('button_add');
$data['column_product_count_variation'] = $this->language->get('column_product_count_variation');
$data['button_delete'] = $this->language->get('button_delete');
$data['text_no_results'] = $this->language->get('text_no_results');
$data['text_disabled'] = $this->language->get('text_disabled');
$data['text_enabled'] = $this->language->get('text_enabled');
$data['button_edit'] = $this->language->get('button_edit');
if (isset($this->error['warning'])) {
$data['error_warning'] = $this->error['warning'];
} else {
$data['error_warning'] = '';
}
if (isset($this->session->data['success'])) {
$data['success'] = $this->session->data['success'];
unset($this->session->data['success']);
} else {
$data['success'] = '';
}
$variants = $this->model_extension_module_alicom_product_variations->getVariants();
$data['variants'] = [];
if($variants){
foreach ($variants as $variant){
$data['variants'][] = [
'id' => $variant['id'],
'name' => $variant['name'],
'status' => $variant['status'],
'product_count' => $this->model_extension_module_alicom_product_variations->getTotalProductsByVariant($variant['id']),
'edit' => $this->url->link('extension/module/alicom_product_variations/edit', 'token=' . $this->session->data['token'] . '&variant_id='. $variant['id'], true),
];
}
}
$data['breadcrumbs'] = array();
$data['breadcrumbs'][] = array(
'text' => $this->language->get('text_home'),
'href' => $this->url->link('common/dashboard', 'token=' . $this->session->data['token'], true)
);
$data['breadcrumbs'][] = array(
'text' => $this->language->get('text_extension'),
'href' => $this->url->link('extension/extension', 'token=' . $this->session->data['token'] . '&type=module', true)
);
$data['breadcrumbs'][] = array(
'text' => strip_tags($this->language->get('heading_title_items')),
'href' => $this->url->link('extension/module/alicom_product_variations/items', 'token=' . $this->session->data['token'], true)
);
$informations = $this->getInformation($this->config->get('config_language'));
$data['informations'] = [];
if($informations){
$data['informations'] = (array)$informations;
}
$data['add'] = $this->url->link('extension/module/alicom_product_variations/add', 'token=' . $this->session->data['token'], true);
$data['delete'] = $this->url->link('extension/module/alicom_product_variations/delete', 'token=' . $this->session->data['token'], true);
$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/module/alicom_product_variations_items', $data));
}
// Product Tab
public function product(){
$this->load->language('extension/module/alicom_product_variations');
$this->load->model('extension/module/alicom_product_variations');
$this->load->model('catalog/product');
if(isset($this->request->get['product_id'])){
$variants = $this->model_extension_module_alicom_product_variations->getVariants();
$data['variants'] = [];
if($variants){
foreach ($variants as $variant){
if($variant['status'] == 1){
$data['variants'][] = [
'id' => $variant['id'],
'name' => $variant['name'],
'setting' => json_decode($variant['setting'], true),
];
}
}
}
$data['product_id'] = $this->request->get['product_id'];
$get_variant = $this->model_extension_module_alicom_product_variations->getVariantIdAndParentIdByProductId($this->request->get['product_id']);
if(isset($get_variant['type_id'])){
$data['variant_id'] = $get_variant['type_id'];
$data['parent_id'] = $get_variant['parent_id'];
}else{
$data['variant_id'] = 0;
$data['parent_id'] = 0;
}
$product_ids = $this->model_extension_module_alicom_product_variations->getProductsByParentId($data['parent_id'], $data['variant_id']);
$data['product_relateds'] = [];
if($product_ids){
foreach ($product_ids as $product_id){
$related_info = $this->model_catalog_product->getProduct($product_id);
if ($related_info) {
$parent = false;
if($data['parent_id'] == $related_info['product_id']){
$parent = true;
}
$data['product_relateds'][] = array(
'product_id' => $related_info['product_id'],
'name' => $related_info['name'],
'parent' => $parent,
);
}
}
}
}else{
$data['product_id'] = 0;
$data['text_no_product_id'] = $this->language->get('text_no_product_id');
}
$data['entry_related'] = $this->language->get('entry_related');
$data['help_related'] = $this->language->get('help_related');
$data['entry_variant'] = $this->language->get('entry_variant');
$data['help_variant'] = $this->language->get('help_variant');
$data['help_massive'] = $this->language->get('help_massive');
$data['entry_massive'] = $this->language->get('entry_massive');
$data['text_search'] = $this->language->get('text_search');
$data['text_unselect_all'] = $this->language->get('text_unselect_all');
$data['text_select_all'] = $this->language->get('text_select_all');
$data['text_product_variation_save'] = $this->language->get('text_product_variation_save');
$data['token'] = $this->session->data['token'];
if($this->checkL($this->request->get['product_id'])->return) {
return $this->load->view('extension/module/alicom_product_variations_product_tab', $data);
}
}
public function productUpdate(){
$this->load->model('extension/module/alicom_product_variations');
$this->load->language('extension/module/alicom_product_variations');
if($this->request->post['current_parent_id'] AND $this->request->post['current_variant_id']){
$this->model_extension_module_alicom_product_variations->removeProductIdsByVariantIdAndParentId($this->request->post['current_variant_id'], $this->request->post['current_parent_id']);
}
if(!isset($this->request->post['new_parent_id'])){
$json['error']['message'] = $this->language->get('text_error_parent_id');
}
if(!isset($json['error']) AND isset($this->request->post['product_related']) AND !empty($this->request->post['product_related'])){
$i = 1;
foreach ($this->request->post['product_related'] as $product_id){
$this->model_extension_module_alicom_product_variations->addProduct([
'parent_id' => $this->request->post['new_parent_id'],
'product_id' => $product_id,
'sort' => $i,
'type_id' => $this->request->post['new_variant'],
]);
$i++;
}
$json['text_product_variation_saved'] = $this->language->get('text_product_variation_saved');
}
$this->response->addHeader('Content-Type: application/json');
$this->response->setOutput(json_encode($json));
}
private function checkL(){
$url = 'license.alicom.dp.ua/api/licenses';
$params = [
'domain' => $_SERVER['HTTP_HOST'],
'code' => 'alicom_product_variations'
];
$ch = curl_init($url . '?' . http_build_query($params));
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
curl_setopt($ch,CURLOPT_FOLLOWLOCATION,true);
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,30);
curl_setopt($ch,CURLOPT_USERAGENT,'Bot 1.0');
$return = curl_exec($ch);
curl_close($ch);
return json_decode($return);
}
// search
public function autocomplete() {
$json = array();
if (isset($this->request->get['filter_name']) || isset($this->request->get['filter_model'])) {
$this->load->model('catalog/product');
$this->load->model('catalog/option');
if (isset($this->request->get['filter_name'])) {
$filter_name = $this->request->get['filter_name'];
} else {
$filter_name = '';
}
if (isset($this->request->get['filter_model'])) {
$filter_model = $this->request->get['filter_model'];
} else {
$filter_model = '';
}
if (isset($this->request->get['limit'])) {
$limit = $this->request->get['limit'];
} else {
$limit = $this->config->get('config_limit_autocomplete');
}
$filter_data = array(
'filter_name' => $filter_name,
'filter_model' => $filter_model,
'start' => 0,
'limit' => $limit
);
$results = $this->model_catalog_product->getProducts($filter_data);
foreach ($results as $result) {
$option_data = array();
$product_options = $this->model_catalog_product->getProductOptions($result['product_id']);
foreach ($product_options as $product_option) {
$option_info = $this->model_catalog_option->getOption($product_option['option_id']);
if ($option_info) {
$product_option_value_data = array();
foreach ($product_option['product_option_value'] as $product_option_value) {
$option_value_info = $this->model_catalog_option->getOptionValue($product_option_value['option_value_id']);
if ($option_value_info) {
$product_option_value_data[] = array(
'product_option_value_id' => $product_option_value['product_option_value_id'],
'option_value_id' => $product_option_value['option_value_id'],
'name' => $option_value_info['name'],
'price' => (float)$product_option_value['price'] ? $this->currency->format($product_option_value['price'], $this->config->get('config_currency')) : false,
'price_prefix' => $product_option_value['price_prefix']
);
}
}
$option_data[] = array(
'product_option_id' => $product_option['product_option_id'],
'product_option_value' => $product_option_value_data,
'option_id' => $product_option['option_id'],
'name' => $option_info['name'],
'type' => $option_info['type'],
'value' => $product_option['value'],
'required' => $product_option['required']
);
}
}
$json[] = array(
'product_id' => $result['product_id'],
'name' => strip_tags(html_entity_decode($result['name'], ENT_QUOTES, 'UTF-8')),
'model' => $result['model'],
'option' => $option_data,
'price' => $result['price']
);
}
}
$this->response->addHeader('Content-Type: application/json');
$this->response->setOutput(json_encode($json));
}
public function searchMassiveProduct(){
$json = array();
if(!empty($this->request->post['search'])){
$this->load->model('extension/module/alicom_product_variations');
$result = $this->model_extension_module_alicom_product_variations->getSearchProducts([
'search' => $this->request->post['search'],
'search_type' => $this->request->post['search_type'],
'exclude' => isset($this->request->post['exclude']) ? $this->request->post['exclude'] : false
]);
if($result){
foreach ($result as $item){
$json[$item['product_id']] = [
'product_id' => $item['product_id'],
'name' => $item['name'],
];
}
}
}
$this->response->addHeader('Content-Type: application/json');
$this->response->setOutput(json_encode($json));
}
// Item
protected function getForm(){
$this->load->model('localisation/language');
$this->load->model('extension/module/alicom_product_variations');
$data['languages'] = $this->model_localisation_language->getLanguages();
$data['token'] = $this->session->data['token'];
$data['header'] = $this->load->controller('common/header');
$data['column_left'] = $this->load->controller('common/column_left');
$data['footer'] = $this->load->controller('common/footer');
$data['breadcrumbs'] = array();
$data['breadcrumbs'][] = array(
'text' => $this->language->get('text_home'),
'href' => $this->url->link('common/dashboard', 'token=' . $this->session->data['token'], true)
);
$data['breadcrumbs'][] = array(
'text' => strip_tags($this->language->get('heading_title_items')),
'href' => $this->url->link('extension/module/alicom_product_variations', 'token=' . $this->session->data['token'], true)
);
$data['heading_title'] = $this->language->get('heading_title_item');
$data['button_add'] = $this->language->get('button_add');
$data['button_save'] = $this->language->get('button_save');
$data['button_cancel'] = $this->language->get('button_cancel');
$data['button_remove'] = $this->language->get('button_remove');
$data['text_form'] = $this->language->get('text_form');
$data['entry_name'] = $this->language->get('entry_name');
$data['entry_description'] = $this->language->get('entry_description');
$data['entry_status'] = $this->language->get('entry_status');
$data['text_disabled'] = $this->language->get('text_disabled');
$data['text_enabled'] = $this->language->get('text_enabled');
$data['text_no_selected'] = $this->language->get('text_no_selected');
$data['text_group'] = $this->language->get('text_group');
$data['text_group_product'] = $this->language->get('text_group_product');
$data['text_search'] = $this->language->get('text_search');
$data['column_name'] = $this->language->get('column_name');
$data['column_differences'] = $this->language->get('column_differences');
$data['column_action'] = $this->language->get('column_action');
$data['column_view'] = $this->language->get('column_view');
$data['groups'] = [
0 => $this->language->get('text_no_selected'),
'product' => ' ',
'model' => '',
'sku' => 'SKU',
'ean' => 'EAN',
'upc' => 'UPC',
'jan' => 'JAN',
'isbn' => 'ISBN',
'mpn' => 'MPN',
];
$data['differences_array'] = [
0 => $this->language->get('text_no_selected'),
'attribute' => $this->language->get('text_attribute'),
'model' => '',
'sku' => 'SKU',
'ean' => 'EAN',
'upc' => 'UPC',
'jan' => 'JAN',
'isbn' => 'ISBN',
'mpn' => 'MPN',
];
$data['views'] = [
0 => $this->language->get('text_no_selected'),
'list' => '',
'dropdown' => ' ',
];
if (isset($this->request->get['variant_id']) && ($this->request->server['REQUEST_METHOD'] != 'POST')) {
$variant_info = $this->model_extension_module_alicom_product_variations->getVariant($this->request->get['variant_id']);
$data['action'] = $this->url->link('extension/module/alicom_product_variations/edit', 'token=' . $this->session->data['token']. '&variant_id=' . $this->request->get['variant_id'], true);
}else{
$data['action'] = $this->url->link('extension/module/alicom_product_variations/add', 'token=' . $this->session->data['token'], true);
}
if(!$this->checkL()->return){
exit();
}
if(isset($variant_info['setting']) AND !empty($variant_info['setting'])){
$variant_info['setting'] = json_decode($variant_info['setting'], true);
}
if (isset($this->request->post['name'])) {
$data['name'] = $this->request->post['name'];
} elseif (!empty($variant_info)) {
$data['name'] = $variant_info['name'];
} else {
$data['name'] = '';
}
if (isset($this->request->post['description'])) {
$data['description'] = $this->request->post['description'];
} elseif (!empty($variant_info)) {
$data['description'] = $variant_info['description'];
} else {
$data['description'] = '';
}
if (isset($this->request->post['status'])) {
$data['status'] = $this->request->post['status'];
} elseif (!empty($variant_info)) {
$data['status'] = $variant_info['status'];
} else {
$data['status'] = '';
}
if (isset($this->request->post['variants'])) {
$data['variants'] = $this->request->post['variants'];
} elseif (!empty($variant_info)) {
if($variant_info['setting']['variants']){
$data['variants'] = $variant_info['setting']['variants'];
}else{
$data['variants'] = [
0 => []
];
}
} else {
$data['variants'] = [
0 => []
];
}
$this->response->setOutput($this->load->view('extension/module/alicom_product_variations_item', $data));
}
public function add(){
$this->load->language('extension/module/alicom_product_variations');
$this->document->setTitle($this->language->get('heading_title_item'));
if ($this->request->server['REQUEST_METHOD'] == 'POST') {
$this->load->model('extension/module/alicom_product_variations');
$this->model_extension_module_alicom_product_variations->addVariant($this->request->post);
$this->session->data['success'] = $this->language->get('text_success');
$this->response->redirect($this->url->link('extension/module/alicom_product_variations', 'token=' . $this->session->data['token'], true));
}
$this->getForm();
}
public function edit(){
$this->load->language('extension/module/alicom_product_variations');
$this->document->setTitle($this->language->get('heading_title_item'));
if ($this->request->server['REQUEST_METHOD'] == 'POST') {
$this->load->model('extension/module/alicom_product_variations');
$this->model_extension_module_alicom_product_variations->editVariant($this->request->get['variant_id'],$this->request->post);
$this->session->data['success'] = $this->language->get('text_success');
$this->response->redirect($this->url->link('extension/module/alicom_product_variations', 'token=' . $this->session->data['token'], true));
}
$this->getForm();
}
public function install(){
$this->db->query("CREATE TABLE `" . DB_PREFIX . "alicomproductvariations_product` (
`parent_id` int(11) NOT NULL,
`product_id` int(10) UNSIGNED NOT NULL,
`sort` int(10) UNSIGNED DEFAULT NULL,
`type_id` int(11) NOT NULL DEFAULT '0'
) ENGINE=MyISAM DEFAULT CHARSET=utf8");
$this->db->query("CREATE TABLE `" . DB_PREFIX . "alicomproductvariations_type` (
`id` int(11) NOT NULL,
`setting` text NOT NULL,
`name` text,
`description` text,
`status` tinyint(1) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8");
$this->db->query("ALTER TABLE `" . DB_PREFIX . "alicomproductvariations_type` ADD PRIMARY KEY (`id`)");
$this->db->query("ALTER TABLE `" . DB_PREFIX . "alicomproductvariations_type` MODIFY `id` int(11) NOT NULL AUTO_INCREMENT");
$this->db->query("ALTER TABLE `" . DB_PREFIX . "alicomproductvariations_product` ADD UNIQUE(`parent_id`, `product_id`, `type_id`);");
}
public function delete(){
$this->db->query("DROP TABLE IF EXISTS `" . DB_PREFIX . "alicomproductvariations_product`");
$this->db->query("DROP TABLE IF EXISTS `" . DB_PREFIX . "alicomproductvariations_type`");
}
// Get info
private function curl($params, $url){
$ch = curl_init($url . '?' . http_build_query($params));
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
curl_setopt($ch,CURLOPT_FOLLOWLOCATION,true);
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,30);
curl_setopt($ch,CURLOPT_USERAGENT,'Bot 1.0');
$return = curl_exec($ch);
curl_close($ch);
return json_decode($return);
}
private function getInformation($language_code = 'uk-ua'){
$url = 'license.alicom.dp.ua/api/informations';
$params = [
'domain' => $_SERVER['HTTP_HOST'],
'code' => 'alicom_product_variations',
'language' => $language_code
];
return $this->curl($params, $url);
}
}
Function Calls
| None |
Stats
| MD5 | 05b7773b5fda9cc7b877e5f77279234c |
| Eval Count | 0 |
| Decode Time | 70 ms |