• Search:

Top menu



Planet eZ publish




łukasz serwatka  eZ systems employee

› A few words about URL wildcards in eZ Publish 4.0

URL management was enhanced in version 3.10, as new multilingual URL aliases were introduced. From following the ez.no forums a bit, it seems as though some users are having problems with "old virtual URLs" in the new system.

05/02/2008 10:46 pm (UTC)   Łukasz Serwatka   View entry   Digg!  digg it!   del.icio.us  del.icio.us

community news (ez.no)  eZ systems employee

› SHARE! Magazine is out now!

eZ Systems is proud to release SHARE! Magazine, a monthly community newsletter. It features interviews, stories, reviews, and comments in and around the eZ Ecosystem.

05/02/2008 12:30 pm (UTC)   Community news (ez.no)   View entry   Digg!  digg it!   del.icio.us  del.icio.us

damien pobel

› eZ Find, Solr and eZ Publish

I'm working on a professionnal project using eZ Find extension and I must say that I'm very impressed by this extension and even more by Solr . Last october at the developper day , Paul Borgermans told us a lot of good points about Solr. I was a bit skeptical about the technological blend (PHP + Java) but the search webservice provided by Solr is a very clever solution much more efficient and scalable than the Lucene extension with PHP Java bridge module and its memory problems .

For the project, I added custom sorting on content object attributes or meta attributes and indexing of external contents (not in the eZ Publish database). Solr is pretty well documented and it has an impressive number of options and can be use in any project. If you want to integrate Solr in a PHP project, there is a good article in IBM developperWorks about Solr with PHP where you can find a PHP Solr Client .

04/02/2008 1:20 pm (UTC)   Damien Pobel   View entry   Digg!  digg it!   del.icio.us  del.icio.us

zak greant  eZ systems employee

› New Pitches for the Lab with Leo

My work at the Mozilla Foundation is, not surprisingly, focused on advancing the Mozilla Manifesto. After my last Firefox 3 segment on the Lab with Leo Laporte TV show, I started thinking about pitches for new segments that tie in with the manifesto. The rough ideas I’ve so far had are: Deep Customization of Firefox: Make your browser [...]
04/02/2008 12:37 pm (UTC)   Zak Greant   View entry   Digg!  digg it!   del.icio.us  del.icio.us

zak greant  eZ systems employee

› FOSSNUT: The Free and Open Source Software Norwegian University Tour

LinPro AS (a Norwegian Linux and FLOSS services firm) has organized a speaking tour of Norwegian universities. The tour will visit three Norwegian schools and will focus on introducing students and faculty to Free Software and Open Source. Speakers include FreeBSD & Varnish hacker Dag-Erling Smørgrav, eZ Systems AS CEO Aleksander Farstad and yours truly.  The schools we plan to visit [...]
04/02/2008 12:26 pm (UTC)   Zak Greant   View entry   Digg!  digg it!   del.icio.us  del.icio.us

zak greant  eZ systems employee

› Session Abstract: The Age of Literate Machines

I’ve never found this abstract to be terribly engaging. I’ll be rewriting it when I get a moment. Title The Age of Literate Machines Summary Free Software and Open Source are understood to be reshaping technology. What is less understood is how FOSS relates to the future of free societies. During this session, we’ll examine how FOSS relates to [...]
04/02/2008 11:27 am (UTC)   Zak Greant   View entry   Digg!  digg it!   del.icio.us  del.icio.us

zak greant  eZ systems employee

› Session Abstract: Greening the Conference Circuit

Title Greening the Conference Circuit Summary Hackers and makers, inventors and innovators, evangelists and activists, CXOs and entrepreneurs: Each year thousands of us make our rounds on the FOSS conference circuit. Arriving through environment-punishing air travel, we descend into a banality of over-packaged shwag, glossy brochures, disposable cups and hotel stays. We’re a principled, smart and innovative lot [...]
04/02/2008 11:25 am (UTC)   Zak Greant   View entry   Digg!  digg it!   del.icio.us  del.icio.us

damien pobel

› Générer des URL significatives en PHP

Il existe beaucoup de types d'URL possible pour une application web et encore plus de codes pour les générer. Une bonne URL devrait être assez courte mais significative. Par exemple le CMS eZ Publish depuis sa version 3.10 utilise un système assez complexe (en code) mais très souple permettant de produire des URLs selon le format de son choix (avec ou sans majuscule, en conservant ou non les accents, les espaces, choix du séparateur, ...) . Si, on ne trouve pas son bonheur on peut même écrire une extension pour un formatage sur mesure, voir par exemple celle de Damien Pitard sur ez.no optimisant les URLs pour l'indexation de contenu dans Google Actualités .

