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 require_once DIR_SYSTEM . "/engine/neoseo_controller.php"; class ControllerToolN..
Decoded Output download
<?php
require_once DIR_SYSTEM . "/engine/neoseo_controller.php";
class ControllerToolNeoSeoExchange1c extends NeoSeoController
{
private $error = [];
public function __construct($registry)
{
parent::__construct($registry);
$this->_moduleSysName = "neoseo_exchange1c";
$this->_logFile = $this->_moduleSysName . ".log";
$this->debug = $this->config->get($this->_moduleSysName . "_debug") == 1;
}
public function _obfuscated_FFB0898C97918999BBA4C09C9C9F8AB09E93B8A18E9F81_($dir)
{
$_obfuscated_0D1A142C5B2512133F340B240F1A332C273801175C3832_ = glob($dir . ".*", GLOB_MARK);
foreach ($_obfuscated_0D1A142C5B2512133F340B240F1A332C273801175C3832_ as $file) {
if (!is_dir($file)) {
$this->debug(" - " . $file);
unlink($file);
}
}
$_obfuscated_0D1A142C5B2512133F340B240F1A332C273801175C3832_ = glob($dir . "*", GLOB_MARK);
foreach ($_obfuscated_0D1A142C5B2512133F340B240F1A332C273801175C3832_ as $file) {
if (is_dir($file)) {
$this->_obfuscated_FFB0898C97918999BBA4C09C9C9F8AB09E93B8A18E9F81_($file);
} else {
if (!is_link($file)) {
$this->debug(" - " . $file);
unlink($file);
}
}
}
if (file_exists($dir)) {
rmdir($dir);
}
}
public function _obfuscated_FF9498A78FC0B8919A8E97BF99BC88B599A8A5B4949681_($src, $dst)
{
$dir = opendir($src);
@mkdir($dst);
while (false !== ($file = readdir($dir))) {
if ($file != "." && $file != "..") {
if (is_dir($src . "/" . $file)) {
$this->_obfuscated_FF9498A78FC0B8919A8E97BF99BC88B599A8A5B4949681_($src . "/" . $file, $dst . "/" . $file);
} else {
copy($src . "/" . $file, $dst . "/" . $file);
}
}
}
closedir($dir);
}
public function delete_products_warehouses()
{
$this->db->query("TRUNCATE `" . DB_PREFIX . "product_warehouse`");
$this->db->query("TRUNCATE `" . DB_PREFIX . "product_option_warehouse`");
$this->db->query("TRUNCATE `" . DB_PREFIX . "product_related_option_warehouse`");
$this->response->redirect($this->url->link("extension/module/neoseo_exchange1c", "user_token=" . $this->session->data["user_token"], "SSL"));
}
public function delete_products()
{
$this->load->model("catalog/product");
$query = $this->db->query("SELECT product_id FROM `" . DB_PREFIX . "product`");
foreach ($query->rows as $row) {
$this->model_catalog_product->deleteProduct($row["product_id"]);
}
$this->db->query("TRUNCATE `" . DB_PREFIX . "product_to_1c`");
$this->db->query("TRUNCATE `" . DB_PREFIX . "product_option_to_1c`");
$this->response->redirect($this->url->link("extension/module/neoseo_exchange1c", "user_token=" . $this->session->data["user_token"], "SSL"));
}
public function delete_1c_products()
{
$this->load->model("catalog/product");
$query = $this->db->query("SELECT product_id FROM `" . DB_PREFIX . "product_to_1c`");
foreach ($query->rows as $row) {
$this->model_catalog_product->deleteProduct($row["product_id"]);
}
$this->db->query("TRUNCATE `" . DB_PREFIX . "product_to_1c`");
$this->db->query("TRUNCATE `" . DB_PREFIX . "product_option_to_1c`");
$this->response->redirect($this->url->link("extension/module/neoseo_exchange1c", "user_token=" . $this->session->data["user_token"], "SSL"));
}
public function delete_links()
{
$this->db->query("TRUNCATE `" . DB_PREFIX . "product_to_1c`");
$this->db->query("TRUNCATE `" . DB_PREFIX . "product_option_to_1c`");
$this->db->query("TRUNCATE `" . DB_PREFIX . "category_to_1c`");
$this->response->redirect($this->url->link("extension/module/neoseo_exchange1c", "user_token=" . $this->session->data["user_token"], "SSL"));
}
public function delete_categories()
{
$this->load->model("catalog/category");
$query = $this->db->query("SELECT category_id FROM `" . DB_PREFIX . "category`");
foreach ($query->rows as $row) {
$this->model_catalog_category->deleteCategory($row["category_id"]);
}
$this->db->query("TRUNCATE `" . DB_PREFIX . "category_to_1c`");
$this->response->redirect($this->url->link("extension/module/neoseo_exchange1c", "user_token=" . $this->session->data["user_token"], "SSL"));
}
public function delete_manufacturers()
{
$this->load->model("catalog/manufacturer");
$query = $this->db->query("SELECT manufacturer_id FROM `" . DB_PREFIX . "manufacturer`");
foreach ($query->rows as $row) {
$this->model_catalog_manufacturer->deleteManufacturer($row["manufacturer_id"]);
}
$this->response->redirect($this->url->link("extension/module/neoseo_exchange1c", "user_token=" . $this->session->data["user_token"], "SSL"));
}
public function delete_attributes()
{
$this->load->model("catalog/attribute");
$query = $this->db->query("SELECT attribute_id FROM `" . DB_PREFIX . "attribute`");
foreach ($query->rows as $row) {
$this->model_catalog_attribute->deleteAttribute($row["attribute_id"]);
}
$this->load->model("catalog/attribute_group");
$query = $this->db->query("SELECT attribute_group_id FROM `" . DB_PREFIX . "attribute_group`");
foreach ($query->rows as $row) {
$this->model_catalog_attribute_group->deleteAttributeGroup($row["attribute_group_id"]);
}
$this->response->redirect($this->url->link("extension/module/neoseo_exchange1c", "user_token=" . $this->session->data["user_token"], "SSL"));
}
public function delete_options()
{
$this->load->model("catalog/option");
$query = $this->db->query("SELECT option_id FROM `" . DB_PREFIX . "option`");
foreach ($query->rows as $row) {
$this->model_catalog_option->deleteOption($row["option_id"]);
}
if ($this->config->get("neoseo_exchange1c_use_related_options")) {
$this->db->query("TRUNCATE " . DB_PREFIX . "relatedoptions");
$this->db->query("TRUNCATE " . DB_PREFIX . "relatedoptions_discount");
$this->db->query("TRUNCATE " . DB_PREFIX . "relatedoptions_option");
$this->db->query("TRUNCATE " . DB_PREFIX . "relatedoptions_special");
$query = $this->db->query("SHOW TABLES LIKE '" . DB_PREFIX . "relatedoptions_to_char'");
if (0 < $query->num_rows) {
$this->db->query("TRUNCATE " . DB_PREFIX . "relatedoptions_to_char");
}
$this->db->query("TRUNCATE " . DB_PREFIX . "relatedoptions_variant");
$this->db->query("TRUNCATE " . DB_PREFIX . "relatedoptions_variant_option");
$this->db->query("TRUNCATE " . DB_PREFIX . "relatedoptions_variant_product");
}
$this->response->redirect($this->url->link("extension/module/neoseo_exchange1c", "user_token=" . $this->session->data["user_token"], "SSL"));
}
public function get_orders()
{
$query = $this->db->query("SELECT order_id FROM `" . DB_PREFIX . "order`");
$result = [];
foreach ($query->rows as $row) {
$result[] = $row["order_id"];
}
echo json_encode($result);
}
public function import()
{
$this->load->language("extension/module/neoseo_exchange1c");
$this->load->model("tool/neoseo_exchange1c");
if (empty($this->request->files["filename"]["name"])) {
$this->log("! ");
return $this->response->redirect($this->url->link("extension/module/neoseo_exchange1c", "user_token=" . $this->session->data["user_token"], "SSL"));
}
$filename = $this->request->files["filename"]["name"];
$tmpfilename = $this->request->files["filename"]["tmp_name"];
if (!$tmpfilename) {
$this->log($this->language->get("error_post_size"));
$this->session->data["warning"] = $this->language->get("error_post_size");
$this->response->redirect($this->url->link("extension/module/neoseo_exchange1c", "user_token=" . $this->session->data["user_token"], "SSL"));
} else {
$cache = DIR_CACHE . "exchange1c/";
if (!is_dir($cache)) {
mkdir($cache);
}
$zip = new ZipArchive();
$res = $zip->open($tmpfilename);
$this->debug(" " . $tmpfilename . ": " . $res);
if ($res === true) {
$this->debug(" : " . $filename);
$zip->extractTo($cache);
$files = scandir($cache);
$found = 0;
foreach ($files as $file) {
if (is_file($cache . $file)) {
$found++;
$this->debug(" " . $file . " " . $filename);
$this->modeImport($file);
}
}
if (!$found) {
$this->log($this->language->get("error_empty_archive"));
$this->session->data["warning"] = $this->language->get("error_empty_archive");
$this->response->redirect($this->url->link("extension/module/neoseo_exchange1c", "user_token=" . $this->session->data["user_token"], "SSL"));
return NULL;
}
if (is_dir($cache . "import_files")) {
if (substr(VERSION, 0, 1) == "1") {
$images = DIR_IMAGE . "data/import_files/";
} else {
$images = DIR_IMAGE . "catalog/import_files/";
}
if (is_dir($images) && $this->config->get("neoseo_exchange1c_use_tree_delete")) {
$this->debug(" " . $images);
$this->_obfuscated_FF9498A78FC0B8919A8E97BF99BC88B599A8A5B4949681_($cache . "import_files/", $images);
$this->_obfuscated_FFB0898C97918999BBA4C09C9C9F8AB09E93B8A18E9F81_($cache . "import_files/");
} else {
rename($cache . "import_files/", $images);
}
}
} else {
$buffer = file_get_contents($tmpfilename, "r");
if (strpos($buffer, "") || strpos($buffer, "")) {
$this->debug(" : " . $filename);
move_uploaded_file($tmpfilename, $cache . "offers.xml");
$this->modeImport("offers.xml");
} else {
if (strpos($buffer, "")) {
$this->debug(" : " . $filename);
move_uploaded_file($tmpfilename, $cache . "import.xml");
$this->modeImport("import.xml");
} else {
if (strpos($buffer, "")) {
$this->debug(" : " . $filename);
move_uploaded_file($tmpfilename, $cache . "orders.xml");
$this->modeImport("orders.xml");
} else {
if (strpos($buffer, "") && strpos($buffer, "")) {
$this->debug(" : " . $filename);
move_uploaded_file($tmpfilename, $cache . "contragents.xml");
$this->modeImport("contragents.xml");
} else {
$this->log("! : " . $filename . " / " . $buffer);
$json["error"] = $this->language->get("text_upload_error");
$this->response->redirect($this->url->link("extension/module/neoseo_exchange1c", "user_token=" . $this->session->data["user_token"], "SSL"));
}
}
}
}
}
$this->session->data["success"] = $this->language->get("text_upload_success");
$this->response->redirect($this->url->link("extension/module/neoseo_exchange1c", "user_token=" . $this->session->data["user_token"], "SSL"));
}
}
public function export()
{
$this->load->model("tool/neoseo_exchange1c");
$orders = $this->model_tool_neoseo_exchange1c->queryOrders();
header("Content-Description: File Transfer");
header("Content-Type: application/octet-stream");
header("Content-Disposition: attachment; filename=orders.xml");
header("Content-Transfer-Encoding: binary");
header("Expires: 0");
header("Cache-Control: must-revalidate");
header("Pragma: public");
header("Content-Length: " . strlen($orders));
if ($this->config->get("neoseo_exchange1c_order_utf8") == 1) {
if ($this->config->get("neoseo_exchange1c_order_utf8_bom") == 1) {
echo chr(239) . chr(187) . chr(191) . $orders;
} else {
echo $orders;
}
} else {
echo @iconv("utf-8", "cp1251//TRANSLIT", @str_replace("encoding=\"utf-8\"", "encoding=\"cp-1251\"", $orders));
}
}
public function export_product()
{
$this->load->model("catalog/option");
$this->load->model("tool/neoseo_exchange1c");
$options = $this->model_catalog_option->getOptions();
$tmpArchiveName = tempnam("/tmp", "products_zip");
$zip = new ZipArchive();
if ($zip->open($tmpArchiveName) !== true) {
$this->log(" ");
exit;
}
foreach ($options as $option) {
$filenameTmp = tempnam("/tmp", "products_" . $option["name"]);
$filenameArchive = "products_" . $option["name"] . ".xlsx";
$this->model_tool_neoseo_exchange1c->exportProducts($option["option_id"], $option["name"], $filenameTmp);
$zip->addFile($filenameTmp, $filenameArchive);
}
$filenameTmp = tempnam("/tmp", "products");
$filenameArchive = "products.xlsx";
$this->model_tool_neoseo_exchange1c->exportProducts(0, "", $filenameTmp);
$zip->addFile($filenameTmp, $filenameArchive);
$zip->close();
header("Content-Type: application/zip");
header("Content-Disposition: attachment;filename=products.zip");
header("Cache-Control: max-age=0");
header("Pragma: no-cache");
header("Expires: 0");
header("Content-length: " . filesize($tmpArchiveName));
readfile($tmpArchiveName);
exit;
}
public function _obfuscated_FFAF96B3AC85A7B29289A6BEB8A786A99B8EA181999B91_($lines)
{
$res = [];
foreach (explode("
", trim($lines)) as $_obfuscated_0D3F2B313713283C392126350D28011029152F34013E32_) {
if (trim($_obfuscated_0D3F2B313713283C392126350D28011029152F34013E32_) != "") {
$res[] = trim($_obfuscated_0D3F2B313713283C392126350D28011029152F34013E32_);
}
}
return $res;
}
public function modeCheckauth()
{
$this->debug("type=" . $this->request->get["type"] . "&mode=" . $this->request->get["mode"]);
if (!$this->config->get("neoseo_exchange1c_status")) {
$this->debug(" ");
echo "failure
1c module OFF";
exit;
}
if ($this->config->get("neoseo_exchange1c_ip_list") != "") {
$ip = $_SERVER["REMOTE_ADDR"];
$allow_ips = $this->_obfuscated_FFAF96B3AC85A7B29289A6BEB8A786A99B8EA181999B91_($this->config->get("neoseo_exchange1c_ip_list"));
if (!in_array($ip, $allow_ips)) {
$this->debug(" IP : " . $ip . ". IP : " . implode(",", $allow_ips));
echo "failure
IP is not allowed";
exit;
}
}
$login = "";
$password = "";
if (isset($_SERVER["REMOTE_USER"])) {
$tmp = explode(" ", $_SERVER["REMOTE_USER"]);
$tmp = explode(":", base64_decode($tmp[1]));
list($login, $password) = $tmp;
} else {
if (isset($_SERVER["REDIRECT_REMOTE_USER"])) {
$tmp = explode(" ", $_SERVER["REDIRECT_REMOTE_USER"]);
$tmp = explode(":", base64_decode($tmp[1]));
list($login, $password) = $tmp;
} else {
if (isset($_SERVER["PHP_AUTH_USER"]) && isset($_SERVER["PHP_AUTH_PW"])) {
$login = $_SERVER["PHP_AUTH_USER"];
$password = $_SERVER["PHP_AUTH_PW"];
}
}
}
if (!$login) {
$this->debug(" ");
echo "failure
login required
Possible solution:
Add this line to your .htaccess file after RewriteEngine ON
RewriteRule .*neoseo_exchange1c.php\$ - [E=REMOTE_USER:%{HTTP:Authorization},L]
";
exit;
}
if (!$password) {
$this->debug(" ");
echo "failure
password required
";
exit;
}
if ($login != $this->config->get("neoseo_exchange1c_username")) {
$this->debug(" : '" . $login . "', : '" . $this->config->get("neoseo_exchange1c_username") . "'");
echo "failure
error login
";
exit;
}
if ($password != $this->config->get("neoseo_exchange1c_password")) {
$this->debug(" : '" . $password . "', : '" . $this->config->get("neoseo_exchange1c_password") . "'");
echo "failure
error password
";
exit;
}
$this->log(" : " . md5($this->config->get("neoseo_exchange1c_password")));
echo "success
key
";
echo md5($this->config->get("neoseo_exchange1c_password")) . "
";
}
public function _obfuscated_FFB5888EB5B4AF8C818CAA9A8D8AB8A39BC0928398A881_()
{
$cache = DIR_CACHE . "exchange1c/";
$this->_obfuscated_FFB0898C97918999BBA4C09C9C9F8AB09E93B8A18E9F81_($cache);
mkdir($cache);
}
public function modeCatalogInit()
{
$this->debug("type=" . $this->request->get["type"] . "&mode=" . $this->request->get["mode"]);
$this->_obfuscated_FFB5888EB5B4AF8C818CAA9A8D8AB8A39BC0928398A881_();
$limit = 104857600;
if ($this->config->get("neoseo_exchange1c_enable_zip")) {
$this->log(" zip");
echo "zip=yes
";
} else {
$this->log(" ");
echo "zip=no
";
}
echo "file_limit=" . $limit . "
";
$this->log(" ");
}
public function modeSaleInit()
{
$this->debug("type=" . $this->request->get["type"] . "&mode=" . $this->request->get["mode"]);
$limit = 104857600;
echo "zip=no
";
echo "file_limit=" . $limit . "
";
$this->debug(" ");
}
private function checkUploadFileTree($path, $curDir = NULL)
{
if (!$curDir) {
$curDir = DIR_CACHE . "exchange1c/";
}
foreach (explode("/", $path) as $name) {
if ($name) {
if (file_exists($curDir . $name)) {
if (is_dir($curDir . $name)) {
$curDir = $curDir . $name . "/";
} else {
unlink($curDir . $name);
}
}
if (!mkdir($curDir . $name)) {
$this->log(" : " . $curDir . $name);
}
$curDir = $curDir . $name . "/";
}
}
}
public function modeFile()
{
$this->debug("type=" . $this->request->get["type"] . "&mode=" . $this->request->get["mode"] . "&filename=" . $this->request->get["filename"]);
if (!isset($this->request->cookie["key"])) {
$this->log("type=catalog&mode=file: ");
} else {
if ($this->request->cookie["key"] != md5($this->config->get("neoseo_exchange1c_password"))) {
$this->log("type=catalog&mode=file ");
echo "failure
Session error";
} else {
$wait_import_command = $this->config->get("neoseo_exchange1c_wait_import_command");
$cache = DIR_CACHE . "exchange1c/";
if (!is_dir($cache)) {
mkdir($cache);
}
if (isset($this->request->get["filename"])) {
$upload_file = $cache . $this->request->get["filename"];
$isImage = false;
if (strpos($this->request->get["filename"], "import_files") !== false) {
$isImage = true;
if (substr(VERSION, 0, 1) == "1") {
$cache = DIR_IMAGE . "data/";
} else {
$cache = DIR_IMAGE . "catalog/";
}
if (strpos($this->request->get["filename"], ".pdf") !== false) {
$cache = DIR_DOWNLOAD;
$upload_file = $cache . $this->request->get["filename"];
$upload_file = $cache . basename($upload_file);
$this->checkUploadFileTree("", $cache);
} else {
$upload_file = $cache . $this->request->get["filename"];
$this->checkUploadFileTree(dirname($this->request->get["filename"]), $cache);
}
}
$data = file_get_contents("php://input");
if ($data === false) {
$this->log("type=catalog&mode=file: ");
echo "failure
No data file
";
} else {
$isOrders = false;
if (false !== strpos($data, "<")) {
$isOrders = true;
$upload_file = $cache . "orders.xml";
}
$fp = fopen($upload_file, "wb");
if (!$fp) {
$this->log("type=catalog&mode=file: ");
echo "failure
";
echo "Can not open file: " . $upload_file . "
";
} else {
$result = fwrite($fp, $data);
fclose($fp);
if ($result === strlen($data)) {
$this->log(" " . $upload_file . " ");
echo "success
";
chmod($upload_file, 511);
} else {
if (strlen($data) < $result) {
$this->log("type=catalog&mode=file: ! strlen, . php ! !");
echo "success
";
chmod($upload_file, 511);
} else {
$this->log("type=catalog&mode=file: . " . strlen($data) . ", " . (int) $result);
echo "failure
";
}
}
if ($isImage) {
return NULL;
}
if ($isOrders && !$wait_import_command) {
$this->modeImport("orders.xml");
} else {
$this->load->model("tool/neoseo_exchange1c");
$zip = new ZipArchive();
$res = $zip->open($upload_file);
$this->debug(" - " . $res);
if ($res !== true) {
if ((strpos($upload_file, "orders") !== false || strpos($upload_file, "documents") !== false) && !$wait_import_command) {
$this->model_tool_neoseo_exchange1c->parseOrders($this->request->get["filename"]);
}
} else {
$this->debug(" : " . $upload_file);
$zip->extractTo($cache);
$files = scandir($cache);
$found = 0;
foreach ($files as $file) {
if (is_file($cache . $file)) {
$found++;
$this->debug(" " . $file . " " . $upload_file);
if (strpos($file, "import") !== false) {
$this->model_tool_neoseo_exchange1c->parseImport($file);
} else {
if (strpos($file, "offers") !== false) {
$this->model_tool_neoseo_exchange1c->parseOffers($file);
} else {
if (strpos($file, "orders") !== false || strpos($file, "documents") !== false) {
$this->model_tool_neoseo_exchange1c->parseOrders($file);
} else {
if (strpos($file, "contragents") !== false) {
$this->model_tool_neoseo_exchange1c->parseContragents($file);
}
}
}
}
}
}
if (!$found) {
$this->log($this->language->get("error_empty_archive"));
$this->session->data["warning"] = $this->language->get("error_empty_archive");
$this->response->redirect($this->url->link("extension/module/neoseo_exchange1c", "user_token=" . $this->session->data["user_token"], "SSL"));
return NULL;
}
if (is_dir($cache . "import_files")) {
$this->log(" . ");
if (substr(VERSION, 0, 1) == "1") {
$images = DIR_IMAGE . "data/import_files/";
} else {
$images = DIR_IMAGE . "catalog/import_files/";
}
if (strpos($this->request->get["filename"], ".pdf") !== false) {
$cache = DIR_DOWNLOAD;
}
if (is_dir($images) && $this->config->get("neoseo_exchange1c_use_tree_delete")) {
$this->debug(" " . $images);
$this->_obfuscated_FF9498A78FC0B8919A8E97BF99BC88B599A8A5B4949681_($cache . "import_files/", $images);
$this->_obfuscated_FFB0898C97918999BBA4C09C9C9F8AB09E93B8A18E9F81_($cache . "import_files/");
} else {
rename($cache . "import_files/", $images);
}
}
}
}
}
}
} else {
$this->log("type=catalog&mode=file: ");
echo "failure
ERROR 10: No file name variable";
}
}
}
}
public function modeImport($manual = false)
{
if ($manual) {
$filename = $manual;
} else {
if (isset($this->request->get["filename"])) {
$filename = $this->request->get["filename"];
$this->debug("type=" . $this->request->get["type"] . "&mode=" . $this->request->get["mode"] . "&filename=" . $filename);
} else {
echo "failure
ERROR 10: No file name variable";
return 0;
}
}
$cache = DIR_CACHE . "exchange1c/";
if (!is_dir($cache)) {
mkdir($cache);
}
$fullFileName = $cache . $filename;
if (!file_exists($fullFileName)) {
$this->log(" : " . $fullFileName);
echo "failure
ERROR 10: file not found";
return 0;
}
$this->load->model("tool/neoseo_exchange1c");
if (strpos($filename, "import") !== false) {
if ($this->config->get($this->_moduleSysName . "_user_answer_for_moy_sklad") == 1) {
$marker_filename = DIR_CACHE . "exchange1c/" . "import_marker.json";
if (file_exists($marker_filename) && time() - filemtime($marker_filename) < 300) {
$this->log(" : " . $marker_filename);
$status = json_decode(file_get_contents($marker_filename), true);
if ($status["status"] == "processing" || $status["status"] == "success") {
$this->log(" import_marker : " . $status["status"]);
if (!$manual) {
echo $status["status"] . "
";
}
} else {
$this->log(" import_marker : " . $status["status"]);
}
} else {
$status["status"] = "processing";
file_put_contents($marker_filename, json_encode($status));
$this->log(" import_marker : " . $status["status"]);
$this->model_tool_neoseo_exchange1c->parseImport($filename);
$status["status"] = "success";
file_put_contents($marker_filename, json_encode($status));
$this->log(" import_marker : " . $status["status"]);
}
} else {
$this->model_tool_neoseo_exchange1c->parseImport($filename);
if (!$manual) {
echo "success
";
}
}
} else {
if (strpos($filename, "offers") !== false || strpos($filename, "rests") !== false || strpos($filename, "prices") !== false) {
if ($this->config->get($this->_moduleSysName . "_user_answer_for_moy_sklad") == 1) {
$marker_filename = DIR_CACHE . "exchange1c/" . "offer_marker.json";
if (file_exists($marker_filename) && time() - filemtime($marker_filename) < 300) {
$this->log(" : " . $marker_filename);
$status = json_decode(file_get_contents($marker_filename), true);
if ($status["status"] == "processing" || $status["status"] == "success") {
$this->log(" offer_marker : " . $status["status"]);
if (!$manual) {
echo $status["status"] . "
";
}
} else {
$this->log(" offer_marker : " . $status["status"]);
}
} else {
$status["status"] = "processing";
file_put_contents($marker_filename, json_encode($status));
$this->log(" offer_marker : " . $status["status"]);
$this->model_tool_neoseo_exchange1c->parseOffers($filename);
$status["status"] = "success";
file_put_contents($marker_filename, json_encode($status));
$this->log(" offer_marker : " . $status["status"]);
}
} else {
$this->model_tool_neoseo_exchange1c->parseOffers($filename);
if (!$manual) {
echo "success
";
}
}
} else {
if (strpos($filename, "orders") !== false || strpos($filename, "documents") !== false) {
$this->model_tool_neoseo_exchange1c->parseOrders($filename);
if (!$manual) {
echo "success
";
}
} else {
if (strpos($filename, "contragents") !== false) {
$this->model_tool_neoseo_exchange1c->parseContragents($filename);
if (!$manual) {
echo "success
";
}
} else {
echo "failure
";
echo $filename;
}
}
}
}
if ($this->config->get($this->_moduleSysName . "_update_auto_neoseo_filter_warehouse") == 1) {
$this->log(" \"\"");
$this->model_tool_neoseo_exchange1c->updateNeoSeoFilterWarehouse();
}
if ($this->config->get($this->_moduleSysName . "_product_update_avaro") == 1) {
$this->log(" \"HYPER PRODUCT MODELS (hpmodel_links)\"");
$this->model_tool_neoseo_exchange1c->updateModuleHyperProductModels();
}
$this->cache->delete("product");
}
public function modeExport()
{
$this->load->model("tool/neoseo_exchange1c");
$products = $this->model_tool_neoseo_exchange1c->queryProducts();
header("Content-Type: text/xml; charset=utf-8", true);
echo $products;
}
public function modeExportAll()
{
$this->load->model("tool/neoseo_exchange1c");
$products = $this->model_tool_neoseo_exchange1c->queryAllProducts();
header("Content-Type: text/xml; charset=utf-8", true);
echo $products;
}
public function modeQueryOrders()
{
$this->debug("type=" . $this->request->get["type"] . "&mode=" . $this->request->get["mode"]);
$this->load->model("tool/neoseo_exchange1c");
$orders = $this->model_tool_neoseo_exchange1c->queryOrders();
if ($this->config->get("neoseo_exchange1c_order_utf8") == 1) {
header("Content-Type: text/html; charset=utf-8", true);
if ($this->config->get("neoseo_exchange1c_order_utf8_bom") == 1) {
echo chr(239) . chr(187) . chr(191) . $orders;
} else {
echo $orders;
}
} else {
header("Content-Type: text/html; charset=win-1251", true);
echo @iconv("utf-8", "cp1251//TRANSLIT", @str_replace("encoding=\"utf-8\"", "encoding=\"cp-1251\"", $orders));
}
}
public function changeOrderExport1C()
{
$json = [];
if (!isset($this->request->post["order_id"]) && !isset($this->request->post["status"])) {
$json["success"] = false;
$this->response->setOutput(json_encode($json));
return false;
}
$order_id = $this->request->post["order_id"];
$this->load->model("tool/" . $this->_moduleSysName);
if ($this->request->post["status"] == "0") {
$this->model_tool_neoseo_exchange1c->addOrderTo1C($order_id);
} else {
$this->model_tool_neoseo_exchange1c->deleteOrderTo1C($order_id);
}
$json["success"] = true;
$this->response->setOutput(json_encode($json));
}
public function deleteExportListOrders()
{
$this->load->language("extension/module/neoseo_exchange1c");
$this->load->model("tool/" . $this->_moduleSysName);
$orders = $this->model_tool_neoseo_exchange1c->getAllOrderTo1C();
if ($orders) {
foreach ($orders as $order) {
$this->model_tool_neoseo_exchange1c->deleteOrderTo1C($order["order_id"]);
}
$response = true;
} else {
$response = false;
}
if ($response) {
exit(json_encode(["message" => $this->language->get("text_cleaned")]));
}
exit(json_encode(["message" => $this->language->get("text_err_cleaned")]));
}
public function counterpartiesDelete()
{
$this->db->query("DELETE FROM `" . DB_PREFIX . "customer` WHERE customer_id in (SELECT customer_id FROM `" . DB_PREFIX . "customer_to_1c`)");
$this->db->query("DELETE FROM `" . DB_PREFIX . "address` WHERE customer_id in (SELECT customer_id FROM `" . DB_PREFIX . "customer_to_1c`)");
$this->db->query("TRUNCATE `" . DB_PREFIX . "customer_to_1c`");
$this->response->redirect($this->url->link("extension/module/neoseo_exchange1c", "token=" . $this->session->data["token"], "SSL"));
}
public function counterpartiesDeleteLinks()
{
$this->db->query("TRUNCATE `" . DB_PREFIX . "customer_to_1c`");
$this->response->redirect($this->url->link("extension/module/neoseo_exchange1c", "token=" . $this->session->data["token"], "SSL"));
}
public function _obfuscated_FFBEA4B9AFBBB9BD9D98A8A88DBCADB2BDB792A39098A1_()
{
$this->debug("type=" . $this->request->get["type"] . "&mode=" . $this->request->get["mode"]);
$this->load->model("tool/neoseo_exchange1c");
$_obfuscated_0D07081A0F400F18170D4040092E340A39293B1F263011_ = $this->model_tool_neoseo_exchange1c->queryContragents();
header("Content-Type: text/xml; charset=utf-8", true);
echo $_obfuscated_0D07081A0F400F18170D4040092E340A39293B1F263011_;
}
public function exportContragents()
{
$this->load->model("tool/neoseo_exchange1c");
$c_data = $this->model_tool_neoseo_exchange1c->queryContragents();
header("Content-Description: File Transfer");
header("Content-Type: application/octet-stream");
header("Content-Disposition: attachment; filename=contragents.xml");
header("Content-Transfer-Encoding: binary");
header("Expires: 0");
header("Cache-Control: must-revalidate");
header("Pragma: public");
header("Content-Length: " . strlen($c_data));
header("Content-Type: text/xml; charset=utf-8", true);
echo $c_data;
}
}
?>
Did this file decode correctly?
Original Code
<?php
require_once DIR_SYSTEM . "/engine/neoseo_controller.php";
class ControllerToolNeoSeoExchange1c extends NeoSeoController
{
private $error = [];
public function __construct($registry)
{
parent::__construct($registry);
$this->_moduleSysName = "neoseo_exchange1c";
$this->_logFile = $this->_moduleSysName . ".log";
$this->debug = $this->config->get($this->_moduleSysName . "_debug") == 1;
}
public function _obfuscated_FFB0898C97918999BBA4C09C9C9F8AB09E93B8A18E9F81_($dir)
{
$_obfuscated_0D1A142C5B2512133F340B240F1A332C273801175C3832_ = glob($dir . ".*", GLOB_MARK);
foreach ($_obfuscated_0D1A142C5B2512133F340B240F1A332C273801175C3832_ as $file) {
if (!is_dir($file)) {
$this->debug(" - " . $file);
unlink($file);
}
}
$_obfuscated_0D1A142C5B2512133F340B240F1A332C273801175C3832_ = glob($dir . "*", GLOB_MARK);
foreach ($_obfuscated_0D1A142C5B2512133F340B240F1A332C273801175C3832_ as $file) {
if (is_dir($file)) {
$this->_obfuscated_FFB0898C97918999BBA4C09C9C9F8AB09E93B8A18E9F81_($file);
} else {
if (!is_link($file)) {
$this->debug(" - " . $file);
unlink($file);
}
}
}
if (file_exists($dir)) {
rmdir($dir);
}
}
public function _obfuscated_FF9498A78FC0B8919A8E97BF99BC88B599A8A5B4949681_($src, $dst)
{
$dir = opendir($src);
@mkdir($dst);
while (false !== ($file = readdir($dir))) {
if ($file != "." && $file != "..") {
if (is_dir($src . "/" . $file)) {
$this->_obfuscated_FF9498A78FC0B8919A8E97BF99BC88B599A8A5B4949681_($src . "/" . $file, $dst . "/" . $file);
} else {
copy($src . "/" . $file, $dst . "/" . $file);
}
}
}
closedir($dir);
}
public function delete_products_warehouses()
{
$this->db->query("TRUNCATE `" . DB_PREFIX . "product_warehouse`");
$this->db->query("TRUNCATE `" . DB_PREFIX . "product_option_warehouse`");
$this->db->query("TRUNCATE `" . DB_PREFIX . "product_related_option_warehouse`");
$this->response->redirect($this->url->link("extension/module/neoseo_exchange1c", "user_token=" . $this->session->data["user_token"], "SSL"));
}
public function delete_products()
{
$this->load->model("catalog/product");
$query = $this->db->query("SELECT product_id FROM `" . DB_PREFIX . "product`");
foreach ($query->rows as $row) {
$this->model_catalog_product->deleteProduct($row["product_id"]);
}
$this->db->query("TRUNCATE `" . DB_PREFIX . "product_to_1c`");
$this->db->query("TRUNCATE `" . DB_PREFIX . "product_option_to_1c`");
$this->response->redirect($this->url->link("extension/module/neoseo_exchange1c", "user_token=" . $this->session->data["user_token"], "SSL"));
}
public function delete_1c_products()
{
$this->load->model("catalog/product");
$query = $this->db->query("SELECT product_id FROM `" . DB_PREFIX . "product_to_1c`");
foreach ($query->rows as $row) {
$this->model_catalog_product->deleteProduct($row["product_id"]);
}
$this->db->query("TRUNCATE `" . DB_PREFIX . "product_to_1c`");
$this->db->query("TRUNCATE `" . DB_PREFIX . "product_option_to_1c`");
$this->response->redirect($this->url->link("extension/module/neoseo_exchange1c", "user_token=" . $this->session->data["user_token"], "SSL"));
}
public function delete_links()
{
$this->db->query("TRUNCATE `" . DB_PREFIX . "product_to_1c`");
$this->db->query("TRUNCATE `" . DB_PREFIX . "product_option_to_1c`");
$this->db->query("TRUNCATE `" . DB_PREFIX . "category_to_1c`");
$this->response->redirect($this->url->link("extension/module/neoseo_exchange1c", "user_token=" . $this->session->data["user_token"], "SSL"));
}
public function delete_categories()
{
$this->load->model("catalog/category");
$query = $this->db->query("SELECT category_id FROM `" . DB_PREFIX . "category`");
foreach ($query->rows as $row) {
$this->model_catalog_category->deleteCategory($row["category_id"]);
}
$this->db->query("TRUNCATE `" . DB_PREFIX . "category_to_1c`");
$this->response->redirect($this->url->link("extension/module/neoseo_exchange1c", "user_token=" . $this->session->data["user_token"], "SSL"));
}
public function delete_manufacturers()
{
$this->load->model("catalog/manufacturer");
$query = $this->db->query("SELECT manufacturer_id FROM `" . DB_PREFIX . "manufacturer`");
foreach ($query->rows as $row) {
$this->model_catalog_manufacturer->deleteManufacturer($row["manufacturer_id"]);
}
$this->response->redirect($this->url->link("extension/module/neoseo_exchange1c", "user_token=" . $this->session->data["user_token"], "SSL"));
}
public function delete_attributes()
{
$this->load->model("catalog/attribute");
$query = $this->db->query("SELECT attribute_id FROM `" . DB_PREFIX . "attribute`");
foreach ($query->rows as $row) {
$this->model_catalog_attribute->deleteAttribute($row["attribute_id"]);
}
$this->load->model("catalog/attribute_group");
$query = $this->db->query("SELECT attribute_group_id FROM `" . DB_PREFIX . "attribute_group`");
foreach ($query->rows as $row) {
$this->model_catalog_attribute_group->deleteAttributeGroup($row["attribute_group_id"]);
}
$this->response->redirect($this->url->link("extension/module/neoseo_exchange1c", "user_token=" . $this->session->data["user_token"], "SSL"));
}
public function delete_options()
{
$this->load->model("catalog/option");
$query = $this->db->query("SELECT option_id FROM `" . DB_PREFIX . "option`");
foreach ($query->rows as $row) {
$this->model_catalog_option->deleteOption($row["option_id"]);
}
if ($this->config->get("neoseo_exchange1c_use_related_options")) {
$this->db->query("TRUNCATE " . DB_PREFIX . "relatedoptions");
$this->db->query("TRUNCATE " . DB_PREFIX . "relatedoptions_discount");
$this->db->query("TRUNCATE " . DB_PREFIX . "relatedoptions_option");
$this->db->query("TRUNCATE " . DB_PREFIX . "relatedoptions_special");
$query = $this->db->query("SHOW TABLES LIKE '" . DB_PREFIX . "relatedoptions_to_char'");
if (0 < $query->num_rows) {
$this->db->query("TRUNCATE " . DB_PREFIX . "relatedoptions_to_char");
}
$this->db->query("TRUNCATE " . DB_PREFIX . "relatedoptions_variant");
$this->db->query("TRUNCATE " . DB_PREFIX . "relatedoptions_variant_option");
$this->db->query("TRUNCATE " . DB_PREFIX . "relatedoptions_variant_product");
}
$this->response->redirect($this->url->link("extension/module/neoseo_exchange1c", "user_token=" . $this->session->data["user_token"], "SSL"));
}
public function get_orders()
{
$query = $this->db->query("SELECT order_id FROM `" . DB_PREFIX . "order`");
$result = [];
foreach ($query->rows as $row) {
$result[] = $row["order_id"];
}
echo json_encode($result);
}
public function import()
{
$this->load->language("extension/module/neoseo_exchange1c");
$this->load->model("tool/neoseo_exchange1c");
if (empty($this->request->files["filename"]["name"])) {
$this->log("! ");
return $this->response->redirect($this->url->link("extension/module/neoseo_exchange1c", "user_token=" . $this->session->data["user_token"], "SSL"));
}
$filename = $this->request->files["filename"]["name"];
$tmpfilename = $this->request->files["filename"]["tmp_name"];
if (!$tmpfilename) {
$this->log($this->language->get("error_post_size"));
$this->session->data["warning"] = $this->language->get("error_post_size");
$this->response->redirect($this->url->link("extension/module/neoseo_exchange1c", "user_token=" . $this->session->data["user_token"], "SSL"));
} else {
$cache = DIR_CACHE . "exchange1c/";
if (!is_dir($cache)) {
mkdir($cache);
}
$zip = new ZipArchive();
$res = $zip->open($tmpfilename);
$this->debug(" " . $tmpfilename . ": " . $res);
if ($res === true) {
$this->debug(" : " . $filename);
$zip->extractTo($cache);
$files = scandir($cache);
$found = 0;
foreach ($files as $file) {
if (is_file($cache . $file)) {
$found++;
$this->debug(" " . $file . " " . $filename);
$this->modeImport($file);
}
}
if (!$found) {
$this->log($this->language->get("error_empty_archive"));
$this->session->data["warning"] = $this->language->get("error_empty_archive");
$this->response->redirect($this->url->link("extension/module/neoseo_exchange1c", "user_token=" . $this->session->data["user_token"], "SSL"));
return NULL;
}
if (is_dir($cache . "import_files")) {
if (substr(VERSION, 0, 1) == "1") {
$images = DIR_IMAGE . "data/import_files/";
} else {
$images = DIR_IMAGE . "catalog/import_files/";
}
if (is_dir($images) && $this->config->get("neoseo_exchange1c_use_tree_delete")) {
$this->debug(" " . $images);
$this->_obfuscated_FF9498A78FC0B8919A8E97BF99BC88B599A8A5B4949681_($cache . "import_files/", $images);
$this->_obfuscated_FFB0898C97918999BBA4C09C9C9F8AB09E93B8A18E9F81_($cache . "import_files/");
} else {
rename($cache . "import_files/", $images);
}
}
} else {
$buffer = file_get_contents($tmpfilename, "r");
if (strpos($buffer, "") || strpos($buffer, "")) {
$this->debug(" : " . $filename);
move_uploaded_file($tmpfilename, $cache . "offers.xml");
$this->modeImport("offers.xml");
} else {
if (strpos($buffer, "")) {
$this->debug(" : " . $filename);
move_uploaded_file($tmpfilename, $cache . "import.xml");
$this->modeImport("import.xml");
} else {
if (strpos($buffer, "")) {
$this->debug(" : " . $filename);
move_uploaded_file($tmpfilename, $cache . "orders.xml");
$this->modeImport("orders.xml");
} else {
if (strpos($buffer, "") && strpos($buffer, "")) {
$this->debug(" : " . $filename);
move_uploaded_file($tmpfilename, $cache . "contragents.xml");
$this->modeImport("contragents.xml");
} else {
$this->log("! : " . $filename . " / " . $buffer);
$json["error"] = $this->language->get("text_upload_error");
$this->response->redirect($this->url->link("extension/module/neoseo_exchange1c", "user_token=" . $this->session->data["user_token"], "SSL"));
}
}
}
}
}
$this->session->data["success"] = $this->language->get("text_upload_success");
$this->response->redirect($this->url->link("extension/module/neoseo_exchange1c", "user_token=" . $this->session->data["user_token"], "SSL"));
}
}
public function export()
{
$this->load->model("tool/neoseo_exchange1c");
$orders = $this->model_tool_neoseo_exchange1c->queryOrders();
header("Content-Description: File Transfer");
header("Content-Type: application/octet-stream");
header("Content-Disposition: attachment; filename=orders.xml");
header("Content-Transfer-Encoding: binary");
header("Expires: 0");
header("Cache-Control: must-revalidate");
header("Pragma: public");
header("Content-Length: " . strlen($orders));
if ($this->config->get("neoseo_exchange1c_order_utf8") == 1) {
if ($this->config->get("neoseo_exchange1c_order_utf8_bom") == 1) {
echo chr(239) . chr(187) . chr(191) . $orders;
} else {
echo $orders;
}
} else {
echo @iconv("utf-8", "cp1251//TRANSLIT", @str_replace("encoding=\"utf-8\"", "encoding=\"cp-1251\"", $orders));
}
}
public function export_product()
{
$this->load->model("catalog/option");
$this->load->model("tool/neoseo_exchange1c");
$options = $this->model_catalog_option->getOptions();
$tmpArchiveName = tempnam("/tmp", "products_zip");
$zip = new ZipArchive();
if ($zip->open($tmpArchiveName) !== true) {
$this->log(" ");
exit;
}
foreach ($options as $option) {
$filenameTmp = tempnam("/tmp", "products_" . $option["name"]);
$filenameArchive = "products_" . $option["name"] . ".xlsx";
$this->model_tool_neoseo_exchange1c->exportProducts($option["option_id"], $option["name"], $filenameTmp);
$zip->addFile($filenameTmp, $filenameArchive);
}
$filenameTmp = tempnam("/tmp", "products");
$filenameArchive = "products.xlsx";
$this->model_tool_neoseo_exchange1c->exportProducts(0, "", $filenameTmp);
$zip->addFile($filenameTmp, $filenameArchive);
$zip->close();
header("Content-Type: application/zip");
header("Content-Disposition: attachment;filename=products.zip");
header("Cache-Control: max-age=0");
header("Pragma: no-cache");
header("Expires: 0");
header("Content-length: " . filesize($tmpArchiveName));
readfile($tmpArchiveName);
exit;
}
public function _obfuscated_FFAF96B3AC85A7B29289A6BEB8A786A99B8EA181999B91_($lines)
{
$res = [];
foreach (explode("\n", trim($lines)) as $_obfuscated_0D3F2B313713283C392126350D28011029152F34013E32_) {
if (trim($_obfuscated_0D3F2B313713283C392126350D28011029152F34013E32_) != "") {
$res[] = trim($_obfuscated_0D3F2B313713283C392126350D28011029152F34013E32_);
}
}
return $res;
}
public function modeCheckauth()
{
$this->debug("type=" . $this->request->get["type"] . "&mode=" . $this->request->get["mode"]);
if (!$this->config->get("neoseo_exchange1c_status")) {
$this->debug(" ");
echo "failure\n1c module OFF";
exit;
}
if ($this->config->get("neoseo_exchange1c_ip_list") != "") {
$ip = $_SERVER["REMOTE_ADDR"];
$allow_ips = $this->_obfuscated_FFAF96B3AC85A7B29289A6BEB8A786A99B8EA181999B91_($this->config->get("neoseo_exchange1c_ip_list"));
if (!in_array($ip, $allow_ips)) {
$this->debug(" IP : " . $ip . ". IP : " . implode(",", $allow_ips));
echo "failure\nIP is not allowed";
exit;
}
}
$login = "";
$password = "";
if (isset($_SERVER["REMOTE_USER"])) {
$tmp = explode(" ", $_SERVER["REMOTE_USER"]);
$tmp = explode(":", base64_decode($tmp[1]));
list($login, $password) = $tmp;
} else {
if (isset($_SERVER["REDIRECT_REMOTE_USER"])) {
$tmp = explode(" ", $_SERVER["REDIRECT_REMOTE_USER"]);
$tmp = explode(":", base64_decode($tmp[1]));
list($login, $password) = $tmp;
} else {
if (isset($_SERVER["PHP_AUTH_USER"]) && isset($_SERVER["PHP_AUTH_PW"])) {
$login = $_SERVER["PHP_AUTH_USER"];
$password = $_SERVER["PHP_AUTH_PW"];
}
}
}
if (!$login) {
$this->debug(" ");
echo "failure\nlogin required\nPossible solution:\nAdd this line to your .htaccess file after RewriteEngine ON\nRewriteRule .*neoseo_exchange1c.php\$ - [E=REMOTE_USER:%{HTTP:Authorization},L]\n";
exit;
}
if (!$password) {
$this->debug(" ");
echo "failure\npassword required\n";
exit;
}
if ($login != $this->config->get("neoseo_exchange1c_username")) {
$this->debug(" : '" . $login . "', : '" . $this->config->get("neoseo_exchange1c_username") . "'");
echo "failure\nerror login\n";
exit;
}
if ($password != $this->config->get("neoseo_exchange1c_password")) {
$this->debug(" : '" . $password . "', : '" . $this->config->get("neoseo_exchange1c_password") . "'");
echo "failure\nerror password\n";
exit;
}
$this->log(" : " . md5($this->config->get("neoseo_exchange1c_password")));
echo "success\nkey\n";
echo md5($this->config->get("neoseo_exchange1c_password")) . "\n";
}
public function _obfuscated_FFB5888EB5B4AF8C818CAA9A8D8AB8A39BC0928398A881_()
{
$cache = DIR_CACHE . "exchange1c/";
$this->_obfuscated_FFB0898C97918999BBA4C09C9C9F8AB09E93B8A18E9F81_($cache);
mkdir($cache);
}
public function modeCatalogInit()
{
$this->debug("type=" . $this->request->get["type"] . "&mode=" . $this->request->get["mode"]);
$this->_obfuscated_FFB5888EB5B4AF8C818CAA9A8D8AB8A39BC0928398A881_();
$limit = 104857600;
if ($this->config->get("neoseo_exchange1c_enable_zip")) {
$this->log(" zip");
echo "zip=yes\n";
} else {
$this->log(" ");
echo "zip=no\n";
}
echo "file_limit=" . $limit . "\n";
$this->log(" ");
}
public function modeSaleInit()
{
$this->debug("type=" . $this->request->get["type"] . "&mode=" . $this->request->get["mode"]);
$limit = 104857600;
echo "zip=no\n";
echo "file_limit=" . $limit . "\n";
$this->debug(" ");
}
private function checkUploadFileTree($path, $curDir = NULL)
{
if (!$curDir) {
$curDir = DIR_CACHE . "exchange1c/";
}
foreach (explode("/", $path) as $name) {
if ($name) {
if (file_exists($curDir . $name)) {
if (is_dir($curDir . $name)) {
$curDir = $curDir . $name . "/";
} else {
unlink($curDir . $name);
}
}
if (!mkdir($curDir . $name)) {
$this->log(" : " . $curDir . $name);
}
$curDir = $curDir . $name . "/";
}
}
}
public function modeFile()
{
$this->debug("type=" . $this->request->get["type"] . "&mode=" . $this->request->get["mode"] . "&filename=" . $this->request->get["filename"]);
if (!isset($this->request->cookie["key"])) {
$this->log("type=catalog&mode=file: ");
} else {
if ($this->request->cookie["key"] != md5($this->config->get("neoseo_exchange1c_password"))) {
$this->log("type=catalog&mode=file ");
echo "failure\nSession error";
} else {
$wait_import_command = $this->config->get("neoseo_exchange1c_wait_import_command");
$cache = DIR_CACHE . "exchange1c/";
if (!is_dir($cache)) {
mkdir($cache);
}
if (isset($this->request->get["filename"])) {
$upload_file = $cache . $this->request->get["filename"];
$isImage = false;
if (strpos($this->request->get["filename"], "import_files") !== false) {
$isImage = true;
if (substr(VERSION, 0, 1) == "1") {
$cache = DIR_IMAGE . "data/";
} else {
$cache = DIR_IMAGE . "catalog/";
}
if (strpos($this->request->get["filename"], ".pdf") !== false) {
$cache = DIR_DOWNLOAD;
$upload_file = $cache . $this->request->get["filename"];
$upload_file = $cache . basename($upload_file);
$this->checkUploadFileTree("", $cache);
} else {
$upload_file = $cache . $this->request->get["filename"];
$this->checkUploadFileTree(dirname($this->request->get["filename"]), $cache);
}
}
$data = file_get_contents("php://input");
if ($data === false) {
$this->log("type=catalog&mode=file: ");
echo "failure\nNo data file\n";
} else {
$isOrders = false;
if (false !== strpos($data, "<")) {
$isOrders = true;
$upload_file = $cache . "orders.xml";
}
$fp = fopen($upload_file, "wb");
if (!$fp) {
$this->log("type=catalog&mode=file: ");
echo "failure\n";
echo "Can not open file: " . $upload_file . "\n";
} else {
$result = fwrite($fp, $data);
fclose($fp);
if ($result === strlen($data)) {
$this->log(" " . $upload_file . " ");
echo "success\n";
chmod($upload_file, 511);
} else {
if (strlen($data) < $result) {
$this->log("type=catalog&mode=file: ! strlen, . php ! !");
echo "success\n";
chmod($upload_file, 511);
} else {
$this->log("type=catalog&mode=file: . " . strlen($data) . ", " . (int) $result);
echo "failure\n";
}
}
if ($isImage) {
return NULL;
}
if ($isOrders && !$wait_import_command) {
$this->modeImport("orders.xml");
} else {
$this->load->model("tool/neoseo_exchange1c");
$zip = new ZipArchive();
$res = $zip->open($upload_file);
$this->debug(" - " . $res);
if ($res !== true) {
if ((strpos($upload_file, "orders") !== false || strpos($upload_file, "documents") !== false) && !$wait_import_command) {
$this->model_tool_neoseo_exchange1c->parseOrders($this->request->get["filename"]);
}
} else {
$this->debug(" : " . $upload_file);
$zip->extractTo($cache);
$files = scandir($cache);
$found = 0;
foreach ($files as $file) {
if (is_file($cache . $file)) {
$found++;
$this->debug(" " . $file . " " . $upload_file);
if (strpos($file, "import") !== false) {
$this->model_tool_neoseo_exchange1c->parseImport($file);
} else {
if (strpos($file, "offers") !== false) {
$this->model_tool_neoseo_exchange1c->parseOffers($file);
} else {
if (strpos($file, "orders") !== false || strpos($file, "documents") !== false) {
$this->model_tool_neoseo_exchange1c->parseOrders($file);
} else {
if (strpos($file, "contragents") !== false) {
$this->model_tool_neoseo_exchange1c->parseContragents($file);
}
}
}
}
}
}
if (!$found) {
$this->log($this->language->get("error_empty_archive"));
$this->session->data["warning"] = $this->language->get("error_empty_archive");
$this->response->redirect($this->url->link("extension/module/neoseo_exchange1c", "user_token=" . $this->session->data["user_token"], "SSL"));
return NULL;
}
if (is_dir($cache . "import_files")) {
$this->log(" . ");
if (substr(VERSION, 0, 1) == "1") {
$images = DIR_IMAGE . "data/import_files/";
} else {
$images = DIR_IMAGE . "catalog/import_files/";
}
if (strpos($this->request->get["filename"], ".pdf") !== false) {
$cache = DIR_DOWNLOAD;
}
if (is_dir($images) && $this->config->get("neoseo_exchange1c_use_tree_delete")) {
$this->debug(" " . $images);
$this->_obfuscated_FF9498A78FC0B8919A8E97BF99BC88B599A8A5B4949681_($cache . "import_files/", $images);
$this->_obfuscated_FFB0898C97918999BBA4C09C9C9F8AB09E93B8A18E9F81_($cache . "import_files/");
} else {
rename($cache . "import_files/", $images);
}
}
}
}
}
}
} else {
$this->log("type=catalog&mode=file: ");
echo "failure\nERROR 10: No file name variable";
}
}
}
}
public function modeImport($manual = false)
{
if ($manual) {
$filename = $manual;
} else {
if (isset($this->request->get["filename"])) {
$filename = $this->request->get["filename"];
$this->debug("type=" . $this->request->get["type"] . "&mode=" . $this->request->get["mode"] . "&filename=" . $filename);
} else {
echo "failure\nERROR 10: No file name variable";
return 0;
}
}
$cache = DIR_CACHE . "exchange1c/";
if (!is_dir($cache)) {
mkdir($cache);
}
$fullFileName = $cache . $filename;
if (!file_exists($fullFileName)) {
$this->log(" : " . $fullFileName);
echo "failure\nERROR 10: file not found";
return 0;
}
$this->load->model("tool/neoseo_exchange1c");
if (strpos($filename, "import") !== false) {
if ($this->config->get($this->_moduleSysName . "_user_answer_for_moy_sklad") == 1) {
$marker_filename = DIR_CACHE . "exchange1c/" . "import_marker.json";
if (file_exists($marker_filename) && time() - filemtime($marker_filename) < 300) {
$this->log(" : " . $marker_filename);
$status = json_decode(file_get_contents($marker_filename), true);
if ($status["status"] == "processing" || $status["status"] == "success") {
$this->log(" import_marker : " . $status["status"]);
if (!$manual) {
echo $status["status"] . "\n";
}
} else {
$this->log(" import_marker : " . $status["status"]);
}
} else {
$status["status"] = "processing";
file_put_contents($marker_filename, json_encode($status));
$this->log(" import_marker : " . $status["status"]);
$this->model_tool_neoseo_exchange1c->parseImport($filename);
$status["status"] = "success";
file_put_contents($marker_filename, json_encode($status));
$this->log(" import_marker : " . $status["status"]);
}
} else {
$this->model_tool_neoseo_exchange1c->parseImport($filename);
if (!$manual) {
echo "success\n";
}
}
} else {
if (strpos($filename, "offers") !== false || strpos($filename, "rests") !== false || strpos($filename, "prices") !== false) {
if ($this->config->get($this->_moduleSysName . "_user_answer_for_moy_sklad") == 1) {
$marker_filename = DIR_CACHE . "exchange1c/" . "offer_marker.json";
if (file_exists($marker_filename) && time() - filemtime($marker_filename) < 300) {
$this->log(" : " . $marker_filename);
$status = json_decode(file_get_contents($marker_filename), true);
if ($status["status"] == "processing" || $status["status"] == "success") {
$this->log(" offer_marker : " . $status["status"]);
if (!$manual) {
echo $status["status"] . "\n";
}
} else {
$this->log(" offer_marker : " . $status["status"]);
}
} else {
$status["status"] = "processing";
file_put_contents($marker_filename, json_encode($status));
$this->log(" offer_marker : " . $status["status"]);
$this->model_tool_neoseo_exchange1c->parseOffers($filename);
$status["status"] = "success";
file_put_contents($marker_filename, json_encode($status));
$this->log(" offer_marker : " . $status["status"]);
}
} else {
$this->model_tool_neoseo_exchange1c->parseOffers($filename);
if (!$manual) {
echo "success\n";
}
}
} else {
if (strpos($filename, "orders") !== false || strpos($filename, "documents") !== false) {
$this->model_tool_neoseo_exchange1c->parseOrders($filename);
if (!$manual) {
echo "success\n";
}
} else {
if (strpos($filename, "contragents") !== false) {
$this->model_tool_neoseo_exchange1c->parseContragents($filename);
if (!$manual) {
echo "success\n";
}
} else {
echo "failure\n";
echo $filename;
}
}
}
}
if ($this->config->get($this->_moduleSysName . "_update_auto_neoseo_filter_warehouse") == 1) {
$this->log(" \"\"");
$this->model_tool_neoseo_exchange1c->updateNeoSeoFilterWarehouse();
}
if ($this->config->get($this->_moduleSysName . "_product_update_avaro") == 1) {
$this->log(" \"HYPER PRODUCT MODELS (hpmodel_links)\"");
$this->model_tool_neoseo_exchange1c->updateModuleHyperProductModels();
}
$this->cache->delete("product");
}
public function modeExport()
{
$this->load->model("tool/neoseo_exchange1c");
$products = $this->model_tool_neoseo_exchange1c->queryProducts();
header("Content-Type: text/xml; charset=utf-8", true);
echo $products;
}
public function modeExportAll()
{
$this->load->model("tool/neoseo_exchange1c");
$products = $this->model_tool_neoseo_exchange1c->queryAllProducts();
header("Content-Type: text/xml; charset=utf-8", true);
echo $products;
}
public function modeQueryOrders()
{
$this->debug("type=" . $this->request->get["type"] . "&mode=" . $this->request->get["mode"]);
$this->load->model("tool/neoseo_exchange1c");
$orders = $this->model_tool_neoseo_exchange1c->queryOrders();
if ($this->config->get("neoseo_exchange1c_order_utf8") == 1) {
header("Content-Type: text/html; charset=utf-8", true);
if ($this->config->get("neoseo_exchange1c_order_utf8_bom") == 1) {
echo chr(239) . chr(187) . chr(191) . $orders;
} else {
echo $orders;
}
} else {
header("Content-Type: text/html; charset=win-1251", true);
echo @iconv("utf-8", "cp1251//TRANSLIT", @str_replace("encoding=\"utf-8\"", "encoding=\"cp-1251\"", $orders));
}
}
public function changeOrderExport1C()
{
$json = [];
if (!isset($this->request->post["order_id"]) && !isset($this->request->post["status"])) {
$json["success"] = false;
$this->response->setOutput(json_encode($json));
return false;
}
$order_id = $this->request->post["order_id"];
$this->load->model("tool/" . $this->_moduleSysName);
if ($this->request->post["status"] == "0") {
$this->model_tool_neoseo_exchange1c->addOrderTo1C($order_id);
} else {
$this->model_tool_neoseo_exchange1c->deleteOrderTo1C($order_id);
}
$json["success"] = true;
$this->response->setOutput(json_encode($json));
}
public function deleteExportListOrders()
{
$this->load->language("extension/module/neoseo_exchange1c");
$this->load->model("tool/" . $this->_moduleSysName);
$orders = $this->model_tool_neoseo_exchange1c->getAllOrderTo1C();
if ($orders) {
foreach ($orders as $order) {
$this->model_tool_neoseo_exchange1c->deleteOrderTo1C($order["order_id"]);
}
$response = true;
} else {
$response = false;
}
if ($response) {
exit(json_encode(["message" => $this->language->get("text_cleaned")]));
}
exit(json_encode(["message" => $this->language->get("text_err_cleaned")]));
}
public function counterpartiesDelete()
{
$this->db->query("DELETE FROM `" . DB_PREFIX . "customer` WHERE customer_id in (SELECT customer_id FROM `" . DB_PREFIX . "customer_to_1c`)");
$this->db->query("DELETE FROM `" . DB_PREFIX . "address` WHERE customer_id in (SELECT customer_id FROM `" . DB_PREFIX . "customer_to_1c`)");
$this->db->query("TRUNCATE `" . DB_PREFIX . "customer_to_1c`");
$this->response->redirect($this->url->link("extension/module/neoseo_exchange1c", "token=" . $this->session->data["token"], "SSL"));
}
public function counterpartiesDeleteLinks()
{
$this->db->query("TRUNCATE `" . DB_PREFIX . "customer_to_1c`");
$this->response->redirect($this->url->link("extension/module/neoseo_exchange1c", "token=" . $this->session->data["token"], "SSL"));
}
public function _obfuscated_FFBEA4B9AFBBB9BD9D98A8A88DBCADB2BDB792A39098A1_()
{
$this->debug("type=" . $this->request->get["type"] . "&mode=" . $this->request->get["mode"]);
$this->load->model("tool/neoseo_exchange1c");
$_obfuscated_0D07081A0F400F18170D4040092E340A39293B1F263011_ = $this->model_tool_neoseo_exchange1c->queryContragents();
header("Content-Type: text/xml; charset=utf-8", true);
echo $_obfuscated_0D07081A0F400F18170D4040092E340A39293B1F263011_;
}
public function exportContragents()
{
$this->load->model("tool/neoseo_exchange1c");
$c_data = $this->model_tool_neoseo_exchange1c->queryContragents();
header("Content-Description: File Transfer");
header("Content-Type: application/octet-stream");
header("Content-Disposition: attachment; filename=contragents.xml");
header("Content-Transfer-Encoding: binary");
header("Expires: 0");
header("Cache-Control: must-revalidate");
header("Pragma: public");
header("Content-Length: " . strlen($c_data));
header("Content-Type: text/xml; charset=utf-8", true);
echo $c_data;
}
}
?>
Function Calls
None |
Stats
MD5 | d6f6becc75c5fe8e6cbc0d5052b997fd |
Eval Count | 0 |
Decode Time | 83 ms |