PHP Code:
<?php
/**
* @package EZ-Feeds
* @copyright Copyright 2003-2016 Zen Cart Development Team
* @copyright Portions Copyright 2003 osCommerce
* @copyright Copyright 2017 Jest Country Enterprises
* @license http://www.zen-cart.com/license/2_0.txt GNU Public License V2.0
* @version $Id: Author: mikeel100 Wed Sep 13 12:29:00 2017 +0100 Modified in v1.5.5e $
*/
//+++++++++++++++++++START FUNCTION+++++++++++++++++++++++++
//MAKE SURE LINK IS SELECTED
if(empty(EZ_FEEDS_DEFAULT_FEED) and empty
EZ_FEEDS_ADD_REMOVE_DATAFEED_LINK)) {
$messageStack->add_session(ERROR_FEED_LINK_EMPTY, TEXT_ERROR);
$stopUpdate = true;
}
//SET FEED LINK TO DEFAULT LINK
if(!empty(EZ_FEEDS_DEFAULT_FEED)) {
$feed_link = strstr(EZ_FEEDS_DEFAULT_FEED, TEXT_HTTPS);
}
//$feed_link = ezfeeds_clean_string(EZ_FEEDS_DEFAULT_FEED, TEXT_HTTPS);
//SEE IF NEW LINK EXISTS IN LIST
if(!empty(EZ_FEEDS_ADD_REMOVE_DATAFEED_LINK)) {
$find_me = $db->execute("select `set_function` from " . TABLE_CONFIGURATION . "
where `configuration_key` = 'EZ_FEEDS_DEFAULT_FEED' ");
$current_feed_list_no_slashes = $find_me->fields['set_function'];
if($pos = strpos($current_feed_list_no_slashes,
EZ_FEEDS_ADD_REMOVE_DATAFEED_LINK) !== false
and EZ_FEEDS_DEFAULT_FEED !== EZ_FEEDS_ADD_REMOVE_DATAFEED_LINK) {
$stopUpdate = true;
$messageStack->add_session(ERROR_FEED_LINK_EXISTS .
EZ_FEEDS_ADD_REMOVE_DATAFEED_LINK, TEXT_ERROR);
}
//ADD NEW LINK IF ALL IS GOOD
if(EZ_FEEDS_DEFAULT_FEED !== EZ_FEEDS_ADD_REMOVE_DATAFEED_LINK and
$stopUpdate !== true) {
if($pos = strpos(EZ_FEEDS_ADD_REMOVE_DATAFEED_LINK, TEXT_HTTPS) !==
false) {
$feed_link = strstr(EZ_FEEDS_ADD_REMOVE_DATAFEED_LINK,
TEXT_HTTPS);
//$feed_link = ezfeeds_clean_string
// (EZ_FEEDS_ADD_REMOVE_DATAFEED_LINK, TEXT_HTTPS);
$current_feed_list = addslashes($current_feed_list_no_slashes);
if (strpos($current_feed_list, '(),') !== false) {
$new_link = substr_replace($current_feed_list, '\\\'' .
EZ_FEEDS_ADD_REMOVE_DATAFEED_LINK . '\\\'', -3, 0);
} else {
$new_link = substr_replace($current_feed_list, ',\\\'' .
EZ_FEEDS_ADD_REMOVE_DATAFEED_LINK . '\\\'', -3, 0);
}
$db->execute("update " . TABLE_CONFIGURATION . " set `set_function`
= '$new_link', `configuration_value` = '" .
EZ_FEEDS_ADD_REMOVE_DATAFEED_LINK . "'
where `configuration_key` = 'EZ_FEEDS_DEFAULT_FEED' ");
$db->execute("update " . TABLE_CONFIGURATION . " set
`configuration_value` = ''
where `configuration_key` = 'EZ_FEEDS_ADD_REMOVE_DATAFEED_LINK' ");
$messageStack->add_session(TEXT_FEED_ADDED .
EZ_FEEDS_ADD_REMOVE_DATAFEED_LINK, TEXT_SUCCESS);
} else {
$stopUpdate = true;
$messageStack->add_session(ERROR_NEW_LINK .
EZ_FEEDS_ADD_REMOVE_DATAFEED_LINK, TEXT_ERROR);
}
}
//REMOVE LINK
if(EZ_FEEDS_DEFAULT_FEED == EZ_FEEDS_ADD_REMOVE_DATAFEED_LINK) {
$current_feed_list_trashed = str_ireplace(EZ_FEEDS_DEFAULT_FEED, '',
$current_feed_list_no_slashes);
$current_feed_list_trashed = str_replace("(''),", "(),", $current_feed_list_trashed);
$current_feed_list_trashed = str_replace("('',", "(", $current_feed_list_trashed);
$current_feed_list_trashed = str_replace(",''),", "),", $current_feed_list_trashed);
$current_feed_list_trashed = str_replace(",'',", ",", $current_feed_list_trashed);
$current_feed_list = addslashes($current_feed_list_trashed);
$db->execute("update " . TABLE_CONFIGURATION . " set `set_function`
= '$current_feed_list', `configuration_value` = '' where `configuration_key`
= 'EZ_FEEDS_DEFAULT_FEED' ");
$stopUpdate = true;
$messageStack->add_session(TEXT_FEED_REMOVED .
EZ_FEEDS_ADD_REMOVE_DATAFEED_LINK, TEXT_SUCCESS);
}
}
//SEE IF LINK WORKS
$supplier = str_replace(TEXT_HTTPS, '', $feed_link);
$supplier = substr($supplier, 0, strpos( $supplier, TEXT_DOT_COM)) . TEXT_DOT_COM;
if($socket =@ fsockopen($supplier, 80, $errno, $errstr, 30) or $stopUpdate) {
fclose($socket);
} else {
$stopUpdate = true;
$messageStack->add_session(ERROR_SERVER_DOWN, TEXT_ERROR);
}
//++++++++++++++++++++++++STOP FUNCTION++++++++++++++++++++++++++
//CHECK NUMBER OF SPLIT RECORDS
if(EZ_FEEDS_SPLIT_DOWNLOAD_RECORDS < 20000) {
$messageStack->add_session(ERROR_SPLIT_RECORDS_BAD, TEXT_ERROR);
$stopUpdate = true;
}
//STOP IF SOMETHING IS WRONG
if($stopUpdate) {
$feed_link = '';
$db->execute("update " . TABLE_CONFIGURATION . " set `configuration_value` = ''
where `configuration_key` = 'EZ_FEEDS_ADD_REMOVE_DATAFEED_LINK' ");
} else {
//DELETE OLD FILES
foreach (glob(DIR_EZ_FEEDS_TEMP . TEXT_GLOBAL_TEXT) as $filename) {
if (is_file($filename)) {
unlink($filename);
}
}
if(EZ_FEEDS_SPLIT_DOWNLOAD_FILES <> 1) {
$db->execute("update " . TABLE_CONFIGURATION ." set configuration_value = 1
where configuration_key = '" . TEXT_CONFIG_SPLIT_FILES . "' ");
}
//DOWNLOAD IF ALL IS GOOD
if (($dirty_file = fopen($feed_link, TEXT_FOPEN_READ_BINARY)) !== FALSE) {
$datafeedCounter = 1;
$limitCounter = 1;
$f = 1;
$limit = EZ_FEEDS_SPLIT_DOWNLOAD_RECORDS;
while (($row = fgets($dirty_file)) !== false) {
if($datafeedCounter == 1) {
//TO DO: DETERMINE FIELD DELIMITER AND SET TO VARIABLE
//DELIMITERS - | <XML> \t ^ OR A CUSTOMIZABLE USER DEFINED DELIMITER
//TO DO: REPLACE FIELD DELIMITERS WITH COMMA
$headers = $row;
}
if ($limitCounter == 1) {
$raw_feed = FILENAME_EZFEEDS_RAW_FEED . $f . TEXT_EXTENSION;
$split_data = fopen($raw_feed, TEXT_FOPEN_APPEND_BINARY);
fwrite($split_data, $headers);
}
if($datafeedCounter !== 1) {
//TO DO: REPLACE FIELD DELIMITERS WITH COMMA
fwrite($split_data, $row);
}
if($limitCounter == $limit) {
fclose($split_data);
$limitCounter = 0;
$f++;
}
$limitCounter++;
$datafeedCounter++;
} //end while
fclose($split_data);
//UPDATE NUMBER OF SPLIT FILES
$db->execute("update " . TABLE_CONFIGURATION ." set configuration_value
= '$f' where configuration_key = '" . TEXT_CONFIG_SPLIT_FILES . "' ");
//SET UPDATE DATE
$db->execute("update " . TABLE_CONFIGURATION ." set configuration_value
= '" . TEXT_TODAY . "' where configuration_key = '" .
TEXT_CONFIG_LAST_UPDATE . "' ");
if($f > 1) {
$messageStack->add_session(CAUTION_SPLIT_FILES . $f, TEXT_CAUTION);
}
if (!feof($dirty_file)) {
$messageStack->add_session(ERROR_FEOF_FAILURE . $datafeedCounter,
TEXT_ERROR);
$stopUpdate = true;
}
fclose($dirty_file);
$datafeedCounter = $datafeedCounter - 2;
}
}
unset($socket, $feed_link, $filename, $dirty_file, $supplier, $errno, $errstr, $limitCounter, $f, $limit, $split_data, $raw_feed, $headers, $row);
?>
Bookmarks