development

This is an old revision of the document!


Development

The source code for this project is currently hosted at SourceForge.net.

You can find the project details for PHP iAddressBook on SourceForge.net here.


The SVN repository is organised the usual way:

  • The trunk tree contains the most recent development version.
  • The branches tree contains subfolders for the different versions (0.9x, 1.0x etc.)
  • The tags tree contains snapshots for all software releases ever made.


To checkout the newest development version, enter the following command on the commandline

svn co https://iaddressbook.svn.sourceforge.net/svnroot/iaddressbook/trunk iaddressbook-dev

The following vCards were used for all testing. They were created with the AddressBook application found in Mac OS X. All fields have been used to create a maximum stress situation for the parser and the database. The following fields are ignored during the import:


  • maidenname (X-MAIDENNAME)
  • dates (X-ABDATE)
  • addressbook UID (X-ABUID)

All other fields are correctly imported and correctly exported.

Translation into other languages is very easy. Every language definition is stored in a php-file which resides in a separate folder for every language below the lang folder. Example: lang/en/lang.php contains the english language strings. The folder names for languages are in 2-letter ISO format (en = english, de = german, it = italian etc.).

Please send me your translations so I can include them in the distribution.

An example of the file contents is given below:

$lang['label_birthday']   = 'birthday';
$lang['label_notes']      = 'notes';
$lang['label_updated']    = 'updated: ';
$lang['label_nocontact']  = 'No Card Selected';
 
$lang['label_title']      = 'Prefix';
$lang['label_firstname']  = 'First';
$lang['label_firstname2'] = 'Middle';
$lang['label_lastname']   = 'Last';
$lang['label_suffix']     = 'Suffix';
$lang['label_nickname']   = 'Nickname';
$lang['label_jobtitle']   = 'Job Title';
$lang['label_department'] = 'Department';
$lang['label_organization'] = 'Company';

I was looking for a possibility to display and manage all my contacts with a web based application. Prior to writing this program I checked the web for already existing solutions and found none of them fitting my needs. I wanted the following features to be present:

  • display/add/edit contacts
  • a contact must be able to store besides the default fields a nickname, birthdate, a photo, multiple addresses, emails and phone numbers, a note field and chat handles, search function
  • intelligent search function (meaning all fields and values are searched)
  • vcard export (to stay flexible if a better solution arises one day)
  • vcard import (to facilitate filling the database)

This is a MUST-HAVE list. My personal addresses are normally stored inside Apples AddressBook which I find to perfectly fit all my needs. I thought that a web based equivalent, that behaves pretty much the same would be very cool.

This is a list of all PHP addressbook applications I found on the web including a short comment why they did not fit my needs.

  • http://www.corvalis.net/address/
    supports all fields needed, search does only check firstname/lastname fields, import missing, vcard export does not export all fields
  • http://inscriptio.sehnot.de/
    lacks support for: multiple addresses, multiple emails, multiple phone number, photo, chat handles, search function, import/export

The Address Book from http://www.corvalis.net/address/ looked pretty good. It was the only solution that came pretty close to what I wanted. I downloaded the code and started analysing it in the hope I could enhance it a little bit. The problem with this product is that it obviously lacks some application design. Code and HTML are not separated. No use of functions. MySQL support is hardcoded. No abstraction of contacts, addressbook and data display. It gave me the impression of a very professional *hack* :-) I could do this better and that is the reason why I started yet another address book.

  • update version number
  • remove /conf/config.php
  • remove /conf/auth.php
  • disable translator.php
  • request updates from translators
  • update /README.txt
  • adjust /INSTALL.txt if necessary
  • adjust /addressbook.sql if necessary
  • adjust /sqlite/* schemas and db if necessary
  • development.1348172042.txt.gz
  • Last modified: 17-11-2016 12:33
  • (external edit)