acorea

random thoughts and little goodies

Dienstag, November 04, 2008

major (php-)refactoring and documentation updates

I have been refactoring our backend, application structure and bootstrapping in the last few weeks.

In the backends, we extend the abstract sql backend class which contains all the standard functions like create, update, delete, etc. and is able to handle the different records and database tables.

Our application structure also changed a little bit. I updated the documentation in the wiki.

The bootstrapping process has been revamped as well. We splitted the Tinebase_Controller and created a new Tinebase_Core class which now does all the initialization work and can be used to get data from the registry (like the database adapter, current user, ...).

More new wiki articles cover the Exceptions concept and a HowTo for building a Tine 2.0 application (still work in progress).

Labels: , ,

Dienstag, September 16, 2008

fonts in pdf export

We are using the Zend_Pdf module from Zend Framework to create the PDFs for the contact and lead export functionality.

Sadly, the build-in type1 fonts of Zend_Pdf don't support unicode characters. But we have added the possiblity to include your own fonts (in truetype or opentype format) to display more exotic characters. I got some good results with the DejaVu font that came with OpenOffice on my Ubuntu system. This feature is part of the upcoming beta1 release.

To include your fonts, you have to add the following lines to the config.inc.php in the tine root dir and adjust the paths and embed setting:

'pdfexport' => array(
'fontpath' => '/usr/share/fonts/truetype/ttf-dejavu/DejaVuSans.ttf',
'fontpathbold' => '/usr/share/fonts/truetype/ttf-dejavu/DejaVuSans-Bold.ttf',
'fontembed' => true
)

Does anybody know a (tt or ot) font that has full unicode support?

Labels: , , , ,

Dienstag, September 02, 2008

tine 2.0 roadmap updated

we just updated the tine 2.0 roadmap and added more milestones and issues/features to it.

we plan to release the tine 2.0 beta1 (feature freeze) and beta2 (bugfixing, translations and missing unittests) in september.

there is already an outlook on future features (see section "on the horizon").

Labels: , , , ,

Donnerstag, Juli 17, 2008

profiling with xdebug and KCacheGrind

One of my last tasks was to rewrite the functions for searching for contacts in the Addressbook application. At one point, I wondered why it took so long to fetch some contacts from the database and display them in the addressbook.

To analyze the control flow of the searchContacts() function, I used xdebug to create a profiling log and KCacheGrind to visualize the the function calls, the execution time and the control flow of tine 2.0.

After I got accustomed to this kind of visualisation, I quickly found the function that was responsible for the long execution times and was able to improve it and make it faster.

We plan to implement caching of data in the next milestone to improve the performance even more.

If you want to know more about profiling with xdebug read this article.

Labels: , , ,

Donnerstag, Mai 15, 2008

roles and rights management

the new role based rights management is now working and will replace the old user/group based rights management. i added a new dialog to the admin application where the administrator can define new roles, add members (users and groups) and define the rights for the roles.

the setup creates two roles: the user role (which has only the right to run all applications except the Admin application) and the admin role (has all rights).

more rights will be added to the applications soon.

Labels: , , , ,

Montag, April 21, 2008

Application rights management

another crucial function has been implemented in tine 2.0: the application rights management. you can set these rights in the admin/application dialog by double clicking on an application or pressing the 'settings' button. in this dialog, you can search for groups and users and add or change their rights for this application.

at the moment we just have the 'admin' and 'run' rights, but more rights (for example the right to create shared folders) will follow soon.

if you update an existing installation you have to create new database tables and rerun the setup.php. but dont't despair, we'll add an update function for the setup very soon.

Labels: , , , ,