Plugins!!!

12 12 2007

The last two weeks I was working on the Database integration and…on a PluginManager.

I also Started a new Frontend. This time its getting modular and therefore customizable.

Right now the frontend is only able to login and logout but that will change with each plugin I (or everyone who wants) write(s).

Screenshots or example pages comming soon. I want to get some more functionality done first.

Now to the more interesting stuff…how do you write a plugin and what exactly can it do.

Writing a ContactR Plugin is easy, just write a class for your program stuff it in a php file and drop it into the functions folder of contactR. Furthermore there need to be a line added into an DB-Table. That sounds like an awful lot of work for deployment? No problem. The PluginManager soon is able to do that for you. Soon you only need to pack your plugin into a Zip-File and upload it with the webinterface. Then click activate in the administration view.

You see there WILL BE cake ;)

I will post the interface for a Plugin the net days I want to do some fixes first. The biggest problem irght now is the integration into the design. I need to do a kind of anchor for marking the place where an output for an plugin should go. So one can specify where the output should go in the plugin itself.

Perhaps there could be a Designer for that. Like the one WordPress or blogger uses. It could just override the hardcoded position choosen by the plugin itself  with a value in the database.

Some Funcionality a Plugin need as far as I see right now:

  • Administration View
  • Configuration View
  • The actual View (showing Output)
  • The “Doing” of actions
  • Installation/Uninstallation
  • Updating (from a given server)
  • Information (like Author, status, posible actions, …)

If you miss something write me a comment :)

So long.





Database Schema online

28 11 2007

Finaly I finished the Database Schema.

I tried to achieve 3N to all relations (What is 3N? See Wikipedia).

Especially for the Taging schema I choose this approach, called “toxi”, because it is the most scalable and reliable I found. It might not be the fastest way to do this, but in future if there is a need for there could be a hybrid between toxi and the Mysqlicious approach with fulltext which is also used by del.icio.us. A Hybrid in that manner would start both strategies as individual queries and then uses first comes first serves.

To visualize the Database I installed SQL Designer on the sample Platform. You can find it here.

With this tool you can see the current DB Design and even Modify it. So if you have any proposals for improving the database design or find some major flaws you can post it as a comment here or just draw a picture with the tool ;)

If there are some questions for using the tool visit the Website mentioned above or just write me an email or comment.

Please save it under a new keyword if you modify it so I can see all the different proposals. If some of you just don’t care and overwrite it anyways, you others dont fear:

If there are some problems (like someone deleted or overwrote the Schema) or the Database has changed but you still want to see or improve the Database Design, here is a XML file with which you can recreate this version. Just click Import from XML in the SQL Designer and paste the XML data.

Don’t worry no matter what you do you won’t affect the real database in any way.

I also made an Snapshot for archiving reasons.

Snapshot of the Database

So long…

- – -

In case you wondered:

FK = Foreign Key

PK = Primary Key





Development Status + Newest Version uploaded

21 11 2007

So here comes the current status. For the ones which didn’t test ContactR yet, and the ones which want to test it again (username and pw changed):
- location: http://contacts.shdev.de/
- user: admin
- pw: 1234

In the actual version didn’t change too much, at least not noticable. I have moved the user handling into a MySQL Database and implemented an login/logoff mechanism provided by the phpUserClass.

Further I started the Database-Design for the rest of the data. Right now there is a XML-MySQL hybrid used.

But before I continue telling what is planned to implement here the current feature list:

Server:

  • Login user
  • Logoff user
  • Register user with email for activation Link
  • Activate user
  • Remember User per Session
  • Remember User per Cookie
  • Load contact data from XML file
  • Load contact data from LDIF file
  • Load contact data from VCF file
  • Save contact data to XML file
  • Save contact data to LDIF file
  • Save contact data to VCF file
  • Create contact
  • Read contact details
  • Delete contact
  • Read list of contacts
  • Read list of groups
  • Read relation between contacts and groups
  • Interface for converter plugins
  • User Roles not yet used

Client:

  • Login user
  • Logoff user
  • Show list of groups
  • Show list of contacts in current group
  • Show list of contacts in all groups
  • Remember user per Session
  • Remember user per Cookie
  • Import LDIF file
  • Export LDIF file
  • Create contact
  • Show contact details
  • Delete contact
  • Refresh data on command
  • Search incrementaly and instaneously in current contact list
  • Show contact detail region
  • Hide contact detail region

So far the features. If you find one I missed tell me ;)

I promised to post the time line with the milestone for the feature as well as the approximated times for the milestones in the next days.  Of course there will be a complete feature list with all todos and dones.

So long…