diff --git a/admin/easypopulate_4.php b/admin/easypopulate_4.php index 9a8c5e8..6f7d82a 100644 --- a/admin/easypopulate_4.php +++ b/admin/easypopulate_4.php @@ -1,5 +1,5 @@ '
', ); // need to check into this more +$smart_tags = array("\r\n|\r|\n" => '
', ); // need to check into this more if (substr($tempdir, -1) != '/') $tempdir .= '/'; if (substr($tempdir, 0, 1) == '/') $tempdir = substr($tempdir, 1); @@ -99,8 +99,11 @@ $ep_supported_mods['upc'] = ep_4_check_table_column(TABLE_PRODUCTS,'products_upc'); // upc = UPC Code, added by Chadd $ep_supported_mods['gpc'] = ep_4_check_table_column(TABLE_PRODUCTS,'products_gpc'); // gpc = google product category for Google Merchant Center, added by Chadd 10-1-2011 $ep_supported_mods['msrp'] = ep_4_check_table_column(TABLE_PRODUCTS,'products_msrp'); // msrp = manufacturer's suggested retail price, added by Chadd 1-9-2012 +$ep_supported_mods['map'] = ep_4_check_table_column(TABLE_PRODUCTS,'map_enabled'); +$ep_supported_mods['map'] = ($ep_supported_mods['map'] && ep_4_check_table_column(TABLE_PRODUCTS, 'map_price')); $ep_supported_mods['gppi'] = ep_4_check_table_column(TABLE_PRODUCTS,'products_group_a_price'); // gppi = group pricing per item, added by Chadd 4-24-2012 $ep_supported_mods['excl'] = ep_4_check_table_column(TABLE_PRODUCTS,'products_exclusive'); // exclu = Custom Mod for Exclusive Products: 04-24-2012 +$ep_supported_mods['dual'] = ep_4_check_table_column(TABLE_PRODUCTS_ATTRIBUTES, 'options_values_price_w'); // END: check for existance of various mods // custom products fields check @@ -225,7 +228,7 @@ } // Handle file deletion (delete only in the current directory for security reasons) -if (!$error && isset($_REQUEST["delete"]) && $_REQUEST["delete"]!=basename($_SERVER["SCRIPT_FILENAME"])) { +if (((isset($error) && !$error) || !isset($error)) && isset($_REQUEST["delete"]) && $_REQUEST["delete"]!=basename($_SERVER["SCRIPT_FILENAME"])) { if (preg_match("/(\.(sql|gz|csv|txt|log))$/i",$_REQUEST["delete"]) && @unlink($upload_dir.basename($_REQUEST["delete"]))) { // $messageStack->add(sprintf($_REQUEST["delete"]." was deleted successfully"), 'success'); zen_redirect(zen_href_link(FILENAME_EASYPOPULATE_4)); @@ -272,13 +275,13 @@ function init()
-
Un-Install EP4 +
Configuration Settings
'; - echo 'Upload Directory: '.$tempdir.'
'; + echo '
' . EASYPOPULATE_4_CONFIG_SETTINGS . '
'; + echo EASYPOPULATE_4_CONFIG_UPLOAD . ''.$tempdir.'
'; echo 'Verbose Feedback: '.(($ep_feedback) ? 'TRUE':"FALSE").'
'; - echo 'Split Records: '.$ep_split_records.'
'; - echo 'Execution Time: '.$ep_execution.'
'; + echo EASYPOPULATE_4_DISPLAY_SPLIT_SHORT . $ep_split_records.'
'; + echo EASYPOPULATE_4_DISPLAY_EXEC_TIME . $ep_execution.'
'; switch ($ep_curly_quotes) { case 0: $ep_curly_text = "No Change"; @@ -303,8 +306,8 @@ function init() } echo 'Convert Curly Quotes: '.$ep_curly_text.'
'; echo 'Convert Char 0x92: '.$ep_char92_text.'
'; - echo 'Enable Products Metatags: '.$ep_metatags.'
'; - echo 'Enable Products Music: '.$ep_music.'
'; + echo EASYPOPULATE_4_DISPLAY_ENABLE_META.$ep_metatags.'
'; + echo EASYPOPULATE_4_DISPLAY_ENABLE_MUSIC.$ep_music.'
'; echo '
Custom Products Fields
'; echo 'Product Short Descriptions: '.(($ep_supported_mods['psd']) ? 'TRUE':"FALSE").'
'; @@ -313,13 +316,14 @@ function init() // Google Product Category for Google Merchant Center echo 'Google Product Category: '.(($ep_supported_mods['gpc']) ? 'TRUE':"FALSE").'
'; echo "Manufacturer's Suggested Retail Price: ".(($ep_supported_mods['msrp']) ? 'TRUE':"FALSE").'
'; - echo "Group Pricing Per Item: ".(($ep_supported_mods['gppi']) ? 'TRUE':"FALSE").'
'; + echo "Manufacturer's Advertised Price: ".(($ep_supported_mods['map']) ? 'TRUE':"FALSE").'
'; + echo "Group Pricing Per Item: ".(($ep_supported_mods['gppi']) ? 'TRUE':"FALSE").'
'; echo "Exclusive Products Mod: ".(($ep_supported_mods['excl']) ? 'TRUE':"FALSE").'
'; echo "Stock By Attributes Mod: ".(($ep_4_SBAEnabled != false) ? 'TRUE':"FALSE").'
'; echo "CEON URI Rewriter Mod: " . (($ep4CEONURIDoesExist == true) ? 'TRUE' : "FALSE") . '
'; + echo "Dual Pricing Mod: " . (($ep_supported_mods['dual']) ? 'TRUE':"FALSE").'
'; - - echo "
User Defined Products Fields:
"; + echo "
User Defined Products Fields:
"; $i = 0; foreach ($custom_field_names as $field) { echo $field.': '.(($custom_field_check[$i]) ? 'TRUE':"FALSE").'
'; @@ -403,7 +407,7 @@ function init() echo zen_draw_input_field('export', 'Export', ' style="padding: 0px"', false, 'submit'); ?>

