sept
2010
Editeur wysiwyg: « elRTE » une alternative à CKeditor
elRTE est un éditeur WYSIWYG Open Source et assez riches en fonctionnalitées construit sur le fameux Framwork jQuery UI.
Il met à votre disposition toutes les fonctions standards d’un éditeur de texte et possède tous les « plus » comme les fonctions « annuler/rétablir », une gestion des tableaux avancés, l’insertion d’élément HTML avec des style personnalisable.
Une démo : http://elrte.org/demo
L’interface est contrôlable directement depuis un fichier CSS et peut donc être très facilement personnalisable.
Cette version 1.0 est très prometteuse. Il possède une fonction « save » qui peut être rattaché à une fonction JavaScript personnalisable.
The interface is controlled via a single CSS file and can be customized pretty easily.
It has a built-in « save » button which can be attached to a JS function that saves the content that is pretty useful for helping users not to lose their content.
Sans oublier que elRTE est conçu pour fonctionner avec un gestionnaire de fichier en ligne elFinder.
Une démo : http://elrte.org/elfinder/demo
Bon dév’
août
2010
Firefox 4 bêta 4
Depuis le 24 aout, Mozilla à mis à disposition des internautes la dernière bêta de Firefox 4, qui intègre nativement Firefox Sync et Panorama (Candy Tab). Enfin une façon innovante et surprenante de gérer ses onglets.

Free download – Téléchargement gratuit
Enjoy!
août
2010
Symfony: gestion de document; lecture/écriture
Un sujet qui m’intéresse énormément, la génération ou la lecture de document tel que des fichier Excel, PDF, etc.
Je vais essayer de lister les méthodes/plugins/codes pour chaque type de document, faite moi part de vos librairies utilisées et je les ajouterai à cette liste.
TCPDF
Une librairie PHP gratuite et OpenSource domine un peu le marché, je parle de TCPDF. Et pour notre bonheur … il en existe une version pour symfony! WAOUUUU.
DOMPDF
Cette librairie nous permet de convertir du code HTML en PDF. Cette librairie est elle aussi gratuite et Open Source, avec une activité assez soutenue.
Le plugin symfony n’est plus à jour depuis la version 1.0 de symfony, mais cette librairie est je pense facilement intégrable.
Excel
PHPExcel
Librairie également OpenSource qui vous permet de lire et écrire relativement facilement dans des fichiers Excel. Le format Excel 2007 est pris en compte.
ExcelReader
Cette librairie se base sur le projet OpenSource PHP Excel Reader et lit seulement les fichiers excel.
Voilà, si vous en avez d’autres, pour d’autres formats ou quoi que ce soit, prévenez moi!
Bon dév’
août
2010
Aide au déploiement d’un projet symfony
Celà fait un moment que j’utilise ce site mais je n’avais jamais pensé à vous le faire partager. Certains ont une check-list pour le déploiement d’une application! Et bien je vous propose cette check-list Online, Agréable, Complète!

