Keyword - symfonians

Fil des billets - Fil des commentaires

lundi 24 mars 2008

Le code de Symfonians en open source

Tout est dans le titre, je viens de mettre en place une instance Trac/SVN dédiée au projet, le code est libéré et publié sous licence CC-BY-SA 3.0.

Je pense que la publication du code source de l'application est essentiellement utile dans le cadre d'un apprentissage de Symfony, le code étant tout de même très orienté métier.

Edit : Rapido, un petit screencast d'installation de Symfonians à partir des sources depuis subversion :

Télécharger le screencast (QuickTime MOV, ~88 Mo)

vendredi 14 mars 2008

Symfonians en VF

Je viens de mettre en ligne la version française de Symfonians[1]. J'ai préféré utiliser un sous-domaine pour définir la langue courante plutôt qu'un paramètre supplémentaire dans la requête, car le routing de Symfony implique de le gérer pour chacune des route (ou si y'a une astuce, je suis preneur.)

Ici, je détecte le sous domaine et en fait la langue courante de l'utilisateur au moyen d'un filtre. Pour ceux que ça intéresse, en voici le code :

<?php
class i18nSubdomainFilter extends sfFilter
{
  public function execute($filterChain)
  {
    if ($this->isFirstCall())
    {
      $context = $this->getContext();
      $request = $context->getRequest();
      $host_parts = explode('.', $request->getHost());
      if (count($host_parts) > 2) // We have at least a subdomain
      {
        $subdomain = strtolower($host_parts[0]);
        $enabled_cultures = sfConfig::get('app_cultures_enabled', array());
        if (array_key_exists($subdomain, $enabled_cultures))
        {
          sfConfig::set('sf_current_culture', $subdomain);
          $context->getResponse()->addMeta('language', $subdomain, true);
          $context->getUser()->setCulture($subdomain);
        }
      }
    }
    $filterChain->execute();
  }
}

Notez que je définis la liste des langues disponibles dans le fichier app.yml, pour éviter les blagues et gérer les domaines pour chacun des environnements que j'ai configuré[2] :

prod:
  cultures:
    enabled:
      en:    http://symfonians.net/
      fr:    http://fr.symfonians.net/

L'activation du filtre se fait dans le fichier filters.yml :

i18nSubdomain:
  class:    i18nSubdomainFilter

Et roule ma poule, mon routing reste strictement intact :-)

Notes

[1] 690 chaînes à traduire en deux heures, doit sans doûte rester du débris :p

[2] J'ai dautre part une action qui me permet de rediriger l'utilisateur vers la version traduite de la page courante, mais je vous fais grâce du code.

jeudi 24 janvier 2008

Symfonians, three days after launch

Looks like people seems to appreciate the service provided by Symfonians.net. At least, they use it ! Here's some stats, three days after the site has been launched :

I've just added some more cumulative filtering features on people, applications and jobs lists, so now you can :

  • filter people available for hire, from a given country
  • filter applications from a given country, filter only opensource ones [3]
  • filter job offers proposed by a company, in a country and eventually accepting teleworking [4]

I've also slighly microformatted some detailled views like company and person pages, using hCard.

By the way, I want to mention that if your cocain is Django, you might use the DjangoPeople service, very nicely done and proven useful. Makes me think I must push on some geolocalization features on Symfonians... Stay tuned.

Edit: We got (roughly alpha) maps.

Notes

[1] Too bad I had some mail blacklist problem :/ Stay tuned for a blog post on this issue.

[2] I had two, one of them is about the fact I play the guitar :D

[3] Four opensource applications on five are french \o/

[4] Play, say Hi!

dimanche 20 janvier 2008

The Symfonians Project

It's been a long time that I and some people I know were looking after a place on the web to publish a Symfony developer profile, post a job offer, share contacts and/or project opportunities. There's been some initiatives here and here, but nothing has really convinced me so far. So I've decided to write something on my own.

The name of the project is Symfonians. It's available in a beta state and only in english language for now.

There must exist a lot of bugs, so feel free to report them if you use the service :)

Ah, last but not least, I imagine that the site won't display nice on IE6 (maybe on IE7 too), but for now I don't care as I don't have much time to loose on this kind of fascinating CSS hacking challenges :p