-
+
Product & Pricing Export/Import Options:
@@ -438,8 +442,7 @@ function init() // List uploaded files in multifile mode // Table header echo '

'; - echo "\n"; - echo "\n"; +// echo "
File NameSizeDate & TimeTypeSplitImportDeleteDownload
\n"; // $upload_dir = DIR_FS_CATALOG.$tempdir; // defined above if ($dirhandle = opendir($upload_dir)) { $files = array(); @@ -447,13 +450,81 @@ function init() closedir($dirhandle); $file_count = 0; sort($files); - foreach ($files as $dirfile) { - if ( ($dirfile != ".") && ($dirfile != "..") && preg_match("/\.(sql|gz|csv|txt|log)$/i",$dirfile) ) { - $file_count++; - echo ' - - '; - $ext = strtolower(end(explode('.', $dirfile))); + /* + * Have a list of files... Now need to work through them to identify what they can do. + * After identified what they can do, need to generate the screen view of their option(s). Ideally, every file will have the same capability, but will be grouped with a title and associated action. + * So need to identify the "#" of groups, and loop through the files for those groups. Probably a case statement + */ + + $filenames = + array( + "attrib-basic-ep"=>ATTRIB_BASIC_EP, + "attrib-detailed-ep"=>ATTRIB_DETAILED_EP_DESC, + "category-ep"=>CATEGORY_EP_DESC, + "categorymeta-ep"=>CATEGORYMETA_EP_DESC, + "featured-ep"=>FEATURED_EP_DESC, + "pricebreaks-ep"=>PRICEBREAKS_EP_DESC, + "priceqty-ep"=>PRICEQTY_EP_DESC, + "sba-detailed-ep"=>SBA_DETAILED_EP_DESC, + "sba-stock-ep"=>SBA_STOCK_EP_DESC + ); + + $filetypes = array(); + + for ($i = 0; $i < sizeof($files); $i++) { + if ( ($files[$i] != ".") && ($files[$i] != "..") && preg_match("/\.(sql|gz|csv|txt|log)$/i",$files[$i]) ) { + $found = false; + + foreach ($filenames as $key=>$val) { + if (strtolower(substr($files[$i],0,strlen($key))) == strtolower($key)) { + $filetypes[$key][] = $i; + $found = true; + break; + } + } + + if ($found == false) { + // Treat as an everything else file. + $filetypes['zzzzzzzz'][] = $i; + } + } // End of if file is one to manage here. + } // End For $i of $files + ksort($filetypes); + + $filenames = + array_merge($filenames, array("zzzzzzzz"=>CATCHALL_EP_DESC)); + + echo "\n"; + echo "\n"; + echo "
'.$dirfile.''.filesize($upload_dir.$dirfile).''.date ("Y-m-d H:i:s", filemtime($upload_dir.$dirfile)).'
\n"; + if (EP4_SHOW_ALL_FILETYPES == 'Hidden') { + echo "\n"; + } + + foreach ((EP4_SHOW_ALL_FILETYPES != 'False' ? $filenames : $filetypes ) as $key=>$val) { + (EP4_SHOW_ALL_FILETYPES != 'False' ? $val = $filetypes[$key] : ''); + if (EP4_SHOW_ALL_FILETYPES == 'Hidden') { + $val = array(); + for ($i = 0; $i < sizeof($files); $i++){ + $val[$i] = $i; + } + } + + $file_count = 0; + //Display the information needed to start use of a filetype. + $plural_state = "" . (sizeof($val) > 1 ? EP_DESC_PLURAL : EP_DESC_SING) . ""; + if (EP4_SHOW_ALL_FILETYPES != 'Hidden') { + echo ""; + echo "\n"; + } + + for ($i=0; $i < sizeof($val); $i++) { + if (EP4_SHOW_ALL_FILETYPES != 'Hidden' || (EP4_SHOW_ALL_FILETYPES == 'Hidden' && ($files[$i] != ".") && ($files[$i] != "..") && preg_match("/\.(sql|gz|csv|txt|log)$/i",$files[$i]) )) { + $file_count++; + echo ' + + '; + $ext = strtolower(end(explode('.', $files[$val[$i]]))); // file type switch ($ext) { case 'sql': @@ -476,30 +547,49 @@ function init() // file management if ($ext == 'csv') { // $_SERVER["PHP_SELF"] vs $_SERVER['SCRIPT_NAME'] - echo "\n"; - if (strtolower(substr($dirfile,0,12))== "sba-stock-ep") { - echo "\n"; + echo "\n"; + if (strtolower(substr($files[$val[$i]],0,12))== "sba-stock-ep") { + echo "\n"; } else { - echo "\n"; + echo "\n"; } - echo ""; - echo "\n"; + echo ""; + echo "\n"; } else { echo "\n"; echo "\n"; - echo ""; - echo "\n"; + echo ""; + echo "\n"; } - } // if (file types) - } // foreach - if ( $file_count == 0 ) { - echo "\n"; - } // if (sizeof($files)>0) + } + } // End loop within a filetype + if ( $file_count == 0 && EP4_SHOW_ALL_FILETYPES != 'Hidden') { + echo "\n"; + } // if (sizeof($files)>0) + if (EP4_SHOW_ALL_FILETYPES == 'Hidden') { + break; + } + } // End foreach filetype + if (EP4_SHOW_ALL_FILETYPES != 'Hidden') { + echo "
File NameSizeDate & TimeTypeSplitImportDeleteDownload
" . sprintf($filenames[$key], "" . $key . "", $plural_state) . "
File NameSizeDate & TimeTypeSplitImportDeleteDownload
'.$files[$val[$i]].''.filesize($upload_dir.$files[$val[$i]]).''.date ("Y-m-d H:i:s", filemtime($upload_dir.$files[$val[$i]])).'SplitImport
Import w/Sync
SplitImport
Import w/Sync
ImportImportDelete fileDownload
Delete fileDownload
  Delete fileDownload
