Contact Directory
Documentation
Contact Directory
Written by Chantal Bisson   

Here's some documentation on how to use my component. For anybody wanting to test my component out without intalling it on a running Joomla! installation, I have set up a demo site at www.chantalbisso.com/demo. The login and password are demo/demo.

Field Manager

New Field

To create a new field for the contact info back-end form in the Contact Manager, click the "New" button in the Field Manager's toolbar. You will be sent to this page:

Once there just fill in the form and click "Save". The title field is mandatory in order to save the field and must not have the same title as an existing field. The position field in the form is linked to the position on the page in the front-end where the information will be displayed.

There are six different positions where the information may be displayed in the front-end. These positions are:

Title
Top
Left Main Right
Bottom

Contact Manager

New Contact

To create a new contact click the "New" button in the Contact Manager's toolbar. You will be sent to this page:

Once there just fill in the form and click "Save". In order to save the new contact, a name must be entered, at least one category must be selected and if there are fields in the information section with a star, they too must be entered.

It is possible to add a contact to multiple categories by selecting multiple categories in the categories list. Once saved it is possible to reorder the contact in each of the selected categories.

The fields that are in the information section are the fields created in the field manager.

For each fields created in the field manager, it is possible to decide to show or hide the field's information on the front-end. The contact page parameters control the fields in the contact information page and the contact list parameters control the fields to show in the two list layouts. This makes it possible to show different information depending on the layout.

Import Contacts

If you have a large number of contacts to add to the database, it is possible to add them all at once using the Import Contacts page.

There is two options for importing contacts. You may upload a csv file from the computer or if preferred copy and paste a csv file in the designated text box.

CSV files can be easily created from most of the spreadsheets software by just choosing save as csv when saving the file. In order to import the contacts correctly, the csv file must follow a certain standard. To make things simpler, I'll be explaining things using a spreadsheet.

First off, each contact that will be saved in the database has it's own row. The first row though is the title row where the contact's fields titles will be inserted in separate columns. The columns can be placed in any order as long as the title used are the same as what the component uses. There are columns that are fixed and can't be changed and others that are customisable.

The fix columns are name which is mandatory in order to be able to save the contacts, alias, published, user_id, access, categories which is also mandatory, params, showContactPage and showContactLists.

Here are the description of each column with their accepted values:

Columns Description Values
name (mandatory) The contact's name string
alias The alias that Joomla! uses string
published Make the contact published or not y: true
n: false
user_id The id of the user to link to this contact number
access The access level to this contact's information p: public
r: registered
s: special
categories (mandatory) The id of each categories that the contact will be added to numbers (ids separated by | )
params The Email Parameters string (parameters separated by | )
showContactPage The Contact Page Parameters field name = (y: show, n: hide) separated by |
showContactLists The Contact List Parameters field name = (y: show, n: hide) separated by |

The custom columns are the fields created in the Field Manager. The title to use for these columns are the field's name in lowercase and underlines replacing spaces. If the field's parameter is specified as "required" then the column is mandatory.

In any case, when the fields are not mandatory, and that the columns does not exist in the file or that the value has been left empty then the default value is saved in the database.

Spreadsheet example:

CSV file example:

name,alias,published,user_id,access,categories,email,address,web_site,showContactPage,showContactLists,params

Manon Salty,,y,,p,34|37,salty@myblog.com,"2345, Fashion Street",,,email=n|address=y|web_site=y,show_name=1|

show_name_directory=1|show_email_form=1|email_form_pos=right|email_form_access=0|email_description=|

show_email_copy=1|banned_email=|banned_subject=|show_name=1|show_name_directory=1|show_email_form=1|

email_form_pos=right|email_form_access=0|email_description=|show_email_copy=1|banned_email=|banned_subject=|

banned_text=|show_captcha=1|validate_email_form=1|banned_text=|show_captcha=1|validate_email_form=1

John Fish,fish-john,n,63,r,35,john_fish@hola.com,"854, 5th avenue",www.commeread.com,email=n|address=y|web_site=y

Menu Item Manager

New Menu Item

To create a new link in the menu to the contact directory component, click on the "New" button in the Menu Item Manager toolbar. You will then be sent to this page:

Select one of the views under Contact Directory and fill in the form and save.

 
59 Votes

1 Comment

Here Comes the Finish Line
Contact Directory
Written by Chantal Bisson   

After a whole summer of coding during the evenings and weekends, the GSoC project has finally come to an end. During the summer, I worked hard to build a contact component that would give flexibility while making it easier to add multiple contact and display them as a directory.

In the past couple of weeks, I have specifically been working on making it possible to import contacts from a CSV file. The CSV file format is a specially formatted plain text file which stores spreadsheet or basic database-style information in a very simple format. Therefore it will be easy to insert the contacts in a spreadsheet, save it as a CSV file and then import it into the Joomla! database. I have also been fixing bugs that you have reported and that I have found while doing some testing.

I have uploaded on the Web a new alpha release of my component with all the changes that have been made since the last release. It is available for download at www.chantalbisson.com/download.

Although the Summer of Code is now over, it is not the end for my project. I still have a tone of ideas to get the contact component even better, and I intend to keep working on implementing those ideas in the future. I will be providing some documentation on how to use the component (especially the import contacts functionality) in the next few days in order to help you get a better understanding of how my component works.

I have extremely enjoyed being part of the GSoC project this summer. It has been a great experience, filled with challenges to overcome, problems to solve and lots, lots of fun. It has also been a good learning experience where I have bettered my PHP skills, learnt how the Joomla! Framework works, bettered my understanding of databases, etc.

I have also enjoyed working with an open source community such as Joomla! where people all around the world help each other make the best software possible. I would like to thank all of you that have helped me In all kinds of ways by giving your support, sharing your great ideas, and helping me test the components to find bugs in my code. I would also like to thank all the Joomla! GSoC organizers, and mentors (especially Sam, my personal mentor) that have volunteered many hours to make this summer a success.

 
52 Votes

5 Comments

Alpha Version Released
Contact Directory
Written by Chantal Bisson   

Hi everybody,

Today I have released the alpha version of my contact directory component on my server. Everybody that is interested to try and test it out is welcomed to do so.

Link to download: www.chantalbisson.com/download/

If any of you find bugs, there is a bug tracker that is set up for my project at the Joomla Code web site (JContactMiniWeb). I invite you to summit all your bug reports there in order to help me fix any issues that there may have.

Link to bug tracker: joomlacode.org/gf/project/gsoc2008/tracker/

Hope you like my work. Feel free to give feedback and give your opinion.

 
45 Votes

2 Comments

Update on my project's progress
Contact Directory
Written by Chantal Bisson   

Some time has past since my last post and probably many of you are impatient to know what has been going on with my project.

Midterm was from July 7th to July 14th and I am glad to say that I have passed and still working very hard on the contact/directory component.

My project has been progressing at a good pace. I'm now displaying the contacts in three different "views". The first is the "Contact" view which displays a single contact’s information and an email form. The option of showing a captcha image to prevent spam has been added to the email form. Everything that is displayed on the page is customizable. It is possible to choose the position that each item is displayed in (even the email form), and also apply custom CSS formatting to those items.

The two other views that I worked on are the "Category" view which displays a list of contacts from a single category and the "Categories" view that displays a list of all contacts. In order to facilitate the search for a specific contact, I have implemented two type of filtering in these views. The first is an alphabet filter that searches the first letter of the contact's name, and the second is a search box filter that searches the sequence of letters anywhere in the contact's name. Like for the "contact" view, it is possible to choose which fields to show or hide and once again it is possible to apply custom CSS formatting to the fields.

There are other smaller functionalities that I have implemented in the component. You are welcome to try my component out and test them for yourself by downloading my code from the joomlacode website. You are also free to report any bug that you find to me so that I may fix them.

http://joomlacode.org/gf/project/gsoc2008/scmsvn/?action=browse&path=%2FJContactMiniWeb%2F

Even though it might seem that my project is coming to completion. I still have many small things I need to do before it is finished. In the coming week I am planning to work on the router.php file that parses the joomla url into a clean url, the language files and the install file.

 
44 Votes

7 Comments

Backend almost finished
Contact Directory
Written by Chantal Bisson   

The last two weeks have been going a lot better than at the beginning.  I've been working on the admin section that actually manages the contacts.

In order to facilitate the integration of the custom fields to the contact, I had a chat with my mentor and we've decided that it would be easier if I made some changes to my original database schema.  Although I had to make changes to my code, it didn't take me long and I was back to coding new features.

So what are the features that I've been working on you ask. To start off, it is now possible to assign multiple categories to a single contact and also choose the ordering of the contact in each category that has been selected. Secondly, every time a field is created in the field manager, it shows up in the edit contact page. And finally, if is also possible to show or hide each custom field by changing the contact parameters.

The only major thing that need to be completed before I start work on the front-end of my component is to fully  complete the store method that will save the contacts information in the tree different database tables that I am using.

Once that is done, I will work on the front-end and the actual presentation of the component. I'm hoping to have a basic working component for mid-term.

 

Here is a screen shot of the edit page of the contact manager:

 
47 Votes

1 Comment

It was a slow beginning, but...
Contact Directory
Written by Chantal Bisson   

It has now been two weeks since the official beginning of coding and yes those two weeks went by so fast.

Since I've started coding, I've had ups and downs. First off I was not able to configure xdebug on Windows. After many long hours reserching the web and chatting on skype with the mentors, I finally gave up and configured everything on Linux. But wen I say I have the talent to bug Linux up, it's true. After a few days coding on Linux, I managed to bug gnome's graphical interface pretty bad and it was impossible to work. It took me a good day to get things going again.

On the bright side of things, after fixing all my computer related problems, I was able to get some code written down. I've been working on the field manager for my component. This is where new fields for the contact details can be added and managed. It is pretty much finished and I'm soon ready to tacle the acual contact manager.

Here's some screenshots of the field manager in the backend:

You may checkout my code with svn at http://joomlacode.org/svn/gsoc2008/JContactMiniWeb.

 
44 Votes

3 Comments

What I'll be working on
Contact Directory
Written by Chantal Bisson   

I had promised, in my last post, to publish a list of features that I want to implement in the contact directory component. So finally, after several weeks in waiting, here are some features that I wish to implement during the summer in order to improve the contact component:

- Contact page

  •  custom fields for the contact information:
    • possible to create as many custom fields as wished
    • choose the position where the field will be displayed on the page
    • different access levels for each field
    • custom styling for each field
  • custom fields for the contact form that will be added to the message sent
  • multiple categories for one contact
  • show/hide fields to display in the page

- Directory

  • order contacts by category or alphabetically
  • display a specific category only
  • show/hide fields to display in the directory
  • different layouts

- Other

  • different user wrights for the creation / modification of a field or contact
  • import multiple contacts at once (only if I have time)
  • LDAP integration (only if I have time. I do not have lots of knowledge with the protocol and will probably need some help)

 

 
45 Votes

1 Comment

Feedback very appreciated
Contact Directory
Written by Chantal Bisson   

As I'm on the edge of beginning my project for GSoC and still in the conception phase, I would very much like if you, the community, help me to make the best contact and directory component possible this summer, by writing, down below, any comments you may have or functions you would like to see implemeted in the future component.

This project is basicly being created with the future prospect of being implemented in Joomla! itself and the more you get involved, better are the chances that the new component meets your needs and asperations. I will do my best to add as many of your ideas into the component, as long as it stays feasable during the time frame.

Thank for your help in making this project a successful one and I can't wait to read all the incredible ideas you may have.

 
 
46 Votes

12 Comments

Team: Contact Directory
Contact Directory
Written by Amy Stephen   

Chantal Bisson

 

Chantal Bisson is a sophomore in Software Engineering at Laval University in Quebec City in Canada. She is passionate about everything related to the Internet, from programming Web applications to designing templates, and is especially interested in working with free and open source software like Mozilla, Eclipse, and Joomla!. Chantal works at POPcliQ and has acquired advanced skills in xHTML and CSS through her experiences with Joomla! templates. She also has skills with JavaScript, PHP, MySQL, C, C++, Java, Flex and ActionScript 3.

Sam Moffatt Mentor: Sam Moffatt works for the Toowoomba Regional Council in Queensland, Australia where his responsibilities include application and Web development, server and database administration. Sam has a long history dating back to 2003 with Mambo and was a student in the first GSoC program in 2005. Due to his success, Sam was invited to join the Joomla! core and development teams where he advanced such initiatives as JoomlaCode, Migrator, and authentication. This is Sam's third year as GSoC mentor.

 
47 Votes

2 Comments

Abstract: Contact Directory
Contact Directory
Written by Chantal Bisson   

The project that I will be working on for GsoC is to build a new and improved Contact & Directory component for Joomla!’s core installation.

The current contact component has not changed since Joomla!’s early days and does not meet the current need of Joomla! users. My plan is to completely transform the current component into a new one that will give users much more flexibility for their sites.

The component will have two main parts to its making: a new & improved Contact component as well as a functional Mini Directory component.

The goal is to develop the current Contact component (information/form page) in which it will then be possible to choose the fields needed for the contact information and the layout (amongst a few layouts) that they want within the administrator.

Secondly, the component will also be a Directory of contacts in which all the contacts can be listed alphabetically and/or by category. It will also be possible to choose the fields that show up for each contact and the layout (amongst a few layouts). By clicking on a contact, the link will point to the contact information/form page for more details or to send a message using the contact form. There will be an option in the parameters of the directory to show a search box in which the viewer will be able to search for a particular contact if the directory has many contacts. A nice feature that I would also like to implement will be the possibility to add many contacts at the same time by uploading a spreadsheet or text file. This will help those who have many contacts to add to their site at once.

 
45 Votes

7 Comments