Bon dév’
août
2010
Symfony: sfFinder pour lister les modules d’une application
Imaginer vouloir lister dynamiquement les modules présents dans votre application. Mais pourquoi?
Par exemple pour faire un menu dynamique à votre backend et ainsi éviter de retoucher au layout sans cesse!
Je reprend la technique de funstaff.ch avec la class sfFinder disponible sous symfony.
Quelques liens:
- L’API officiel de la classe sfFinder
- L’API avec un design simpliste de la classe sfFinder
- Le code source de la classe sfFinder
La classe sfFinder
C’est (comme son nom l’indique) une classe qui permet de faire des recherches!!! WAOUUUU mais encore? Elle permet de faire des recherches sur des fichiers ou/et des répertoires.
Comment manipuler cette classe ?
// On crée l'objet sfFinder en spécifiant le type de la recherche
// soit des fichiers (file), soit des répertoires (dir) ou tous (any)
$finder = sfFinder::type('file');
// On peut préciser des filtres
$finder->name('*.php');
// Et enfin lancer la recherche avec in($dir_de_recherche)
$files = $finder->in('/home/prod/mon_projet');
// Cette méthode retourne un array de fchier
// Exemple de traitement de la réponse:
foreach ($files as $file) {
$handle = fopen($file, "r");
...
}
Je reviendrai sur cette classe peut-être dans un post dédié à elle. Mais là le but est toujours de lister les modules d’une application!
Lister les modules d’une application
$modules = sfFinder::type('directory')
->relative()
->maxdepth(0)
->in(sfConfig::get('sf_app_module_dir'));
Je traduis:
- On recherche des répertoires
- On veut que le résultat de la méthode in() à la place de retourner par défaut un chemin absolu, nous retourne un tableau de chemin relatif (c’est à dire relatif au chemin du script courant ou vous êtes!)
- On ne rentre dans aucun des dossiers trouvés
- On lance la recherche dans le répertoire des modules de symfony
Voici l’architecture d’une application symfony:
|VOTRE APPLICATION (frontend, backend, etc…)
|–config
|–lib
|–module (le dossier que l’on parcours pendant la recherche)
|—-module1 (on ne rentre pas dans module1,2 etc…)
|—-module2
|—-etc…
|–templates
En retournant les chemins relatifs et non absolu, et étant placé dans le dossier /module/, le tableau de fichier renverra simplement le nom des modules
Bon dév’
août
2010
Symfony: Changer le layout via un filtre (ou filter)
Le but est de pouvoir modifier dynamiquement le layout depuis un filtre.
Imaginons vous créez un plugin qui possède un layout et vous voulez l’appliquer à tous le backend par exemple. Vous allez créer un fichier /VotrePlugin/web/layout.php.
Vous allez ensuite créer un filtre qui va configurer un nouveau layout avant de lancer l’action et la vue correspondant à la requête dans le dossier /VotrePlugin/lib/.
class VotreFilter extends sfFilter {
public function execute($filterChain) {
$layout = sfConfig::get('sf_web_dir') . '\VotrePlugin\layout'; // sans le PHP, il le rajoute tous seul!
$this->getContext()->getActionStack()->getFirstEntry()->getActionInstance()->setLayout($layout);
$filterChain->execute(); // continu le déroulement du MVC de symfony
}
}
Et voila, il vous suffit d’activer le filtre dans le fichier de configuration de l’application /APPS/config/filter.yml comme ci-dessous:
[yml]
rendering: ~
security: ~
# insert your own filters here
unNom:
class: VotreFilter
cache: ~
execution: ~
[/yml]
août
2010
sfTaskExtraPlugin ou l’amélioration du système de tâches
Ce fameux plugin sfTaskExtraPlugin est maintenu par la team de dev de symfony. Il permet d’améliorer le système de tâches (ou tasks) initialement inclut dans symfony.
Voici une liste des fonctions ajouter:
Doctrine
doctrine:build-app-filters: Builds form filter classes in the application lib directorydoctrine:build-app-forms: Builds form classes in the application lib directory
Generator
generate:controller: Generates a new front controller in the web directorygenerate:plugin: Generates a new plugingenerate:plugin-module: Generates a new module in a plugingenerate:test: Generates a new unit test stub script
Plugin
plugin:package: Create a plugin PEAR package
Propel
propel:build-app-filters: Builds form filter classes in the application lib directorypropel:build-app-forms: Builds form classes in the application lib directory
Subversion
subversion:set-props: Sets typical Subversion properties
Test
test:plugin: Launches a plugin test suite
août
2010
Astuces pour accélérer Firefox
Ce sujet est très largement abordé sur la toile, mais je trouve que les autres posts manque tous simplement de synthétisation!
Les modifications
Ouvret Firefox, puis taper dans la barre d’adresse: about:config
Une fois sur cette page utiliser le « filtre » avec la chaine suivante : « network.http.«
Puis modifier les valeurs suivante :
- network.http.max-connections : mettez 40
- network.http.max-connections-per-server : mettez 8.
- network.http.pipelining : mettez à true.
- network.http.pipelining.maxrequests : mettez 32.
- network.http.proxy.pipelining : mettez à true.
- network.http.max-persistent-connections-per-proxy : mettez 16.
- network.http.max-persistent-connections-per-server : mettez 16.
- Créez une nouvelle « valeur booléenne » nommée config.trim_on_minimize et attribuez la valeur « true« .
Ces valeurs permettent d’augmenter la rapidité de la façons suivantes:
- Plus de connections simultanées
- Utilisation de connections déjà créée au lieu d’en créer de nouvelles.
Changer la valeur du « filtre » avec: « ui.submenuDelay« .
- Changer cette valeur à 0
Une erreur ?!
J’ai créé une valeur en plus, mais je ne me souviens pas laquelle! Malin…Il n’y a que la réinstallation de FireFox.
Si vous vous rappelez de la valeur que vous avez créée/modifié, utiliser le filtre et puis le menu contextuelle du clic droit pour réinitialiser cette valeur.
août
2010
Comment Démarrer, Arrêter et redémarrer Apache 2 Web Server
Apache 2 Web Server
Alors nous allons voir comment démarrer, arrêter et redémarrer, le serveur internet apache2 sous un environnement DEBIAN/Ubuntu LINUX ou bien UNIX.
Alors d’abord, on se connect en ssh au serveur:
$ ssh root@votre.serveur.com
Comment démarrer Apache2:
$ /etc/init.d/apache2 start
ou pour ubuntu :
$ sudo /etc/init.d/apache2 start
Comment arrêter Apache2:
$ /etc/init.d/apache2 stop
ou pour ubuntu :
$ sudo /etc/init.d/apache2 stop
Comment redémarrer Apache2:
$ /etc/init.d/apache2 restart
ou pour ubuntu :
$ sudo /etc/init.d/apache2 restart
août
2010
Fichier ProjectConfiguration.php de base!
<?php
require_once dirname(__FILE__).'/../lib/vendor/symfony/lib/autoload/sfCoreAutoload.class.php';
sfCoreAutoload::register();
class ProjectConfiguration extends sfProjectConfiguration {
}
?>
Souscrire aux commentaires de cet article