Delete fileDownload
No Supported Data Files
No Supported Data Files
\n"; + if (sizeof($filetypes) == 0) { + echo "\n"; + echo "\n"; + echo "
No Supported Data Files
\n"; + } + } } else { // can't open directory echo "Error Opening Upload Directory: ".$tempdir."\n"; $error=true; } // opendir() - echo "\n"; + if (EP4_SHOW_ALL_FILETYPES == 'Hidden') { + echo "\n"; + if (sizeof($filetypes) == 0) { + echo "\n"; + echo "\n"; + echo "
No Supported Data Files
\n"; + } + } @@ -522,11 +612,11 @@ function init() strlen(EASYPOPULATE_4_SPECIALS_HEADING)) { - echo '
' . $specials_print . EASYPOPULATE_4_SPECIALS_FOOTER; // specials summary + echo '
' . $specials_print . EASYPOPULATE_4_SPECIALS_FOOTER; // specials summary } ?> -
+
diff --git a/admin/easypopulate_4_import.php b/admin/easypopulate_4_import.php index d8789b4..e734cb9 100644 --- a/admin/easypopulate_4_import.php +++ b/admin/easypopulate_4_import.php @@ -1,5 +1,5 @@ $lang) { $sql2 = 'SELECT * FROM '.TABLE_PRODUCTS_DESCRIPTION.' WHERE products_id = '.$row['v_products_id'].' AND language_id = '.$lang['id']; $result2 = ep_4_query($sql2); - $row2 = ($ep_uses_mysqli ? mysqli_fetch_array($result) : mysql_fetch_array($result2)); + $row2 = ($ep_uses_mysqli ? mysqli_fetch_array($result2) : mysql_fetch_array($result2)); // create variables (v_products_name_1, v_products_name_2, etc. which corresponds to our column headers) and assign data $row['v_products_name_'.$lang['id']] = ep_4_curly_quotes($row2['products_name']); @@ -1173,6 +1187,10 @@ if ($ep_supported_mods['msrp'] == true) { // Manufacturer's Suggested Retail Price $query .= "products_msrp = '".$v_products_msrp."',"; } + if ($ep_supported_mods['map'] == true) { // Manufacturer's Advertised Price + $query .= "map_enabled = '".$v_map_enabled."',"; + $query .= "map_price = '".$v_map_price."',"; + } if ($ep_supported_mods['gppi'] == true) { // Group Pricing Per Item $query .= "products_group_a_price = '".$v_products_group_a_price."',"; $query .= "products_group_b_price = '".$v_products_group_b_price."',"; @@ -1269,6 +1287,10 @@ if ($ep_supported_mods['msrp'] == true) { // Manufacturer's Suggested Retail Price $query .= "products_msrp = '".$v_products_msrp."',"; } + if ($ep_supported_mods['map'] == true) { // Manufacturer's Advertised Price + $query .= "map_enabled = '".$v_map_enabled."',"; + $query .= "map_price = '".$v_map_price."',"; + } if ($ep_supported_mods['gppi'] == true) { // Group Pricing Per Item $query .= "products_group_a_price = '".$v_products_group_a_price."',"; $query .= "products_group_b_price = '".$v_products_group_b_price."',"; diff --git a/admin/includes/functions/extra_functions/easypopulate_4_functions.php b/admin/includes/functions/extra_functions/easypopulate_4_functions.php index b815800..e2d7387 100644 --- a/admin/includes/functions/extra_functions/easypopulate_4_functions.php +++ b/admin/includes/functions/extra_functions/easypopulate_4_functions.php @@ -1,5 +1,5 @@
0=Disable
1=Enable', ".$group_id.", '16', NULL, now(), NULL, 'zen_cfg_select_option(array(\"0\", \"1\"),'), ('Enable Products Music Data', 'EASYPOPULATE_4_CONFIG_MUSIC_DATA', '0', 'Enable Products Music Data Columns (default 0).

0=Disable
1=Enable', ".$group_id.", '17', NULL, now(), NULL, 'zen_cfg_select_option(array(\"0\", \"1\"),'), ('User Defined Products Fields', 'EASYPOPULATE_4_CONFIG_CUSTOM_FIELDS', '', 'User Defined Products Table Fields (comma delimited, no spaces)', ".$group_id.", '18', NULL, now(), NULL, NULL), - ('Export URI with Prod and or Cat', 'EASYPOPULATE_4_CONFIG_EXPORT_URI', '0', 'Export the current products or categories URI when exporting data? (Yes - 1 or no - 0)', ".$group_id.", '19', NULL, now(), NULL, 'zen_cfg_select_option(array(\"0\", \"1\"),') + ('Export URI with Prod and or Cat', 'EASYPOPULATE_4_CONFIG_EXPORT_URI', '0', 'Export the current products or categories URI when exporting data? (Yes - 1 or no - 0)', ".$group_id.", '19', NULL, now(), NULL, 'zen_cfg_select_option(array(\"0\", \"1\"),'), + ('Show all EP4 Filetypes with Files', 'EP4_SHOW_ALL_FILETYPES', 'True', 'When looking at the EP4 Tools screen, should the filename prefix for all specific file types be displayed for all possible file types (True [default]), should only the method(s) that will be used to process the files present be displayed (False), or should there be no assistance be provided on filenaming on the main page (Hidden) like it was until this feature was added? (True, False, or Hidden)', ".$group_id.", '25', NULL, now(), NULL, 'zen_cfg_select_option(array(\"True\", \"False\", \"Hidden\"),') "); } elseif (PROJECT_VERSION_MAJOR > '1' || PROJECT_VERSION_MINOR >= '5.0') { $db->Execute("INSERT INTO ".TABLE_CONFIGURATION_GROUP." (configuration_group_title, configuration_group_description, sort_order, visible) VALUES ('Easy Populate 4', 'Configuration Options for Easy Populate 4', '1', '1')"); if (PROJECT_VERSION_MAJOR > '1' || PROJECT_VERSION_MINOR >= '5.3') { $group_id = mysqli_insert_id($db->link); } else { - $group_id = mysql_insert_id(); + $group_id = mysql_insert_id(); } $db->Execute("UPDATE ".TABLE_CONFIGURATION_GROUP." SET sort_order = ".$group_id." WHERE configuration_group_id = ".$group_id); @@ -1169,7 +1209,8 @@ function install_easypopulate_4() { ('Enable Products Meta Data', 'EASYPOPULATE_4_CONFIG_META_DATA', '1', 'Enable Products Meta Data Columns (default 1).

0=Disable
1=Enable', ".$group_id.", '16', NULL, now(), NULL, 'zen_cfg_select_option(array(\"0\", \"1\"),'), ('Enable Products Music Data', 'EASYPOPULATE_4_CONFIG_MUSIC_DATA', '0', 'Enable Products Music Data Columns (default 0).

0=Disable
1=Enable', ".$group_id.", '17', NULL, now(), NULL, 'zen_cfg_select_option(array(\"0\", \"1\"),'), ('User Defined Products Fields', 'EASYPOPULATE_4_CONFIG_CUSTOM_FIELDS', '', 'User Defined Products Table Fields (comma delimited, no spaces)', ".$group_id.", '18', NULL, now(), NULL, NULL), - ('Export URI with Prod and or Cat', 'EASYPOPULATE_4_CONFIG_EXPORT_URI', '0', 'Export the current products or categories URI when exporting data? (Yes - 1 or no - 0)', ".$group_id.", '19', NULL, now(), NULL, 'zen_cfg_select_option(array(\"0\", \"1\"),') + ('Export URI with Prod and or Cat', 'EASYPOPULATE_4_CONFIG_EXPORT_URI', '0', 'Export the current products or categories URI when exporting data? (Yes - 1 or no - 0)', ".$group_id.", '19', NULL, now(), NULL, 'zen_cfg_select_option(array(\"0\", \"1\"),'), + ('Show all EP4 Filetypes with Files', 'EP4_SHOW_ALL_FILETYPES', 'True', 'When looking at the EP4 Tools screen, should the filename prefix for all specific file types be displayed for all possible file types (True [default]), should only the method(s) that will be used to process the files present be displayed (False), or should there be no assistance be provided on filenaming on the main page (Hidden) like it was until this feature was added? (True, False, or Hidden)', ".$group_id.", '25', NULL, now(), NULL, 'zen_cfg_select_option(array(\"True\", \"False\", \"Hidden\"),') "); } else { // unsupported version // i should do something here! diff --git a/admin/includes/languages/deutsche/easypopulate_4.php b/admin/includes/languages/deutsche/easypopulate_4.php new file mode 100644 index 0000000..a8caff3 --- /dev/null +++ b/admin/includes/languages/deutsche/easypopulate_4.php @@ -0,0 +1,88 @@ +'); +define('EASYPOPULATE_4_DISPLAY_HEADING','

Import Results


'); +define('EASYPOPULATE_4_DISPLAY_UPLOADED_FILE_SPEC','

File uploaded.
Temporary filename: %s
User filename: %s
Size: %s
'); // open paragraph +define('EASYPOPULATE_4_DISPLAY_LOCAL_FILE_SPEC','

Filename: %s
'); // open paragraph + +// upload results display - output via $display_output +define('EASYPOPULATE_4_DISPLAY_RESULT_DELETED','
DELETED! - Model: %s'); +define('EASYPOPULATE_4_DISPLAY_RESULT_DELETE_NOT_FOUND','
NOT FOUND! - Model: %s - cant delete...'); +define('EASYPOPULATE_4_DISPLAY_RESULT_CATEGORY_NOT_FOUND', '
SKIPPED! - Model: %s - No category provided for this%s product'); +define('EASYPOPULATE_4_DISPLAY_RESULT_CATEGORY_NAME_LONG','
SKIPPED! - Model: %s - Category name: "%s" exceeds max. length: %s'); +define('EASYPOPULATE_4_DISPLAY_RESULT_PRODUCTS_URL_LONG','
WARNING! - Model: %s - URL: "%s" exceeds max. length: %s'); +define('EASYPOPULATE_4_DISPLAY_RESULT_MANUFACTURER_NAME_LONG','
MANUFACTURER SKIPPED! - Manufacturer: %s - Manufacturer name exceeds max. length: %s'); +define('EASYPOPULATE_4_DISPLAY_RESULT_PRODUCTS_MODEL_LONG','
SKIPPED! - Model: %s - Products model exceeds max. length: %s'); +define('EASYPOPULATE_4_DISPLAY_RESULT_PRODUCTS_NAME_LONG','
WARNING! - Model: %s - Products name: "%s" exceeds max. length: %s'); +define('EASYPOPULATE_4_DISPLAY_RESULT_NEW_PRODUCT', '
NEW PRODUCT! - Model: %s | '); +define('EASYPOPULATE_4_DISPLAY_RESULT_NEW_PRODUCT_FAIL', '
ADD NEW PRODUCT FAILED! - Model: %s - SQL error. Check Easy Populate error log in uploads directory'); +define('EASYPOPULATE_4_DISPLAY_RESULT_UPDATE_PRODUCT', '
UPDATED! - Model: %s | '); +define('EASYPOPULATE_4_DISPLAY_RESULT_UPDATE_PRODUCT_FAIL', '
UPDATE PRODUCT FAILED! - Model: %s - SQL error. Check Easy Populate error log in uploads directory'); +define('EASYPOPULATE_4_DISPLAY_RESULT_NO_MODEL', '
No model field in record. This line was not imported'); +define('EASYPOPULATE_4_DISPLAY_RESULT_UPLOAD_COMPLETE','
Upload Complete

'); // close paragraph above +define('EASYPOPULATE_4_DISPLAY_RESULT_ARTISTS_NAME_LONG','
SKIPPED! - Artist Name: %s - exceeds max. length: %s'); +define('EASYPOPULATE_4_DISPLAY_RESULT_RECORD_COMPANY_NAME_LONG','
SKIPPED! - Record Company Name: %s - exceeds max. length: %s'); +define('EASYPOPULATE_4_DISPLAY_RESULT_MUSIC_GENRE_NAME_LONG','
SKIPPED! - Music Genre Name: %s - exceeds max. length: %s'); + +// $messageStack defines +// checks - msg stack alerts - output via $messageStack +define('EASYPOPULATE_4_MSGSTACK_TEMP_FOLDER_MISSING','Easy Populate "Uploads Folder" missing!
Your uploads folder is missing. Your configuration indicates that your uploads folder is named %s, and is located in %s.
'); +define('EASYPOPULATE_4_MSGSTACK_TEMP_FOLDER_NOT_WRITABLE','Easy Populate "Uploads Folder" is not writable!
Your uploads folder is not writable. Folder permissions for %s must be "777" or "755" depending on your server setup.
You must correct folder permissions before contining.
'); +define('EASYPOPULATE_4_MSGSTACK_TEMP_FOLDER_PERMISSIONS_SUCCESS','Easy Populate successfully adjusted the permissions on your uploads folder! You can now upload files using Easy Populate...'); +define('EASYPOPULATE_4_MSGSTACK_TEMP_FOLDER_PERMISSIONS_SUCCESS_777','Easy Populate successfully adjusted the permissions on your uploads folder, but the folder is now publically viewable. Please ensure that you added the index.html file to this directory to prevent public browsing/downloading of your Easy Populate files.'); +define('EASYPOPULATE_4_MSGSTACK_MODELSIZE_DETECT_FAIL','Easy Populate cannot determine the maximum size permissible for the products_model field in your products table. Please ensure that the length of your model data field does not exceed the Zen Cart default value of 32 characters for any given product. Failure to heed this warning may have unintended consequences for your data.'); +define('EASYPOPULATE_4_MSGSTACK_ERROR_SQL', 'An SQL error has occured. Please check your input data for tabs within fields and delete these. If this error continues, please forward your error log to the Easy Populate maintainer'); +define('EASYPOPULATE_4_MSGSTACK_DROSS_DELETE_FAIL', 'Deleting of product data debris failed! Please see the debug log in your uploads directory for further information.'); +define('EASYPOPULATE_4_MSGSTACK_DROSS_DELETE_SUCCESS', 'Deleting of product data debris succeeded!'); +define('EASYPOPULATE_4_MSGSTACK_DROSS_DETECTED', '%s partially deleted product(s) found! Delete this dross to prevent unwanted zencart behaviour by clicking here.
You are seeing this because there are references in tables to a product that no longer exists, which is usually caused by an incomplete product deletion. This can cause Zen Cart to misbehave in certain circumstances.'); +define('EASYPOPULATE_4_MSGSTACK_DATE_FORMAT_FAIL', '%s is not a valid date format. If you upload any date other than raw format (such as from Excel) you will mangle your dates. Please fix this by correcting your date format in the Easy Populate config.'); + +// install - msg stack alerts - output via $messageStack +define('EASYPOPULATE_4_MSGSTACK_INSTALL_DELETE_SUCCESS','Redundant file %s was deleted from YOUR_ADMIN%s directory.'); +define('EASYPOPULATE_4_MSGSTACK_INSTALL_DELETE_FAIL','Easy Populate was unable to delete redundant file %s from YOUR_ADMIN%s directory. Please delete this file manually.'); +define('EASYPOPULATE_4_MSGSTACK_INSTALL_CHMOD_FAIL','Please run the Easy Populate install again after fixing your uploads directory problem.'); +define('EASYPOPULATE_4_MSGSTACK_INSTALL_CHMOD_SUCCESS','Configuration Variables Installation Successfull!'); +define('EASYPOPULATE_4_MSGSTACK_INSTALL_KEYS_FAIL','Easy Populate Configuration Missing. Please install your configuration by clicking %sInstall EP4%s'); + +// file handling - msg stack alerts - output via $messageStack +define('EASYPOPULATE_4_MSGSTACK_FILE_EXPORT_SUCCESS', 'File %s.csv successfully exported! The file is ready for download in your /%s directory.'); + +// $specials_print defines +// results of specials in $specials_print +define('EASYPOPULATE_4_SPECIALS_HEADING', 'Specials Summary

'); // open paragraph +define('EASYPOPULATE_4_SPECIALS_PRICE_FAIL', 'SKIPPED! - Model: %s - specials price higher than normal price...
'); +define('EASYPOPULATE_4_SPECIALS_NEW', 'NEW! - Model: %s | %s | %s | %s |
'); +define('EASYPOPULATE_4_SPECIALS_UPDATE', 'UPDATED! - Model: %s | %s | %s | %s |
'); +define('EASYPOPULATE_4_SPECIALS_DELETE', 'DELETED! - Model: %s | %s |
'); +define('EASYPOPULATE_4_SPECIALS_DELETE_FAIL', 'NOT FOUND! - Model: %s - cannot delete special...
'); +define('EASYPOPULATE_4_SPECIALS_FOOTER', '

'); // close paragraph + +define('EP_DESC_PLURAL', 'Sie werden'); +define('EP_DESC_SING', 'Es wird'); +define('FEATURED_EP_DESC','Prefix: %1$s. %2$s durch die featured Filter ausgefuehrt werden.'); +define('PRICEQTY_EP_DESC','Prefix: %1$s. %2$s durch die Price Quantity Filter ausgefuehrt werden.'); +define('PRICEBREAKS_EP_DESC','Prefix: %1$s. %2$s durch die Price Breaks Filter ausgefuehrt werden.'); +define('CATEGORY_EP_DESC','Prefix: %1$s. %2$s durch die Category Filter ausgefuehrt werden.'); +define('CATEGORYMETA_EP_DESC','Prefix: %1$s. %2$s durch die Category Meta Filter ausgefuehrt werden.'); +define('ATTRIB_BASIC_EP','Prefix: %1$s. %2$s durch die Basic Attribute Filter ausgefuehrt werden.'); +define('ATTRIB_DETAILED_EP_DESC','Prefix: %1$s. %2$s durch die Detailed Attributes Filter ausgefuehrt werden.'); +define('SBA_DETAILED_EP_DESC','Prefix: %1$s. %2$s durch die Detailed Stock by Attributes Filter ausgefuehrt werden.'); +define('SBA_STOCK_EP_DESC','Prefix: %1$s. %2$s durch die Stock by Attributes Stock Modification Filter ausgefuehrt werden.'); +define('CATCHALL_EP_DESC', 'Alle anderen. %2$s durch die upload of a full data file Filter ausgefuehrt werden.'); + +// error log defines - for ep_debug_log.txt +define('EASYPOPULATE_4_ERRORLOG_SQL_ERROR', 'MySQL error %s: %s\nWhen executing:\n%sn'); + +define('EASYPOPULATE_4_REMOVE_SETTINGS', 'Easy Populate 4 deinstallieren' ); +define('EASYPOPULATE_4_CONFIG_SETTINGS', 'Konfigurationseinstellungen'); +define('EASYPOPULATE_4_CONFIG_UPLOAD', 'Upload Verzeichnis: '); +define('EASYPOPULATE_4_DISPLAY_SPLIT_SHORT', 'Einträge aufteilen: '); +define('EASYPOPULATE_4_DISPLAY_EXEC_TIME', 'Ausführungszeit: '); +define('EASYPOPULATE_4_DISPLAY_ENABLE_META', 'Metatags der Artikel aktivieren: '); +define('EASYPOPULATE_4_DISPLAY_ENABLE_MUSIC', 'Artikeltyp Musik aktivieren: '); + +?> \ No newline at end of file diff --git a/admin/includes/languages/english/easypopulate_4.php b/admin/includes/languages/english/easypopulate_4.php index de37330..0bab80a 100644 --- a/admin/includes/languages/english/easypopulate_4.php +++ b/admin/includes/languages/english/easypopulate_4.php @@ -61,6 +61,28 @@ define('EASYPOPULATE_4_SPECIALS_DELETE_FAIL', 'NOT FOUND! - Model: %s - cannot delete special...
'); define('EASYPOPULATE_4_SPECIALS_FOOTER', '

'); // close paragraph +define('EP_DESC_PLURAL', 'They'); +define('EP_DESC_SING', 'It'); +define('FEATURED_EP_DESC','Prefix: %1$s. %2$s will be processed through the featured filters.'); +define('PRICEQTY_EP_DESC','Prefix: %1$s. %2$s will be processed through the Price Quantity filters.'); +define('PRICEBREAKS_EP_DESC','Prefix: %1$s. %2$s will be processed through the Price Breaks filters.'); +define('CATEGORY_EP_DESC','Prefix: %1$s. %2$s will be processed through the Category filters.'); +define('CATEGORYMETA_EP_DESC','Prefix: %1$s. %2$s will be processed through the Category Meta filters.'); +define('ATTRIB_BASIC_EP','Prefix: %1$s. %2$s will be processed through the Basic Attribute filters.'); +define('ATTRIB_DETAILED_EP_DESC','Prefix: %1$s. %2$s will be processed through the Detailed Attributes filters.'); +define('SBA_DETAILED_EP_DESC','Prefix: %1$s. %2$s will be processed through the Detailed Stock by Attributes filters.'); +define('SBA_STOCK_EP_DESC','Prefix: %1$s. %2$s will be processed through the Stock by Attributes Stock Modification filters.'); +define('CATCHALL_EP_DESC', 'This contains any other file. %2$s will be processed like the upload of a full data file.'); + // error log defines - for ep_debug_log.txt define('EASYPOPULATE_4_ERRORLOG_SQL_ERROR', 'MySQL error %s: %s\nWhen executing:\n%sn'); + +define('EASYPOPULATE_4_REMOVE_SETTINGS', 'Un-Install EP4'); +define('EASYPOPULATE_4_CONFIG_SETTINGS', 'Configuration Settings'); +define('EASYPOPULATE_4_CONFIG_UPLOAD', 'Upload Directory: '); +define('EASYPOPULATE_4_DISPLAY_SPLIT_SHORT', 'Split Records: '); +define('EASYPOPULATE_4_DISPLAY_EXEC_TIME', 'Execution Time: '); +define('EASYPOPULATE_4_DISPLAY_ENABLE_META', 'Enable Products Metatags: '); +define('EASYPOPULATE_4_DISPLAY_ENABLE_MUSIC', 'Enable Products Music: '); + ?> \ No newline at end of file diff --git a/changelog.txt b/changelog.txt index 43977b8..488679a 100644 --- a/changelog.txt +++ b/changelog.txt @@ -183,3 +183,23 @@ this program will not need to be updated merely to support a version check. Incorporated admin logging of database inserts and updates similar (and beyond) those contained in ZC 1.5.4. Deletions were not incorporated. +4.0.29 04-03-2015 Added support for products_map modification (Manufacturer's Advertised Price) + Added MSRP export to areas where previously begun but not fully incorporated. + Modified import of customid for SBA-detailed-attributes to treat as a string. + Began incorporating language overrides, specifically with German as the first alternate language. + Added support for the plugin dual pricing. +4.0.30 06-27-2015 Added a new way of displaying files on the EP4 screen to show + more information such as the prefix to the file types that are + processed. This is to reduce the questions related to not + reading the instructions and understanding that certain files + are processed only by their name prefix. Everything else is + processed as if it was a full update file. Also addressed a + warning received in PHP 5.4+ related to testing a variable not + initialized. Previously 'if (!$error)' was sufficient, which + it is if $error has been assigned; however, if not assigned, + this results in a warning message in the logs folder. So, + instead to maintain consistent usage/functionality will check + if it is set and if it is set to verify that it is not an + error, and if it never was set then that would need to be + known as well. end result: if (!$error) { has been changed to + if ((isset($error) && !$error) || !isset($error)) {. \ No newline at end of file