######################################################### # # # Possible BizDB Software Customizations and Prices # # # ######################################################### IMPORTANT NOTE - The following prices are for reference only. They are subject to change without prior notice. For a final quote, please document clearly your change requirements and e-mail them to us. Our e-mail address is cnctek@cnctek.com . Subject to the version of software you are currently using, we reserve the right to reject certain change requests. POSSIBLE CUSTOMIZATIONS - (1) Send New Record and Updated Record Notification E-mails to Users and Webmasters Software Customization Cost - US$70 Function - Replace the current "Generate Webmaster Notification E-mail" codes by a new subroutine which will generate notification e-mail to both the user and the webmaster (optional) if a new record is added or an existing record is updated. The content of the e-mail is flexibly defined by a template. * Cgi script involved - bizdb-aed.cgi (this is a modified version of the original script) * Variable in cgi script involved: $email_msg_template_fn * Meaning of $email_msg_template_fn: Filename of the text file storing the template of the Notification E-mail Message. This template file must be saved in the templates directory defined by the variable "$template_dir". Example: $email_msg_template_fn = "bizdb_email.txt"; * How to setup the Notification E-mail Template: NOTE - If you want to generate "Notification E-mail(s)" when a record is created or updated, you must set up a valid Notification E-mail Template in your Templates directory. Without this E-mail Template file, no Notification E-mails will be generated. In this e-mail template file, you have to define: - the e-mail subject line for reporting a new record (Required) Example: addsubject=Your Subject Line where "You Subject Line" can be any text line containing **fxx**. If **f6** exists in the subject line, it will be replaced by the actual value of the 6th field in the database record currently processed. **Note** No "notification e-mail" will be generated for the record created if the "addsubject=something" line is not present. - the e-mail subject line for reporting an updated record (Required) Example: editsubject=Your Subject Line where "You Subject Line" can be any text line containing **fxx**. If **f6** exists in the subject line, it will be replaced by the actual value of the 6th field in the database record currently processed. **Note** No "notification e-mail" will be generated for the record updated if the "editsubject=something" line is not present. - the To e-mail addresses (Optional. If this line doesn't exist, then the "recipient" form statement must exist in the "ADD" and "EDIT" html templates if "Notification E-mails" are to be generated.) Example 1: to=client1@domain.com Example 2: to=client1@domain1.com,client2@domain2.com Example 3: to=**fxx** where **fxx** will be replaced by the e-mail address stored in field "fxx" of the database record. (Use this method to send notification e-mail to the record submitter / owner.) ** Note **: If statement exists in the "ADD" or "EDIT" html template, then the value of the "recipient" field will also be added to this "To" e-mail address line. (Note: The e-mail address in the "recipient" statement must be a full e-mail address of the Webmaster.) - the CC e-mail addresses (Optional) Example 1: cc=webmaster@domain.com Example 2: cc=webmaster1@domain1.com,webmaster2@domain2.com Example 3: cc=**fxx** where **fxx** will be replaced by the e-mail address stored in field "fxx" of the database record. - the From e-mail address (Required) Example 1: from=webmaster@domain.com Example 2: from=**fxx** where **fxx** will be replaced by the e-mail address stored in field "fxx" of the database record. - the body text (required. Multiple lines accepted.) Example: bodytext=The following information was entered on **date** ________________________________________________________ Database: **dbname** Record ID: **key** Password: **pwd** Field 001: **f1** Field 002: **f2** //END// In the notification e-mail, the tags **dbname**, **key**, **pwd** and **fxx** will be replaced by the actual value of the database record currently processed. Always terminate the "bodytext" by a new //END// line. **Note** We use the same "bodytext" for both "Add Record" and "Update Record" notification e-mails. After preparation, copy this file to the templates directory defined by "$template_dir". (2) Store Long Non-Searchable Fields Outside the Database Search File Software Customization Price: US$70 If you have long fields (several thousand characters long for each field) created in your database, and you don't need them to be searchable, you can configure their field numbers into the @desc_flds variable in "bizdb-aed.cgi". Example: @desc_flds = ('f10','f15','f16','f20'); where f10, f15, f16 and f20 are non-searchable long fields. When data are input for these fields, the "bizdb-aed.cgi" script will create a separate file for each database record (with the filename = recordKey-dbname.txt where recordKey is the actual key of the database record, and dbname is the database filename) and store all the long field data into this new file. The pathname of the directory used to store these files is defined by a variable called $description_dir existed in both the "bizdb-aed.cgi" and "bizdb-search.cgi" scripts. Example: If the record ID is "car1" and the dbname is "products", the filename of the long text file created will be "car1-products.txt". If @desc_flds is non-empty, don't forget to set up the $description_dir variable in "bizdb-aed.cgi" and "bizdb-search.cgi". Example: @desc_flds = ('f10','f15','f16','f20'); $description_dir = "/a-valid-directory-on-your-server/profile-data/"; INSTALLATION NOTES: =================== NOTE 1: If the description directory is called "profile-data", you must create this directory manually on your Web server. Use the "chmod" command to set the access modes of this directory to "0777" (i.e. "rwxr_xr_x"). NOTE 2: If @desc_flds in "bizdb-aed.cgi" is empty, i.e. @desc = (); , set $description_dir = ""; in both "bizdb-aed.cgi" and "bizdb-search.cgi". NOTE 3: Configure the $description_dir and @desc_flds variables in the modified "bizdb-aed.cgi" and "bizdb-search.cgi" scripts. Copy these two scripts to your Web server under the proper "cgi-bin" directory. (3) Setting up Multiple Checkbox Fields Software Customization Price: US$105 "Add Record" and "Edit Record" ============================== In your "Add Record" and "Edit Record" html templates, you can setup the following Checkbox FORM statements (Example Only): Small Medium Large Extra Large The "multickbox-f10" statement is used to inform the BizDB software that "f10" is a multiple checkbox field. In order to identify the various options within a multiple checkbox field, we use "txx-fyy" as the checkbox field name, where xx is the option number start counting from 1, and yy is the actual field number. Please note that each xx within the fyy must be unique. Based on this concept, you can define as many multiple checkbox fields as you like. The value of all checkboxes selected by the user will be saved into the database according to a special format as shown below: 123 super,2001/11/21,,Standard,Active,,,,,Small^;Large^;Extra Large^;, where (1) comma is configured as the record field delimitor, (2) "f10" is defined as a multiple checkbox field, (3) 3 options (t1,t3,t4) are selected and saved in field 10 (i.e. "f10") (4) "^;" is the option separator. "Search Records" ================ On the search.html template, you just need to setup a "single select" drop-down list to allow the user to search any option value in "f10". Example: Do not use "txx-fyy" within the search html template as it will not work. In the "bizdb-search.cgi" script, don't forget to configure the new @multickbox variable so that the value of all options saved in field 10 ("f10") can be displayed properly on the search report. Example setup in "bizdb-search.cgi": @multickbox = (); # if no multiple checkbox fields @multickbox = ('f10','f11'); # if f10, f11 are multickbox fields @multickbox = ('f10'); # if f10 is the only multickbox field Example tag used in the search report template: Selected options of field 10: **f10** "Display Record on Edit Screen" =============================== Please use the following URL if you want to execute a "showrecord" function within the "Detail Report" template: Display Record on Edit Screen where "bizdb-edit" is the Edit Screen template, and "f10" is defined as a multiple checkbox field. (4) Support the display of multiple listings per row on the search result report Software Customization Price: US$105 New files used: - bizdb-search.cgi (this is a modified version of the original file) - bizdb-search-multicols.html (for replacing the sample "bizdb-search" template) - bizdb-summary-multicols (for replacing the sample "bizdb-summary" template) - cell-multicols (html template for specifying the database fields and contents to be displayed in each record cell) In the "bizdb-search-multicols.html" template, the only thing changed is the filename of the search report template. It is now changed from "bizdb-summary" to "bizdb-summary-multicols". In the "bizdb-summary-multicols" template, we have replaced everything inside the and by: **use::cell-multicols::use** Do not change these 3 lines. The name "cell-multicols" is the filename of the html template containing the html codes for each of the record table cells. You must not change the html codes outside the statements. Each of the lines must be on a new line. You may change the table border size, cellspacing size and cellpadding size to specify the cell separations. You may also change the new $maxcols variable in the "bizdb-search.cgi" script to determine how many summary listings are to be displayed per table row. If you want to display a total of 9 listings per page and no more than 3 listings per row, your settings are as follows: $maxdispscreen = 9; $maxcols = "3"; *********************************************** Please note that the new "bizdb-search.cgi" script can also support the old format of summary template, i.e. your old "bizdb-summary" file without the use of "cell-multicols" template. (5) Search Multiple Database Files Through A Single Search Request Software Customization Cost - US$70 Function - To search multiple BizDB database files through a single search request form or URL. It must be noted that all the database files to be searched are of identical format, i.e. field definitions. * Cgi script involved - bizdb-search.cgi (this is a modified version of the original script) * Parameters used in the search template: search_multiple_files, dbname The following examples outline the parameter statements affected: Example 1 (Via a search form):
......... ......... ......... .........
Example 2 (Via a URL call): Display Latest Listings (6) Check for duplication of database data in specified fields Software Customization Price: US$70 New files used: - bizdb-aed.cgi (this is a modified version of the original script) After the software change, you can insert the following form statement into your "Add Record" and "Edit Record" html templates: For example: for stopping duplication of database data in field id "f15". *** Note *** We are doing exact field match including special characters and spaces. You can check any number of database fields starting from "f6". For example: (7) Specify "OR" or "AND" search operator for all or selected search fields Software Customization Price: US$140 New files used: - bizdb-search.cgi (this is a modified version of the original script) After the modification, you can use the following variable in the "bizdb-search.cgi" script: - $global_search_operator A record is said to be matched during searching the database if the following condition is satisfied: - $global_search_operator = "" - All input search terms must be matched - $global_search_operator = "or" - Any one of the input search terms is matched You can also insert the following form statement into your "Search Database" forms: For example: This two statements together defines that if any search terms specified in the search form for field "f15" OR "f18" is matched, then the record is said to be matched for these two fields. *** Note *** If you set $global_search_operator to "or", the software will ignore checking of these "or-fxx" form statements. You can specify any number of database fields using the "OR" search operator (starting from "f2"). For example: