Uploaded version 4.0.31 to github at: https://github.com/mc12345678/EasyPopulate-4.0

The configuration window is changed, recommendation for upgrade is to make note of the settings on the configuration window, then on tools->Easy Populate 4, top right corner select remove EP4, then install EP4 from the middle of the top of the screen..

Several things added/changed.

1) the file folder location has been modified to not require the admin folder to be typed in. There is now a switch in the configuration panel to pick the folder as either the store directory or the admin directory. Directory paths are based on the settings in the admin/includes/configure.php file regarding ssl being used, the use of the server paths as well as the file paths..
2) Added the category move feature described in the last couple of posts. What this does is: move a product from one category to the next and assign the master_categories_id for that product to the category in the row of data.
3) Modified the code in several places to ensure that the database was accessed using the datatype of specific data being searched... (ZC function bindVars)
4) Adjusted line spacing/row spacing to try to convert to the ZC standard of code format and simplify readability.
5) Added a few notifiers to potentially support future development.
6) incorporated an additional function (ep_4_rmv_chars) into the functions file to work with removing special characters instead of it being duplicated multiple times throughout the code. This function is/has been called where the code was performing the same function in the "main" body.
7) Modified how blank image data is captured/stored and added an admin switch. Previously if a product did not have an image assigned, then EP4 would set the image path for a product to the blank image if there was a blank image defined to be shown in such a situation... The problem is, because a specific path is/was defined if the image to be shown when "blank" is changed (possibly to a new filename), then products with such an assignment would still show the old image (specifically assigned) rather than the ZC admin assigned image (shown when no image is defined for a product and for other cases such as an image's file missing.)
8) Added the ability to use the products_id field as the unique key to process information instead of having to use the products_model field as well as a path to add additional fields to serve as a primary key, though still requiring additional coding to add the additional fields. WARNING: backup BEFORE using the products_id for import. Improper use/application of the products_id could cause significant database data corruption in that content expected for products_id X may appear as what is supposed to be at products_id Y. These errors would be user caused and could be corrected by restoring to the backup made just before the upload Understand that if there have been transactions processed between when the backup was made and then restored, those transactions will be lost if something is not done to preserve them... Let me just say that this is somewhat of a releasing the beast action. It has been asked for over the years, but hadn't been done other than through what seems to be a version 3 that was published somewhere... The default install of this plugin selects products_model for the primary key, and this is even the case if the option in the configuration panel is "removed", not present, or not installed (for those that install this on others systems and want to minimize the things they can do to break their process/store). Did I mention to backup before using this feature on import? Backing up is covered in the instruction. It is covered here. I take no responsibility in the improper use of this program/feature that may cause significant problems with your store including an impact on sales because of improper use of this feature even if it is considered that there is not sufficient direct instruction on how to use it properly. It has always been strongly encouraged that this code be tested in a development atmosphere before being used on a live store including performing the actions on that development store that are expected to be performed on the live store and then verifying the response/information is accurate.
9) Resequenced the configuration menu items to account for some of the new functionality rather than simply add to the end of the list.
10) Have attempted to obtain support from the italian ZC market; however, for whatever reasons of the admins at that site, they have thus far declined providing me the ability to post on the forum where an individual is/was actively searching for help on EP4. I can say that if you try to create an account and choose to have the site displayed in English that their "human validation" question requires an Italian response and will reject an answer provided in English. How's that for validating that someone is human when the human understands the foreign language and provides a response back in the language displayed/identified as the language of choice? And then subsequently a human says, oh you are a robot because I see you answered the question incorrectly... (Mind you if it said in the language of this question or something similar, then sure... I guess though that they do not wish anyone from outside of Italy to provide support to the Italians) Anyways, if someone would like to take a stab at translating the English (or German) to appropriate Italian or other languages as used on computers, please don't hesitate to offer the language files associated... I do still have a little bit of incorporation to do from an existing German translated version, but to be honest, I'd rather push out what I have at the moment, do some other work on other things, and then come back to complete incorporation of the translation.. It's also not exactly the most exciting action.. Unfortunately it wasn't considered upon initial and subsequent development so it is happening now.. :)

Okay, I think I have combed the files completely for the changes from version 4.0.30 and have captured the meat of the changes above. Once I get some independent confirmation of functionality, I will incorporate/ask for incorporation into the main download tree. Really don't want new users to become discouraged with the code knowing that some features are still being tested...