Quand on écrit une application simple en tout cas, moins générique qu'un CMS comme eZ Publish, on peut faire plus simple. Personnellement, j'aime les URLs de la forme "generer-des-url-en-php", c'est à dire en minuscule sans caractère spécial ni accent avec un tiret comme séparateur, c'est a priori la forme la plus simple et optimisée pour les moteurs de recherche .

Pour produire, une URL de ce type j'utilise une fonctionnalité assez peu connue de la fonction iconv() : la translittération. En gros, iconv() est capable lors de la conversion d'un jeu de caractères à un autre de trouver des équivalences si un caractère ne peut être représenté dans le jeu de caractères cible. Par exemple, si on convertit un é en ASCII, iconv() proposera un e à la place avec l'option TRANSLIT, le symbole € sera lui remplacé par "eur"... C'est d'ailleurs aussi très pratique pour traiter des chaînes de caractères issues de copier coller de traitement de texte comme Word qui insère pas mal de bizarreries.

Le code que j'utilise est le suivant :


class MonApplicationTools
{
    const LOCALE = 'fr_FR.UTF-8';
    const CHARSET = 'UTF-8';
    const SEPARATOR = '-';
 
    static function initLocale( $locale = self::LOCALE )
    {
        setlocale( LC_ALL, $locale );
    }
 
    static function URLize( $str, $fromCharset = self::CHARSET, $separator = self::SEPARATOR )
    {
        $tmp = iconv( $fromCharset, 'ASCII//TRANSLIT', trim( $str ) );
        $pattern = array( '/[^a-z0-9]/',
                            '/' . $separator . $separator . '+/',
                            '/^' . $separator . '/',
                            '/' . $separator . '$/' );
        $replacement = array( $separator, $separator, '', '' );
        return preg_replace( $pattern, $replacement, strtolower( $tmp ) );
    }
}
 
MonApplicationTools::initLocale();
$url1 = MonApplicationTools::URLize( 'Générer des URL en PHP' );
$url2 = MonApplicationTools::URLize( 'Fraude sur des milliards d\'€ à la Société Générale !!' );
echo $url1 . '
'
. $url2; // renvoie // generer-des-url-en-php // fraude-sur-des-milliards-d-eur-a-la-societe-generale ?>

Le seul inconvénient de cette méthode est qu'il faut initialiser la locale utilisée par l'application par une locale existante sur le système et reconnaissant les caractères à transformer, ce qui est rarement le cas par défaut mais peut être très utile par ailleurs si on veut par exemple utiliser des formats de dates normalisés et localisés avec strftime() . L'appel de la méthode initLocale() (qui appelle setlocale() ) réalise ce travail et aura sa place dans un fichier d'intilialisation globale (connexion à la base de données, définition du __autoload, ...) inclus dans tous les scripts. Il faut également prêter attention au fait que sous Windows, les locales ne s'écrivent pas de la même manière , évidemment, c'eut été trop simple sinon !

03/02/2008 2:34 pm (UTC)   Damien Pobel   View entry   Digg!  digg it!   del.icio.us  del.icio.us

maxime thomas

› eZChat

Due to a lot of work, I have neglected my blog even if I've got a lot of ideas and a lot of things I would like to develop. That's why I've called some friends to help me : my colleague and buddy Xavier Gouley helped me in the design and the development of a new extension : eZChat.

The aim of this extension is to provide a chat functionnality to a website designed with eZPublish. This solution is based on the Ajax Chat of the blueimp website.

Our thoughts went on specific points like integration and how easy you can plug this in your current site :

  • The chat users are linked to the ez users.
  • The chat exists as light chatbox or full chatbox.
  • You can manage different channels.
  • You can put it as content or as a system template.
  • The chat is customizable (Color, rights, channels).
  • You can easily mix it with other feature (e.g. Video streaming).

We have opened a project on projects.ez.no and are near to reach a stable version. Xavier is the technical leader on this project and I will collect the needs. Any help or suggestion will be great !

03/02/2008 2:19 pm (UTC)   Maxime Thomas   View entry   Digg!  digg it!   del.icio.us  del.icio.us

zak greant  eZ systems employee

› Session Abstract: Open Innovation and Open Source

I’ve worked up this abstract for a session that I’ll present at Stefan Doeblin’s Leadership by (Open) Innovation in the Telecom, IT and Media Industries - an event to be held in Munich on April 24th, 2008. While at the event, I’ll also be participating in a panel titled, “Beyond Methods, Processes, and Tools: The [...]
02/02/2008 12:11 pm (UTC)   Zak Greant   View entry   Digg!  digg it!   del.icio.us  del.icio.us