Thursday, December 10. 2009
OpenStreetMap integrated into Tine 2.0 Posted by Lars Kneschke
in eGroupWare 2.0, Tine 2.0 at
22:39
Comments (0) Trackbacks (0) OpenStreetMap integrated into Tine 2.0
For a very long time I tried to integrate a mapping solution into Tine 2.0. Just try to remember that 2.0 in our projects name stands for Web 2.0. So it must be able to use a webservice to display a map.
First we integrated Google Maps. Shortly after we had finished the implementation, we had to remove it again, because Google prohibits the usage of their maps in non public systems. And buying a Google Maps license is very expensive. I should have read the usage policy before I started implementing it. So we had a closer look at really free mapping solutions. There are at least two solutions available: Mapstraction and OpenLayers. As OpenLayers is also the foundation for the map provided by OpenStreetMap we decided to bet on this library. I started implementing ExtJS classes for easy integration of maps into Tine 2.0 until I discovered GeoExt. GeoExt is developed from people who seem to know more about mapping solutions than me. So I dropped my code again and implemented the map widget for Tine 2.0 based on GeoExt which is based on OpenLayers. But displaying a map is only one part of the story. The other part is to know which part of the map to display. Even if you can get my postal address, you still need to know the coordinates. And again OpenStreetMap comes to our rescue. They just launched Nominatim. Nominatim is a webservice which allows you to resolve an address into its coordinates. Just try this link to find out where we work. To make the long story short, you can display maps from OpenStreetMap for your contacts now. And this is how it looks like: ![]() As you can see I live near a Autobahn. Another cool feature to implement in the future, is that we are able to validate or complete addresses this way. As Pickhuben(the street where our office is located) is already unique, Nomination can return us the whole address including village, county, postalcode and of course the coordinates. Or can filter your contacts and display them on a map. Really cool features just waiting to get implemented. Wednesday, November 18. 2009
How to connect to Tine 2.0 from ... Posted by Lars Kneschke
in eGroupWare 2.0, Tine 2.0 at
07:00
Comments (0) Trackbacks (0) How to connect to Tine 2.0 from other systems?
The 2.0 in the name of Tine 2.0 stands for "Web 2.0". From the beginning it was clear, that we need to be open to other systems. There must be a clear separation between the business logic and the userinterface.
We solved this problem automatically by having a JavaScript userinterface which talks to a PHP based webservice via JSON. This way we have a JSON based webservice other webclients can connect to for free. We support JSON-RPC and JSON-SMD, which allows you to connect to Tine 2.0 with any language which supports HTTP and JSON. As a heavy user of the Zend Framework, it was very sad that the Zend Framework provides Zend_Json_Server which made implementing the server side for Tine 2.0 very easy, but no Zend_Json_Client. Up till now.... Introducing Zend_Json_Client ... I filled the gap, by implementing Zend_Json_Client. The Zend_Json_Client allows you to connect from other PHP based webapplications to any JSON-RPC server. So far I have the tested the implementation only against the Zend_Json_Server. As the Zend_Json_Client also supports JSON-SMD we are able to verify the request method name and number of parameters already on client side. I modelled the Zend_Json_Client after the Zend_XmlRpc_Client and used as many parts as possible from the Zend_Json_Server classes. As a next step I need to get in contact with the maintainer of the Zend_Json classes to get the Zend_Json_Client pushed into Zend Frameworks SVN. Then it will be available to any user of Zend Framework in the future. ... and Zend_Service_Tine20 As we have a Zend_Json_Client now, we also need Zend_Service_Tine20 now. Zend_Service_Tine20 is a very thin layer on top of Zend_Json_Client which provides functions to login and logout from Tine 2.0. More is not needed as all other functionality is provided by plain JSON-RPC calls. But how does code look like? Connecting to Tine 2.0 is very easy now. To test the functionality lets try to do following. Insert a new contact into the addressbook and add a lead associated with this contact into the CRM. A typical situation when you have a contact formular on your public website. // url of your Tine 2.0 installation $tine20Url = 'http://tine20/index.php'; // login name $tine20Loginname = 'loginname'; // password $tine20Password = 'password'; // id of addressbook container $addressbookContainerId = '9'; // id of CRM container $crmContainerId = '14'; // set include path to find all needed classes set_include_path('/var/www/tine20' . PATH_SEPARATOR . '/var/www/tine20/library' . PATH_SEPARATOR . get_include_path()); require_once 'Zend/Loader/Autoloader.php'; $autoloader = Zend_Loader_Autoloader::getInstance(); $autoloader->setFallbackAutoloader(true); // initialize Tine 2.0 service $tine20 = new Zend_Service_Tine20($tine20Url); // login into Tine 2.0 $response = $tine20->login($tine20Loginname, $tine20Password); var_dump($response); // call Tinebase.getAllRegistryData directly $result = $tine20->call('Tinebase.getAllRegistryData'); // call Tinebase.getAllRegistryData using a Tinebase proxy class $tinebase = $tine20->getProxy('Tinebase'); $result = $tinebase->getAllRegistryData(); // get a proxy class for the Addressbook namespace $addressbook = $tine20->getProxy('Addressbook'); // create a new contact $contact = $addressbook->saveContact(array( 'n_family' => 'Picard', 'n_given' => 'Jean-Luc', 'container_id' => $addressbookContainerId )); // get a proxy class for the CRM namespace $crm = $tine20->getProxy('Crm'); // create a new lead in the CRM and assign contact created above as costumer $crm->saveLead(array( 'lead_name' => 'Test lead', 'leadstate_id' => 1, 'leadtype_id' => 1, 'leadsource_id' => 3, 'start' => '2009-11-13 21:00:00', 'description' => 'Added via Tine 2.0 Service', 'container_id' => $crmContainerId, 'relations' => array(array( 'type' => 'CUSTOMER', 'related_record' => $contact )) )); // logout from Tine 2.0 $tine20->logout(); If you execute this piece of code you should have new contact in your addressbook and a new lead in your CRM. If you have any questions feel free to ask in our PHP Backend forum. Thursday, October 29. 2009
Kiels längste Nacht und ich mitten ... Posted by Lars Kneschke
in General at
08:43
Comments (0) Trackbacks (0) Kiels längste Nacht und ich mitten drin...
Ich war mit Sonja und ein paar Bekannten hier aus Mielkendorf auf Kiels längster Nacht
Natürlich mussten die Kieler Nachrichten sofort darüber berichten. (Ja das bin wirklich ich in der Mitte des Fotos!) Thursday, October 29. 2009
Tine 2.0 as OpenID provider Posted by Lars Kneschke
in eGroupWare 2.0, Tine 2.0 at
08:29
Comments (0) Trackbacks (0) Tine 2.0 as OpenID provider
One of our OfficeSpot 2.0 customers was eager to use his OfficeSpot 2.0 installation as OpenID provider. As the Zend Framework already provides all the needed infrastructure, at was very easy to implement this feature. We backported this feature to our last stable release and our customer is happy now.
All users of Tine 2.0 can be happy too! You just need to be brave and check the latest development version from svn. All not so brave people just need to wait until the next milestone release or until the next stable release. Basic documentation can be found in our Wiki at: http://www.tine20.org/wiki/index.php/Admins/OpenID. Saturday, October 17. 2009
Just updated the wiki at Tine20.org Posted by Lars Kneschke
in eGroupWare 2.0, Tine 2.0 at
20:57
Comments (0) Trackbacks (0) Just updated the wiki at Tine20.org
Just updated the wiki at Tine20.org to the latest version of Mediawiki. If you encounter any problems, please leave a message in our forum or my blog.
Thanks! Saturday, October 10. 2009
Nokia Phones can now synchronize ... Posted by Lars Kneschke
in eGroupWare 2.0, Tine 2.0 at
10:21
Comments (2) Trackbacks (0) Nokia Phones can now synchronize photos too
While testing the synchronization of the current Tine 2.0 development version I discovered that Nokia had released a new version of Mail for Exchange. Mail for Exchange is a free of charge ActiveSync client for Nokia mobile phones. Free as in "free beer".
The new version can now finally synchronize photos assigned to your contacts. In the past it was really sad, that I was able to make nice photos with my IPhone, but was unable to synchronize these photos back to my Nokia mobile phone. Now it finally works! Just download the latest version(2.9.158) from http://www.businesssoftware.nokia.com/mail_for_exchange_downloads.php. Monday, August 3. 2009
Access photos on your IPhone 3.0 ... Posted by Lars Kneschke
in Ubuntu at
09:00
Comments (0) Trackbacks (0) Access photos on your IPhone 3.0 with Ubuntu Jaunty
While the IPhone is very nice telephone and has very good ActiveSync support, it lacks basic Linux support at all.
Using Ubuntu Jaunty and having updated the IPhone to it's latest version 3.0, I'm unable to use the IPhone as mp3 player(as I can't upload new music to the IPhone) or digital camera(as I can't download newly made images from the IPhone). This limits to IPhone to just a phone. (K)Ubuntu Jaunty was able to detect the IPhone when plugged into the usb connector, but was unable to download any images. After spending some more time on this issue, I finally found the homepage of libiphone. libiphone is a software library that talks the native Apple USB protocols that the iPhone uses. They provide native packages for Jaunty and it seems like the packages will also be available for Karmic directly from the Ubuntu archives. After following the install instructions from their website for Ubuntu, I'm able to import images directly into Digikam now. I just made a minor change to the udev rules, to make access to the images available also for normal users, as the default configuration makes the usb devices available to root:root only. Just append , GROUP"audio" to any line in /etc/udev/rules.d/89-libiphone.rules, to make the usb devices available to any member of the group audio. After you have changed the file you need to restart hald by running /etc/init.d/hal restart Maybe some day I will be able to also update my music collection on the IPhone, which would make the IPhone the perfect device. Sunday, August 2. 2009
1000 forum members Posted by Lars Kneschke
in eGroupWare 2.0, Tine 2.0 at
11:15
Comments (0) Trackbacks (0) 1000 forum membersFriday, July 3. 2009
New Tine 2.0 team member: Jonas Posted by Lars Kneschke
in eGroupWare 2.0, Tine 2.0 at
10:59
Comments (2) Trackback (1) New Tine 2.0 team member: Jonas
Starting with the new month we have hired another Tine 2.0 fulltime developer. His name is Jonas and he has already very good PHP knowledge.
Jonas first job will be updating Zend Framework to its latest version. We have been to busy in the last view months to keep track of the Zend Framework development. When he has finished the first job, he will start improving the setup process. The setup process still lacks useful unit tests, the eGroupware import needs to get finished and it would be really nice to have the support for Oracle finally done. Much work for our new team member, but I'm sure that he will learn fast! Welcome to the team Jonas! Sunday, June 28. 2009
Synchronisation support for calendar Posted by Lars Kneschke
in eGroupWare 2.0, Tine 2.0 at
09:30
Comments (2) Trackbacks (0) Synchronisation support for calendar
Over the weekend I added the missing parts to make calendar synchronisation over ActiveSync working mostly. So far it works for single events only, participants are not yet handled and some fields are missing too, but for single events it works perfectly. Over the next week we will fix the missing parts and the we will finally be able to have all calendar data on our mobile phones.
For me this is a major step forward, as I now can schedule all my meetings from my mobile phone and get an immediate update about new meetings when I'm not in the office. Really nice if you ask me! If you like to live dangerous, feel free to update from svn and help us testing. If you are scarred about your calendar data, better way until the next beta release. Thursday, June 25. 2009
Tine 2.0 Leonie (2009/07) Beta 1 ... Posted by Lars Kneschke
in eGroupWare 2.0, OpenSource, Tine 2.0 at
16:30
Comments (0) Trackbacks (0) Tine 2.0 Leonie (2009/07) Beta 1 released
We just released the first beta of Tine 2.0 Leonie (2009/07). This release is the first which contains a calendar and an email module.
You can download the packages from http://www.tine20.org/download/. Please provide feedback in our forum, so we make the next stable release as solid as our last stable releases. If nothing strange happens we like to release the final stable release in about 2-3 weeks. Saturday, June 6. 2009
Les Trophées du Libre Posted by Lars Kneschke
in eGroupWare 2.0, Tine 2.0 at
16:33
Comments (0) Trackbacks (0) Les Trophées du Libre
Since Thursday evening I'm in Soission (France) to participate in Les Trophées du Libre. Tine 2.0 got selected as finalist in the professional category. As there have been so many good projects in this category, the organizers decided to select 5 finalists instead of only 3 like in any other category. On Friday we had about 20 minutes to represent our project to the jury. In the evening we had a nice ceremony with many important people from local government and business, where the winners in any category got announced. We did not win in our category, but I'm already very proud that we are one of the finalists. Congratulations to any winners and other finalists.
As with any other event you can always do something better, but I really want to thank all the people who made Les Trophées du Libre possible. We have been drinking champagne every evening, the food was very fine and the people were very kind. Keep up the good and important work. Special thanks to Maxime Mularz from Cetril for being a very nice host and a superior busdriver for a buch of drunken OpenSource software developers. Wednesday, May 13. 2009
ActiveDirectory integration beta ... Posted by Lars Kneschke
in eGroupWare 2.0, Tine 2.0 at
07:53
Comments (0) Trackbacks (0) ActiveDirectory integration beta testers wanted
Again a chance to help us!
I have implemented basic classes to authenticate against ActiveDirectory and read users and groups from ActiveDirectory. Unfortunately we have no ActiveDirectory here at Metaways. We need someone who can provide us access to a Windows computer with PHP/XAMP installed with access to a ActiveDirectory or someone able to run some testscripts against a ActiveDirectory. Just contact me at l.kneschke@metaways.de if you can help. Sunday, April 26. 2009
FeLaMiMail 2.0 Posted by Lars Kneschke
in eGroupWare 2.0, Tine 2.0 at
08:41
Comments (0) Trackbacks (0) FeLaMiMail 2.0
Last week Philipp and me started working on the next version of FeLaMiMail. FeLaMiMail is the internal name of the Tine 2.0 email client.
FeLaMiMail 2.0 will support following features: - multiple IMAP accounts - HTML composing - header caching for quick responses - easy folder management - drag & drop - support for serverside filter (Sieve) - integration with the Tine 2.0 addressbook Based on the infrastructur of FeLaMiMail we will also enable push email over ActiveSync with mobile devices. Wednesday, March 4. 2009
First bugfix release of Tine 2.0 Lara Posted by Lars Kneschke
in eGroupWare 2.0, Tine 2.0 at
06:56
Comments (0) Trackbacks (0) First bugfix release of Tine 2.0 Lara
Thanks to the feedback from our community we were able to create the first bugfix release of Tine 2.0 Lara. You will find the updated packages in our download section.
What got fixed? The synchronisation is now working with the IPhone too. Handling of birthdays got improved, before they could break the synchronisation. One user reported that he was able to synchronise all his ~1300 contacts now. Setup was looking in unneeded directories which broke setup with open basedir restrictions. This now working too. Some translations were missing and got add again. And some other problems I can't remember anymore, because they got fixed by Cornelius and Philipp. Thanks to the community for providing so much useful feedback! It's really a pleasure to work with you! Keep rocking! |
my projectsCalendar
QuicksearchArchivesKategorienBlog abonnierenCornelius WeissHTML 5 Multi + Drag and Drop File Uploads with ExtJS
Donnerstag, März 4. 2010 Ext JS 3.0 Cookbook Review Mittwoch, Januar 20. 2010 Cross Site AJAX Window Name Proxy for extjs/ext-core Mittwoch, Dezember 9. 2009 Blog Administration |
|||||||||||||||||||||||||||||||||||||||||||||||||