I need you to build a search and replace program written in PHP that will scan some mysql database tables and replace strings for my Joomla site.
The main PHP file will take the following input parameters:
1- action=replace or duplicate (mandatory)
2- name of the text file that contains the pairs of strings : string to be searched, replacement string (mandatory)
3- filter elements on all joomla content table item fields (optional)
4- duplicate elements replacement strings (optional)
Main operation process:
1- target item selection: use the filter parameters to search the joomla content tables for content items that contain the filter strings. If no filter is defined, all the content items are selected. The filter can take this form : filter_category=string, with a parameter name for each field name (section, category, title, intro, body, pub-up, ...)
2- action selection : check if the action is to replace or duplicate the item; if it's replace, the action will replace the content strings in the existing item. If the action is duplicate, the action will duplicate the selected items and will run the search and replace action on the new duplicated item. When duplicating the content items, the program will use the duplicate element replacement parameters, if any, and will set the corresponding fields of the new item accordingly. For example, a replace_category=string will set the new item category to the corresponding string.
3- search and replace: load the text file containing the pairs of strings and apply a text search and replace on the selected items title, intro and body.
4- log: create a log entry with entry parameters, date/time, number of items selected, number of string replacements
5- error log; a seperate error log will contain information on errors while processing
- There will be a cronjob that will trigger the program regularly
- The program will not be in a public folder to avoid misuse.
- The program must work on a standard Joomla [url removed, login to view] and above installation. Support of Joomla 1.5 is a plus.
- The program should work with strings containing accentuated characters, double-byte characters and html tags
- The program does not have to be a Joomla component/mambot combination, however if this is the case, there should still be a way to trigger the mambot with a cronjob, without relying on Joomla's own mambot mechanism. The bids should mention if the program will work as a Joomla component+mambot or not.
- All the fixed parameters should be stored in a separate file (db name, content table name, login, password, etc.) for easier modification
- The developer may offer to change the text file system for string pairs to a database table with a joomla back-end interface to add/change/delete entries, but this should not increase the cost if offered.
- Any enhancements to this initial description are welcome, including on the process itself, as long as the output is the same. You are welcome to include these enhancement or modification proposals in your bids.
- The program will be the entire property of the buyer. No licenced code (including GPL etc.) should be used as future commercialization of the program is considered.
- The bid should include a 1 month support period for bug fixing and minor modifications
- The submitted code should be properly commented in English to allow for future modifications by third-parties.
- Extensions of the initial program scope are planned. The developer must be ready to take up additional development requests (quoted separately)
Example query 1:
[url removed, login to view];filter_title=Conditions%20for&action=replace&file=[url removed, login to view]
[url removed, login to view]:
Conditions for La météo de
Heavy rain Grosse pluies
Example query 2:
[url removed, login to view];action=duplicate&replace_category=Actualite%20sans%20accents&file=[url removed, login to view]
[url removed, login to view]: