Ajax Poll Script
URL Shortening Script
Ajax Likes Script
Text Ad Script
Fade-In Slideshow
Address Book Script
Form2DB
Lead Follow-Up Database Script
php Infinite Scroll
Ajax Poll Admin
PayPal IPN + eProduct Delivery Script
AdFreely -Ad Board Script-

Address Book Script

Ver 1.18 ( Security patch applied )
AB201-118

Download
Address Book
Address Book
  • First Name
  • Last Name
  • Company
  • Tel
  • Fax
  • Cell
  • Email
  • Street1
  • Street2
  • City
  • State
  • Zip
  • Address Book Mini
    Address Book Mini
  • First Name
  • Last Name
  • Department
  • Contact Email
  • Telephone Number
  • Contact Book Mini
    Contact Book Mini
  • Full Name
  • Full Address
  • Mobile No
  • Email ID/ Facebook ID
  • Comments
  • Company Directory
    Company Directory
  • Business Name
  • First Name
  • Last Name
  • Tel
  • Cell
  • Email
  • Street1
  • Street2
  • City
  • State
  • Zip
  • Country
  • Note
  • Customer List
    Customer List
  • First Name
  • Last Name
  • Home Phone
  • Home Phone2
  • Mobile Phone
  • Other Phone
  • Primary Phone
  • Business Phone
  • Anniversary
  • Birthday
  • Categories
  • Email
  • Email Display Name
  • Home Street
  • Home Street2
  • Home City
  • Home State
  • Home Zip
  • Note
  • Year
  • ... 2 more fields
    : Scripts generated by Address Book Script Builder
    : Scripts generated by Form2DB Builder

    This is a free Address Book PHP script with a MySQL database. This script allows users to search, view, add, edit, and delete address entries from a web browser. Each user can have a different login username.

    It's very easy to add/remove fields to/from the script. In fact, I've seen others using this script to store something totally different from addresses.

    You can customize Address Book Script online and/or manually.

    To manually customize it, please see Customization Quick Guide.

    To customize online, use Address Book Builder, which guides you through the steps of building a custom version of Address Book Script. To start Address Book Builder, click this link.

    License

    GPL

    Demo

    Installation Guide

    Quick Feedback to Tom, the developer

    If you have any suggestions or find any problems, please leave them as a comment down below. we'd appreciate the feedback!

    Name:
    Subject:
    Comment:
    Email: (Will not appear online)
    Posted by Sergey
    1502306009

    Hello dear Tom. This time i have a question about searching by "rlog_create_date_time" but i have some problem. I write a script:

    <?php
    $timestamp = $hm->Zb('rs:def:rlog_create_date_time_order'); ... Read More
    Posted by Tom
    1502360947

    >?_sc=customers/sp:def:rlog_create_date_time_order=$mm

    I am not sure what you are trying to do here but
    maybe you need to & before "spLdef...." like ... Read More
    Posted by Dave
    2017-07-09

    Is there anyway i can place a button on the address information page that allows me to duplicate all the fields and submits it has a new record/address giving it a new ID ?

    Thanks
    Posted by Tom
    2017-07-09

    Sorry, it's not implemented. it sounds useful, though.
    Posted by Norm
    2017-07-07

    Thanks Tom for the reply.

    Since encrypting a password field is fairly common, it would be great if when a person initially generates (derive) the files for an individual's address book, that the ... Read More
    Posted by Tom
    2017-07-09

    If it's the staff table, then the EncryptPassword function in web/staff/app/cls_ps_addresses.inc.php does encryption. But it won't do anything for you because you want to encrypt a field in a ... Read More
    Posted by Ken Anklovitch
    2017-07-06

    Even when I click on About or Logoff it kicks me back out to the Login page. In other words I can login the first time properly but once I try to do anything I get kicked back out.

    Thanks Tom
    Posted by Tom
    2017-07-06

    Here is my theory. There is an error in your select configuration file and the script couldn't start the session properly. That's why you get kicked out. Remove the content from the select ... Read More
    Posted by angelo
    2017-07-06

    Hello, congratulations to the script .... can you just delete the administrator? What is the difference between administrator and staff?
    Posted by Tom
    2017-07-06

    >What is the difference between administrator and staff?

    Administrators can access the staff table while non-admin can't. That's the only difference.
    Posted by Ken Anklovitch
    2017-07-05

    Thanks Tom, my drop down is working but now I have a very perplexing problem. When ever I do a search or try to add or edit a new record it kicks me back out to the login in page asking for my user ... Read More
    Posted by Tom
    2017-07-06

    OK, I'll reply to another post of yours.
    Posted by Norm
    2017-07-05

    I should have added in my previous request, the the password filed I'm referring to, is one I've created for the Members. I'd like to encrypt these somehow.

    While poking around the various php ... Read More
    Posted by Tom
    2017-07-06

    "cls_password_encrypt" could be used for the buit-in staff table but cannot be used for the one you created. I assume you are going to write code to authenticate for your Member table, right?. Then ... Read More
    Posted by Ken Anklovitch
    2017-07-04

    Hello Tom
    I have the following code

    CONFIG.SELECTION.INC

    define( 'SEL_CONTACT_TYPE', "
    C=Customer
    S=Supplier
    F=Friend
    O=Other
    " );


    DF.FL.CONTACTS.INC

    'contact_type'=>array( ... Read More
    Posted by Tom
    2017-07-05

    I think CONFIG.SELECTION.INC is not being referenced in common.inc.php in the same folder. Check common.inc.php of the original script, which you know is working.
    Posted by Sergey
    2017-07-04

    Thank you Tom for answer, but i find another good choice for me in... web/codelib/sys/CVField.inc.php i find:

    function &BuildHtmlTag( &$msg )

    and add this code:


    if ( $this->Get(XA_INPUT_TYPE) != ... Read More
    Posted by Tom
    2017-07-05

    OK, that's great!
    Posted by Sergey
    2017-07-04

    Sorry dear Tom. But when i change in codelib/cfg/config.options.inc.php from 90 to 1:
    the script logging me out after 1 minute when i do nothing.. sorry for my bad english
    Posted by Tom
    2017-07-05

    No, I think you are confused with something else.
    Posted by Lennox
    2017-07-04

    Can I run your code without necessarily installing it on another website?
    Posted by Tom
    2017-07-05

    Hi,

    >Can I run your code without necessarily installing it on another website?

    It's possible if you exactly copy the database and script.
    Posted by Sergey
    2017-07-02

    Sorry for disturb you dear Tom)) Please tell me how can i edit size, image and so on of "save/cancel" button in tpl.table_name.detail.inc.php. Many thankx to you!
    Posted by Tom
    2017-07-04

    You can use browser's native buttons so you can change the appearance with css.
    To do so, open web/codelib/sys/CHtmlMacro.inc.php in a text editor. Find the following line:
    ... Read More
    Posted by Sergey
    2017-07-01

    Dear Jan, you can change logout time by opening codelib/cfg/config.options.inc.php and do change in array:

    //-- Specifies the time length to keep the log
    define( 'SYS_KEEP_LOG_PERIOD', 90 );

    90 - ... Read More
    Posted by Tom
    2017-07-04

    Hi, SYS_KEEP_LOG_PERIOD has nothing to do with sesstion timeout. It's for debugging only.
    Posted by Sergey
    2017-07-01

    No i don't want to display username in search page)))) I have another questions about how i can add types to input field like "number" or "tel" or another... for example <input type=number ..... ... Read More
    Posted by Tom
    2017-07-04

    To change the type attribute to "password", add ", ZB_ATTR, array( "type"=>"password" )"
    For example, here is the last_name field:
    <?php echo $hm->Zb('rs:def:last_name'); ?>
    Add ZB_ATTR like this:
    ... Read More
    Posted by Sergey
    2017-06-29

    Thank you for fast reply on my previous question. I think you don't understand me because of my bad english. Your address book have record create date/time, record edit date/time and who did it ... Read More
    Posted by Tom
    2017-06-30

    If you want to display the username in the search page, open web/staff/asc/df.fl.addresses.inc.php and find the following array:
    ... Read More
    Posted by Karl
    2017-06-29

    Tom Thanks for the prompt previous answer.

    I have two "Drop Down" selections (see below) but in the db table it's showing "S1001" instead of the value "Mr"

    This was created using the form builder ... Read More
    Posted by Tom
    2017-06-30

    To put "Mr" into the database, please edit it like this:
    define( 'SEL_TITLE', "
    Mr=Mr
    Mrs=Mrs
    Miss=Miss
    Ms=Ms
    Rev=Rev
    " );
    Posted by Sergey
    2017-06-28

    Hello dear Tom. I need to create a checkbox with date/time parameters like parameters that has in record "last date edit/date create". For example, when i checked the checkbox the script write ... Read More
    Posted by Tom
    2017-06-29

    I think you can achieve it with ajax programming but sorry it's beyond the scope of this feedback box.
    Posted by Karl
    2017-06-28

    Hi Tom (firstly thanks great script - needs donate button)

    1. Staff ID in Search Results = is it possible to include the staff id & username in the address table.
    2. After login user gets "add new ... Read More
    Posted by Tom
    2017-06-29

    >1. Staff ID in Search Results = is it possible to include the staff id & username in the address table.

    Sorry, currently there isn't an easy way to join two tables.

    >2. After login user gets ... Read More
    Posted by Mark
    2017-06-25

    | zip | varchar(10) | NO | PRI | | |
    mysql> select zip from geocode limit 10;
    +-------+
    | zip |
    +-------+
    | 00501 |
    | 00544 |
    | 00601 |
    | 00602 |
    | 00603 |
    | 00604 |
    | 00605 | ... Read More
    Posted by Tom
    2017-06-26

    Please don't use CVPrimaryKey class. It's an integer class
    XA_CLASS=>'CVPrimaryKey',
    If the zip code is really the primary key of the table, please don't do it. Keep it as an integer.
    Posted by Dave
    2017-06-13

    Follow the comments left by other members on how to disable the delete button to staff, but cant seem to get this to work, any help would be great, thanks
    Posted by Tom
    2017-06-14

    Maybe this article will help you.
    http://www.phpkobo.com/article--m2413
    Posted by Mark
    2017-06-10

    Maybe you would consider supporting a procedure or function the same way you support tables. I person would define the procedure or function with in field list and out field list. Then they would be ... Read More
    Posted by Tom
    2017-06-11

    Thanks for suggestion! Address book script is an old script. The first version was written 7 years ago and have been used for a single table database since then. Many things happened to other series ... Read More
    Posted by Mark
    2017-06-09

    I have zipcode as a key.
    The values display without leading zeroes.
    Is there an easy fix to be added to the def file?
    Posted by Tom
    2017-06-11

    >I have zipcode as a key.
    >The values display without leading zeroes.
    >Is there an easy fix to be added to the def file?

    I think you stored zip code in a integer field.
    If you put it in a text ... Read More
    Posted by Dave
    2017-06-09

    I am trying to change one of the text fields to a data picker, having difficulty, can anyone help please ?

    Thanks
    Posted by Tom
    2017-06-11

    >I am trying to change one of the text fields to a data picker, having difficulty, can anyone help please ?

    Hi, this article will help you:
    http://www.phpkobo.com/article--m2033
    Posted by Mark
    2017-06-09

    I managed to add a new menu item and a new table.
    I'm wondering how to implement a result set based on the join of two tables?

    What would help is a file the explained the meaning of all your little ... Read More
    Posted by Tom
    2017-06-11

    >I'm wondering how to implement a result set based on the join of two tables?

    Sorry, there isn't a turn key solution for it because this was designed for a single table database.

    >what they ... Read More
    Posted by Jan Wiekens
    2017-06-03

    Hi,
    It's a very nice scripting. But after a few minutes it seems like that i'm automatic logout from the adressbook? Is it possible to set this option to be in the adressbook for more time without ... Read More
    Posted by Tom
    2017-06-05

    >Is it possible to set this option to be in the adressbook for more time without logging out?

    Hi, The script doesn't set the timeout period of php session. It's determined by your php.ini file. So ... Read More
    Posted by Gabriel
    2017-05-25

    But if I remove the save button, would not it be leaving all users as read-only?
    Posted by Tom
    2017-05-25

    There are two options. (1) You can copy the "staff" folder and put it in side by side. ( You need to rename the new folder to something like "guest" ) Modify the "guest" folder so that the users ... Read More
    Posted by Gabriel
    2017-05-24

    Thanks Tom,

    I will continue to see it, I know it is a problem on the Server because I tried it on another computer with a similar configuration and it worked.

    On the other hand, can you configure ... Read More
    Posted by Tom
    2017-05-25

    >can you configure read-only users in the address book?
    The easiest way is to remove the save button so users can't edit the data.
    Posted by Gabriel
    2017-05-23

    Hello Tom,

    The address book was installed without problems but when I go to the login page, it goes completely blank.

    The computer where I installed the address book, is installed recently, the ... Read More
    Posted by Tom
    2017-05-24

    First of all, you need to check the error message. I believe you are running the script in a Linux box you set up locally. Then most likely you would find error logs in the /etc/log folder.
    Posted by Michele
    2017-05-23

    Thank you. . . It works perfectly, now if within as 'staff' I can only see when it can be deleted, inserted and edited as 'administrator'. . . Still pats Tom !!!
    Posted by Tom
    2017-05-24

    You can use $this->sys->isAdmin() to decide which code to execute for admins.
    Posted by Michele
    2017-05-22

    Hi Tom, I would also like to hide the 'save' button on the edit page. Where do I find it?
    Thank you!
    Posted by Tom
    2017-05-23

    Hi, you can find the code for buttons in web/staff/include/tpl.detail.buttons.inc.php
    Posted by Michele
    2017-05-20

    Thank you Tom, I solved with your info here as I did:

    <? Php
    If ($ this-&gt; sys-&gt; isAdmin ()) {
    Echo 'Only admin can see this message!';
    <? Php include (INC_SR_TOP_BAR);
    }
    >;
    The 'Add / new' ... Read More
    Posted by Tom
    2017-05-21

    Great!
    Posted by Michele
    2017-05-16

    I do not understand what I have to do. You would make me a practical example.
    I mean. . . You would see me practically in what line I need to enter your queues. Grazielle
    Thank you
    Posted by Tom
    2017-05-16

    For starters, put this code in one of templates (web/staff/tpl.(table-name).search.inc.php)
    <?php

    if ( $this->sys->isAdmin() ) {
    echo "Only admin can see this message!";
    }

    ?>
    If you are logged ... Read More
    Posted by Michele
    2017-05-05

    Hi Tom, how can i export pdf to search result
    Posted by Tom
    2017-05-06

    Sorry, it doesn't have pdf export feature.
    Posted by Michele
    2017-04-29

    Hello Tom, sorry but in what file I must enter the code:

    <?php if ( $sys->IsAdmin() ) {
    //code to hide from non-admin
    } ?>

    Thanks for your info.
    Posted by Tom
    2017-04-30

    It all depends on what you would like to modify. You most likely use it in templates or backend code files. For example, if you want to hide some buttons from non-admins, then use it in ... Read More
    Posted by Michele
    2017-04-28

    Thank you Tom for your info. Now I'm wondering if it's possible to limit add/ delete only to administrator. Staff can only see and do research. Thank you
    Posted by Tom
    2017-04-29

    You can make code effective only to admins by enclosing the code with if ( $sys->IsAdmin() ) { like this
    <?php if ( $sys->IsAdmin() ) {
    //code to hide from non-admin
    } ?>
    If you want to show it to ... Read More
    Posted by Jason Dion
    2017-04-25

    Hi, I understand that you can specify the code that you want to disable in the templates. Can you tell me specificaly what code I would disable to turn off editing, deleting and adding new entries? ... Read More
    Posted by Tom
    2017-04-26

    First off, open web/staff/app/cls_ps_(table-name).inc.php
    To disable editing records, find the line
    case 'edit_init':
    and add "return;" to the end like
    case 'edit_init': return;
    Do the ... Read More
    Posted by Michele
    2017-04-24

    Hi Tom, how can i insert a date field eg. dd / mm / yy. Thank you
    Posted by Tom
    2017-04-26

    If you mean you want to change the output foramt of a date fileld, you can do so by editing web/staff/codelib/df.fl.(table-name).inc.php. Open the file and find the date field you want the change the ... Read More
    Posted by Arun
    2017-04-20

    After setup in web/install, when we try to access web/staff it shows unable to display pages
    Posted by Tom
    2017-04-20

    Hi Arun,

    It is likely that the problem resides outside of the script. If this is the first time you install any php script, chances are the website is not configured properly. You should install ... Read More
    Posted by Aryan!
    2017-04-19

    Hello again
    thanks for the reply, you are amazing!

    **excuse me. I can't speak English well.

    I have two questions:
    1. How can display the user's date of create in the Search Results table?
    2. How do ... Read More
    Posted by Tom
    2017-04-20

    Hi,

    >How can display the user's date of create in the Search Results table?

    Please read the article below:
    Adding a Field to Search Results table ... Read More
    Posted by aryan
    2017-04-18

    Hi Tom!
    The script is excellent.
    How do I store dropdown list values in the table . I do not want to store the keys in the table.
    Posted by Tom
    2017-04-19

    Hi, if you remove a key then it will use the value as a key. Open web/config/config.selection.inc.php. You will find something like
    ... Read More
    Posted by Maximo Ramos
    2017-03-26

    Hi!!

    I applied the the following instructions: http://www.phpkobo.com/article--m2072 in tpl.-mydatabase-.search.inc.php

    But it doesn't work, in the search results the 'mailto:' html tag does not ... Read More
    Posted by Tom
    2017-03-27

    >I applied the the following instructions: http://www.phpkobo.com/article--m2072

    Hi, try this instead
    http://www.phpkobo.com/article--m3721
    Posted by Michele
    2017-03-26

    Hi Tom, how can I attach one or more files to a record
    Posted by Tom
    2017-03-27

    >how can I attach one or more files to a record

    Sorry this is no file upload features yet. You need to add it yourself.
    Posted by Eliza
    2017-03-24

    Hello!

    How to hide (delete) and (edit) for staff. I want to leave them only ADD NEW?

    Thnx in advance!
    Posted by Tom
    2017-03-25

    Hi, enclose the code you want to hide from staff like this
    <?php if ( $sys->IsAdmin() ) {
    //code to hide
    } ?>
    It works in template files (web/staff/tpl.(-----).inc.php)
    Posted by Nasko
    2017-03-22

    Hello!

    I followed the instruction how to disable the edit, delete button. After the staff tries to edit, they can't edit or delete (that's good), they dont get an error message they just get a blank ... Read More
    Posted by Tom
    2017-03-23

    Hi, it's better you remove the edit/add-new/delete buttons from
    the template, web/staff/tpl.(table-name).search.inc.php
    Or you can hide it from staff. To hide code in a template, enclose it with
    ... Read More
    Posted by Michele
    2017-03-15

    Hello Tom, thanks for your info. Tom would like to ask how can I do to use logoff menu to link to other pages remaining in same browser tab.
    Posted by Tom
    2017-03-15

    The links are created in web/staff/include/tpl.body.header.inc.php line 32
    <a class="dmenu_item" href="<?php echo $hm->Url( '_sc=' . $sc . '&' ); ?>"
    ><?php echo $caption; ?></a>
    Maybe you should ... Read More
    Posted by Ashwinkumar
    2017-03-15

    how to increase / decrease the number of rows. currently there are 25 rows in display but the error is that the bottom message showing 1-50 instead of 1-25...can you tell me which files to edit
    Posted by Tom
    2017-03-15

    >how to increase / decrease the number of rows

    Open web/staff/app/df.fieldlist.inc.php and find array like this:
    ... Read More
    Posted by Michele
    2017-03-13

    Tom excuse me, where I find the template file
    Posted by Tom
    2017-03-13

    >where I find the template file

    It's in staff folder. The template files are prefixed with tpl. like tpl.address.search.inc.php.
    Posted by Aleksey
    2017-03-11

    Hi Tom.
    Thanks for your answers.
    Just one question: when i login as admin, in header i see four menus: Address, Staff, About and Log Off. When i login with a staff password, i dont see in header a ... Read More
    Posted by Tom
    2017-03-13

    Hi,

    >Which script do this check, what menu is going to be appear according to user type?

    cls_auth_base function in web/staff/app/cls_auth_base.inc.php
    Posted by Michele
    2017-03-08

    Thank you. If you can tell me when you do upgrade, for me is very important.
    Posted by Tom
    2017-03-08

    Sorry, I can't say it. Whenever I get a chance!

    Customization Quick Guide

    Important Note: The guide assumes that the table name in the script is "Address"

    Yes, it always used to be that way. ( for 4 years! )

    But the thing has changed. Address Book Builder v1.1 or later allows users to choose any name for the table, so the table name is no longer always "address."

    Before you start reading the guide, it's good idea to make sure what table name is used in your script. To do so, use phpMyAdmin to check the table names. There should be two tables. one is "staff", which stores the staffs data. And the other one holds your data.

    Monday, August 12, 2013

    Address Book Script: Converting a Text Field to a Date Field

    To convert a text field to a date field, open web/codelib/asc/df.fl.(table-name).inc.php, and find the text field that you want to modify.

    The following example is a typical text field definition:

    (example)

    'last_name'=>array(
    XA_CLASS=>'CVText',
    XA_CAPTION=>RSTR_LAST_NAME,
    XA_SIZE=>24,
    XA_REQUIRED=>false,
    XA_MIN_CHAR=>0,
    XA_MAX_CHAR=>36,
    XA_SEARCH_OP=>'s%',
    XA_LIST=>'(sp)(sr)(fd)'
    ),
    

    Edit the value of XA_CLASS and XA_SEARCH, and add XA_FORMAT line like shown below:

    'last_name'=>array(
    XA_CLASS=>'CVDateTime',
    XA_CAPTION=>RSTR_LAST_NAME,
    XA_FORMAT=>'Y-m-d H:i:s',
    XA_SIZE=>24,
    XA_REQUIRED=>false,
    XA_MIN_CHAR=>0,
    XA_MAX_CHAR=>36,
    XA_SEARCH_OP=>'s%',
    XA_SEARCH_OP=>'s=',
    XA_LIST=>'(sp)(sr)(fd)'
    ),
    

    Lastly, change the data type of the field in the MySQL database from VARCHAR to DATETIME.

    Wednesday, April 24, 2013

    Address Book Script : Editing options in a dropdown listbox

    To edit the options of a dropdown list box generated by Address Book Builder, open web/config/config.selection.inc.php in a text editor. In the following example, three options are defined for the "State" dropdown list box.

    (example)

    define( 'SEL_STATE', "
    S1001=California
    S1002=New York
    S1003=Florida
    " );
    

    The format of options are a list of key-value pairs. The keys are stored in the database and the values are shown in the dropdown list box. You may freely add new key-value pairs to the list. Please make sure that all keys are unique and that the length of the key is equal to or less than the length of the field in the database.

    (example)

    Key=Value
    Key=Value
    Key=Value
    ...=.....
    ...=.....
    ...=.....
    ...=.....
    

    You are free to edit values any time you want. The changes are immediately reflected in the dropdown list box.

    On the other hand, editing a key may require extra works. If you have already created some records in the database, you must also change the corresponding keys in the records.

    Tuesday, March 26, 2013

    Address Book Script : Setting the id attribute of an input box

    Sometimes, you may need to specify the id attribuets of input boxes. You can set an id attribute by passing it in "$hm->Zb()."

    (example)

    <?php echo $hm->Zb('rs:def:first_name', ZB_ATTR, array( "id" => "enter-your-id-here" ) ); ?>
    

    Monday, March 25, 2013

    Address Book Script : Installing multiple copies in the same database

    If you try to install multiple copies of Address Book Script, table name collisions occur. In order to avoid it, you can change the table names before running the installation script. Change the table names in web/install/sql/sql.txt, which will be used to create tables in the database by the installation script. Also, you need to change the table names in web/codelib/cfg/config.table_name.inc.php.

    Sunday, March 24, 2013

    Address Book Script : changing the default sorting order

    To change the default sorting order, open web/staff/app/df.fieldlist.inc.php in a text editor and edit XA_INIT_ORDER_BY

    (example)

    'addresses' => array(
    XA_CLASS=>'cls_fl_addresses',
    XA_SPEC_FILE=>'df.fl.addresses.inc.php',
    XA_TABLE_NAME=>TBL_ADDRESSES,
    XA_ID_NAME=>'addresses_id',
    XA_INIT_ORDER_BY=>'addresses_id DESC',
    XA_INIT_PAGE_SIZE=>20
    ),
    

    Saturday, March 23, 2013

    Address Book Script : Template Path
    Search Page:
    Path: web/staff/tpl.(table-name).search.inc.php
    Detail ( Add New / Edit ) Page:
    Path: web/staff/tpl.(table-name).detail.inc.php

    Top
    Editing a Field Label

    You can often reuse existing fields by changing labels. For example, you can use the Cell field as the Office Tel# field by changing the caption of Cell to Office Tel#. To do so, follow the step below

     Step 1 
    Find the following code in web/codelib/cfg/res.eng.app.inc.php.
    define( 'RSTR_CELL', 'Cell' );
    Make the following modification (the BLUE text) like shown below. (1 location)
    define( 'RSTR_CELL', 'Office Tel#' );
     Done! 
    Note: The procedure above does not change the name of the field in the database.

    Top
    Making a Field Required or Optional

    You can easily make fields required or optional. For example, to make the email field required, follow the step below

     Step 1 
    Find the following code in web/codelib/asc/df.fl.address.inc.php.
    'email'=>array(
    XA_CLASS=>'CVEmail',
    XA_CAPTION=>RSTR_EMAIL,
    XA_SIZE=>24,
    XA_REQUIRED=>false,
    XA_MIN_CHAR=>0,
    XA_MAX_CHAR=>100,
    XA_SEARCH_OP=>'s%',
    XA_LIST=>'(sp)(sr)(fd)'
    ),
    Make the following modification (the BLUE text) like shown below. (1 location)
    'email'=>array(
    XA_CLASS=>'CVEmail',
    XA_CAPTION=>RSTR_EMAIL,
    XA_SIZE=>24,
    XA_REQUIRED=>true,
    XA_MIN_CHAR=>0,
    XA_MAX_CHAR=>100,
    XA_SEARCH_OP=>'s%',
    XA_LIST=>'(sp)(sr)(fd)'
    ),
     Done! 
    To change it back to "optional", set it to "false" like XA_REQUIRED=>false,

    Top
    Changing Size of Input Box

    You can easily change the size of input box in the New/Edit page. For example, to change the size of the input box of the email field from 24 to 48, follow the step below

     Step 1 
    Find the following code in web/codelib/asc/df.fl.address.inc.php.
    'email'=>array(
    XA_CLASS=>'CVEmail',
    XA_CAPTION=>RSTR_EMAIL,
    XA_SIZE=>24,
    XA_REQUIRED=>false,
    XA_MIN_CHAR=>0,
    XA_MAX_CHAR=>100,
    XA_SEARCH_OP=>'s%',
    XA_LIST=>'(sp)(sr)(fd)'
    ),
    Make the following modification (the BLUE text) like shown below. (1 location)
    'email'=>array(
    XA_CLASS=>'CVEmail',
    XA_CAPTION=>RSTR_EMAIL,
    XA_SIZE=>48,
    XA_REQUIRED=>false,
    XA_MIN_CHAR=>0,
    XA_MAX_CHAR=>100,
    XA_SEARCH_OP=>'s%',
    XA_LIST=>'(sp)(sr)(fd)'
    ),
     Done! 

    Top
    Resizing Column Size (Field Size)

    Do you need to make the size of a field larger/smaller? The following guide will show you an example for changing the size of a field. In this guide, you change the size of the email field from 100 chars to 200 chars.

     Step 1 
    Use phpMyAdmin to change the size of "email" field of the table, tbl_address to 200 chars.

    If you prefer to use a sql statement, use the following command:
    ALTER TABLE `tbl_address` CHANGE `email` `email` VARCHAR( 200 ) DEFAULT NULL;
     Step 2 
    Find the following code in web/codelib/asc/df.fl.address.inc.php.
    'email'=>array(
    XA_CLASS=>'CVEmail',
    XA_CAPTION=>RSTR_EMAIL,
    XA_SIZE=>24,
    XA_REQUIRED=>false,
    XA_MIN_CHAR=>0,
    XA_MAX_CHAR=>100,
    XA_SEARCH_OP=>'s%',
    XA_LIST=>'(sp)(sr)(fd)'
    ),
    Make the following modification (the BLUE text) like shown below. (1 location)
    'email'=>array(
    XA_CLASS=>'CVEmail',
    XA_CAPTION=>RSTR_EMAIL,
    XA_SIZE=>24,
    XA_REQUIRED=>false,
    XA_MIN_CHAR=>0,
    XA_MAX_CHAR=>200,
    XA_SEARCH_OP=>'s%',
    XA_LIST=>'(sp)(sr)(fd)'
    ),
     Done! 

    Top
    Copying a Field

    Do you need another field similar to an exsiting field in the script? If so, the following step-by-step guide will help you. In this guide, you will add a copy of the email field to the script. Let's call it "email2."

     Step 1 
    Use phpMyAdmin to create a new field named "email2" in the table, tbl_address. The attributes of the email2 field should be exactly the same as the email field except the name.

    If you prefer to use a sql statement to create the email2 field, use the following statement:
    ALTER TABLE `tbl_address` ADD `email2` VARCHAR( 100 ) NULL AFTER `email`;
    		
     Step 2 
    Find the following code in web/codelib/asc/df.fl.address.inc.php.
    'email'=>array(
    XA_CLASS=>'CVEmail',
    XA_CAPTION=>RSTR_EMAIL,
    XA_SIZE=>24,
    XA_REQUIRED=>true,
    XA_MIN_CHAR=>0,
    XA_MAX_CHAR=>100,
    XA_SEARCH_OP=>'s%',
    XA_LIST=>'(sp)(sr)(fd)'
    ),
    Copy the code above, paste it after the original, and make the following modifications (the BLUE text) shown below. (2 locations)
    'email2'=>array(
    XA_CLASS=>'CVEmail',
    XA_CAPTION=>'My New Email2',
    XA_SIZE=>24,
    XA_REQUIRED=>false,
    XA_MIN_CHAR=>0,
    XA_MAX_CHAR=>100,
    XA_SEARCH_OP=>'s%',
    XA_LIST=>'(sp)(sr)(fd)'
    ),
     Step 3 
    Find the following code in web/staff/tpl.address.detail.inc.php.
    <tr>
    <td class='column_caption'>
    <?php if ( $b_reg || $b_edit ) { ?><span class="required"></span><?php } ?>
    <?php echo RSTR_EMAIL; ?> :
    </td>
    <td class='column_value'><?php echo $hm->Zb('rs:def:email'); ?>
    </td>
    </tr>
    Copy the code above, paste it after the original, and make the following modifications (the BLUE text) shown below. (2 locations)
    <tr>
    <td class='column_caption'>
    <?php if ( $b_reg || $b_edit ) { ?><span class="required"></span><?php } ?>
    My New Email2 :
    </td>
    <td class='column_value'><?php echo $hm->Zb('rs:def:email2'); ?>
    </td>
    </tr>
     Done! 
    Log in the staff area and check the detail page of one of address records. You will see the email2 field and it's ready to use!

    Optionally, you can add the email2 field to the Search page.
    To add it as a search criteria, see Adding a Search Criteria.
    To display it in the Search Results table, see Adding a Field to Search Results table.

    Top
    Adding a Search Criteria

    The following steps guide you add a search criteria to the Search page. Let's use the street1 field as an example.

     Step 1 
    Find the following code in web/codelib/asc/df.fl.address.inc.php.
    'street1'=>array(
    XA_CLASS=>'CVText',
    XA_CAPTION=>RSTR_STREET1,
    XA_SIZE=>40,
    XA_REQUIRED=>false,
    XA_MIN_CHAR=>0,
    XA_MAX_CHAR=>100,
    XA_SEARCH_OP=>'s%',
    XA_LIST=>'(fd)'
    ),
    Insert the BLUE text like shown below. (1 location)
    'street1'=>array(
    XA_CLASS=>'CVText',
    XA_CAPTION=>RSTR_STREET1,
    XA_SIZE=>40,
    XA_REQUIRED=>false,
    XA_MIN_CHAR=>0,
    XA_MAX_CHAR=>100,
    XA_SEARCH_OP=>'s%',
    XA_LIST=>'(sp)(fd)'
    ),
     Step 2 
    Find the following code in web/staff/tpl.address.search.inc.php.
    <!-- [BEGIN] Main Form -->
    <div id="main_div">

    <?php include(INC_FORM_BEGIN); ?>

    <?php include(INC_BODY_INFO); ?>

    <!-- [BEGIN] Search Criteria -->
    <?php echo $hm->SectBegin( RSTR_SEARCH_CRITERIA ); ?>

    <div style='overflow:auto;'>
    <table width='99%'>


    Insert the BLUE text like shown below. (1 location)
    <!-- [BEGIN] Main Form -->
    <div id="main_div">

    <?php include(INC_FORM_BEGIN); ?>

    <?php include(INC_BODY_INFO); ?>

    <!-- [BEGIN] Search Criteria -->
    <?php echo $hm->SectBegin( RSTR_SEARCH_CRITERIA ); ?>

    <div style='overflow:auto;'>
    <table width='99%'>

    <tr>
    <td align="right"><?php echo RSTR_STREET1; ?> : </td>
    <td align="left"><?php echo $hm->Zb( 'sp:def:street1' ); ?></td>
    <td align="right">&nbsp;</td>
    <td align="left">&nbsp;</td>
    <td align="right">&nbsp;</td>
    <td align="left">&nbsp;</td>
    </tr>



     Done! 

    Top
    Adding a Field to Search Results table

    The following instruction explains how to display a field in the Search Results table. We use the street1 field as an example.

     Step 1 
    Find the following code in web/codelib/asc/df.fl.address.inc.php.
    'street1'=>array(
    XA_CLASS=>'CVText',
    XA_CAPTION=>RSTR_STREET1,
    XA_SIZE=>40,
    XA_REQUIRED=>false,
    XA_MIN_CHAR=>0,
    XA_MAX_CHAR=>100,
    XA_SEARCH_OP=>'s%',
    XA_LIST=>'(fd)'
    ),
    Insert the BLUE text like shown below. (1 location)
    'street1'=>array(
    XA_CLASS=>'CVText',
    XA_CAPTION=>RSTR_STREET1,
    XA_SIZE=>40,
    XA_REQUIRED=>false,
    XA_MIN_CHAR=>0,
    XA_MAX_CHAR=>100,
    XA_SEARCH_OP=>'s%',
    XA_LIST=>'(sr)(fd)'
    ),
     Step 2 
    Find the following code in web/staff/tpl.address.search.inc.php.
    <tr class='data_table_caption'>
    <th nowrap='true'><?php echo $hm->Zb('ob:rs:def:address_id'); ?> <?php echo RSTR_ADDRESS_ID; ?></th>
    <th><?php include(INC_SR_SELREC_HEADER); ?></th>
    <th><?php include(INC_SR_EDIT_BTN_HEADER); ?></th>
    <th><?php echo RSTR_ACTIVE; ?></th>
    <th nowrap='true'><?php echo $hm->Zb('ob:rs:def:first_name'); ?> <?php echo RSTR_FIRST_NAME; ?></th>
    <th nowrap='true'><?php echo $hm->Zb('ob:rs:def:last_name'); ?> <?php echo RSTR_LAST_NAME; ?></th>
    <th><?php echo RSTR_CITY; ?></th>
    <th><?php echo RSTR_STATE; ?></th>
    <th><?php echo RSTR_EMAIL; ?></th>
    </tr>


    Insert the BLUE text like shown below. (1 location)
    <tr class='data_table_caption'>
    <th nowrap='true'><?php echo $hm->Zb('ob:rs:def:address_id'); ?> <?php echo RSTR_ADDRESS_ID; ?></th>
    <th><?php include(INC_SR_SELREC_HEADER); ?></th>
    <th><?php include(INC_SR_EDIT_BTN_HEADER); ?></th>
    <th><?php echo RSTR_ACTIVE; ?></th>
    <th nowrap='true'><?php echo $hm->Zb('ob:rs:def:first_name'); ?> <?php echo RSTR_FIRST_NAME; ?></th>
    <th nowrap='true'><?php echo $hm->Zb('ob:rs:def:last_name'); ?> <?php echo RSTR_LAST_NAME; ?></th>
    <th><?php echo RSTR_CITY; ?></th>
    <th><?php echo RSTR_STATE; ?></th>
    <th><?php echo RSTR_EMAIL; ?></th>
    <th>Street1</th>
    </tr>

     Step 3 
    Find the following code in web/staff/tpl.address.search.inc.php.
    <?php while( $hm->zb('@rs:def:begin_table') ) { ?>
    <tr>
    <td style='text-align:right;'><?php echo $hm->Zb('rs:def:address_id'); ?></td>
    <?php include(INC_SR_ID_PARAM); ?>
    <?php include(INC_SR_SELREC); ?>
    <?php include(INC_SR_EDIT_BTN); ?>
    <td style='text-align:center;'><?php echo $hm->Zb('rs:def:active'); ?></td>
    <td style='text-align:left;'><?php echo $hm->Zb('rs:def:first_name'); ?></td>
    <td style='text-align:left;'><?php echo $hm->Zb('rs:def:last_name'); ?></td>
    <td style='text-align:left;'><?php echo $hm->Zb('rs:def:city'); ?></td>
    <td style='text-align:left;'><?php echo $hm->Zb('rs:def:state'); ?></td>
    <td style='text-align:left;'><?php echo $hm->Zb('rs:def:email'); ?></td>
    </tr>

    Insert the BLUE text like shown below. (1 location)
    <?php while( $hm->zb('@rs:def:begin_table') ) { ?>
    <tr>
    <td style='text-align:right;'><?php echo $hm->Zb('rs:def:address_id'); ?></td>
    <?php include(INC_SR_ID_PARAM); ?>
    <?php include(INC_SR_SELREC); ?>
    <?php include(INC_SR_EDIT_BTN); ?>
    <td style='text-align:center;'><?php echo $hm->Zb('rs:def:active'); ?></td>
    <td style='text-align:left;'><?php echo $hm->Zb('rs:def:first_name'); ?></td>
    <td style='text-align:left;'><?php echo $hm->Zb('rs:def:last_name'); ?></td>
    <td style='text-align:left;'><?php echo $hm->Zb('rs:def:city'); ?></td>
    <td style='text-align:left;'><?php echo $hm->Zb('rs:def:state'); ?></td>
    <td style='text-align:left;'><?php echo $hm->Zb('rs:def:email'); ?></td>
    <td style='text-align:left;'><?php echo $hm->Zb('rs:def:street1'); ?></td>
    </tr>

     Done! 

    Top
    Adding Sort Buttons

    This section will explain how to add sort buttons on the header of Search Result Table.

    You already have sort buttons on First Name and Last Name, so let's try the City field.

     Step 1 
    Find the following code in web/staff/tpl.address.search.inc.php.
    <tr class='data_table_caption'>
    <th nowrap='true'><?php echo $hm->Zb('ob:rs:def:address_id'); ?> <?php echo RSTR_ADDRESS_ID; ?></th>
    <th><?php include(INC_SR_SELREC_HEADER); ?></th>
    <th><?php include(INC_SR_EDIT_BTN_HEADER); ?></th>
    <th><?php echo RSTR_ACTIVE; ?></th>
    <th nowrap='true'><?php echo $hm->Zb('ob:rs:def:first_name'); ?> <?php echo RSTR_FIRST_NAME; ?></th>
    <th nowrap='true'><?php echo $hm->Zb('ob:rs:def:last_name'); ?> <?php echo RSTR_LAST_NAME; ?></th>
    <th><?php echo RSTR_CITY; ?></th>
    <th><?php echo RSTR_STATE; ?></th>
    <th><?php echo RSTR_EMAIL; ?></th>
    </tr>


    Insert the BLUE text like shown below. (1 location)
    <tr class='data_table_caption'>
    <th nowrap='true'><?php echo $hm->Zb('ob:rs:def:address_id'); ?> <?php echo RSTR_ADDRESS_ID; ?></th>
    <th><?php include(INC_SR_SELREC_HEADER); ?></th>
    <th><?php include(INC_SR_EDIT_BTN_HEADER); ?></th>
    <th><?php echo RSTR_ACTIVE; ?></th>
    <th nowrap='true'><?php echo $hm->Zb('ob:rs:def:first_name'); ?> <?php echo RSTR_FIRST_NAME; ?></th>
    <th nowrap='true'><?php echo $hm->Zb('ob:rs:def:last_name'); ?> <?php echo RSTR_LAST_NAME; ?></th>
    <th><?php echo $hm->Zb('ob:rs:def:city'); ?> <?php echo RSTR_CITY; ?></th>
    <th><?php echo RSTR_STATE; ?></th>
    <th><?php echo RSTR_EMAIL; ?></th>
    </tr>

     Done! 

    Monday, March 4, 2013

    Bug Fix : Address Book Builder 1.2

    Description: This is a bug introduced in Address Book Builder v1.2. In some builds, some of data columns of the search result table get cut off. ( Thank you for reporting, Mikitty! )
    Status: Fixed

    Thursday, February 28, 2013

    Pickup Center Update : Popup Info Card

    Added popup info cards to Pickup Center. When you hover the mouse cursor over a script box, a small window pops up and displays the list of fields used in a script.

    Friday, February 22, 2013

    Address Book Builder v1.1 Update

    Address Book Builder was updated to v1.1. The new version of Address Book Builder allows you to choose a field type from an input box, textarea, checkbox and dropdown listbox.

    Also, you can name the table as you like. ( In the previous version, the name of the table is always "address" )

    Monday, January 21, 2013

    Address Book Builder v1.0 Now Available Online

    Address Book Builder allows you to generate a web-based Address Book Script ( PHP + MySQL ), which you can install on your web site.

    Just enter a title and a list of fields you would like to have. Address Book Builder will generate the PHP code for you.

    Since you can specify fields freely, the application is not limited to address books. You can use Address Book Builder to create scripts that store a member list, customer list, employee list or any lists you can imagine.

    Friday, December 14, 2012

    A new section, 'Adding Sort Buttons' was added to Customization Quick Guide

    Sunday, December 9, 2012

    The new section, 'Editing a Field Label' was added to Customization Quick Guide

    Tuesday, December 4, 2012

    An easy alternative way to upgrade Address Book Script v1.16 to v1.17

    To upgrade Address Book Script v1.16 to v1.17, you don't need to reinstall the entire script again.

    Download this zip file and replace "web/codelib/asc/df.fl.address.inc.php" in your copy of Address Book Script (v1.16) with "web/codelib/asc/df.fl.address.inc.php" in the zip package.

    Monday, December 3, 2012

    Address Book v1.17

    Bugfix: Fix duplicate string resources.