17/10/2011

Permalink 19:00:00, Catégories: Web, CRM, Sugar CRM, 93 mots   French (FR) , tzilliox

Installer SugarCRM sous Ubuntu

Voici les quelques commandes à exécuter pour installer SugarCRM sous un Ubuntu.
La procédure utilise les versions Ubuntu 11.10 et SugarCRM 6.2 .

# Télécharger SugarCRM Community Edition 6.2
cd /tmp
wget http://www.sugarforge.org/frs/download.php/8507/SugarCE-6.2.3.zip
cd /var/www
unzip /tmp/SugarCE-6.2.3.zip
mv SugarCE-Full-6.2.3 mon_projet

# Mettre les bons droits
sudo chown -R www-data: mon_projet
sudo chmod -R 775 mon_projet

Ensuite il faut aller, via son navigateur, sur l'url http://localhost/mon_projet/install.php
Et suivre les instructions.

En espérant que ça puisse vous aider,
Thomas.

Vous devez être identifié pour poster un commentaire.

Permalink 17:23:15, Catégories: Web, CRM, Sugar CRM, 134 mots   French (FR) , tzilliox

Erreur sur le déploiement de package dans SugarCRM

Lors de mes premiers tests avec SugarCRM, j'ai essayé de déployer un Package créé avec Module Builder sans lui associer de module.
Sans surprises ça ne fonctionne pas. Seulement les traces ne sont pas très explicites !

Voici les erreurs que l'on va rencontrer :

  • Au déploiement, une popup dit "An error has occured during deploy process, your package may not have installed correctly"
  • Au déploiement, les los disent "PHP Warning: dir(/[...]/icons): failed to open dir: No such file or directory in /[...]/dir_inc.php on line 52"
  • On peut quand même essayer de le charger avec Module Loader : "Failed to copy /[...]/themes"

Donc si vous rencontrez ces erreurs, il s'agit sûrement d'un module cassé ou mal associé au votre Package.

En espérant que ça puisse vous aider,
Thomas.

Vous devez être identifié pour poster un commentaire.

15/10/2011

Permalink 12:00:00, Catégories: Linux, 194 mots   French (FR) , tzilliox

Créer ses propres commandes shell

Sous Linux, vous pouvez créer vos propres commandes shell.
Ceci est un petit tutoriel pour savoir comment faire.

Le but de ce tutoriel sera de recréer la commande pour connaître à quel groupe appartient un utilisateur.
Habituellement, pour trouver dans quels groupes est un utilisateur Linux, il faut exécuter la commande suivante :
groups username



Pour définir notre nouvelle commande shell il faut ajouter le code ci-dessous au fichier ~/.bash_aliases :

# WHICHGROUP
# Définir une méthode whichgroup
function whichgroup {
  # Afficher l'usage s'il n'y a pas assez d'arguments
  if [ $# -eq 0 ]
  then
    echo "usage: whichgroup username";
  # Implémentation de la fonction s'il y a le bon nombre d'arguments
  else
    cat /etc/group | grep -E "(:|;|,)$1" | cut -f1 -d':';
  fi;
}
# Déclarer la fonction whichgroup en tant qu'alias de commande
alias whichgroup=whichgroup $1



La commande shell whichgroup username sera alors disponible au prochain démarrage.
Si vous ne voulez pas attendre, vous pouvez la charger en exécutant la commande suivante :

source ~/.bash_aliases



En espérant que ça puisse vous aider,
Thomas.

Vous devez être identifié pour poster un commentaire.

14/10/2011

Permalink 12:00:00, Catégories: Web, CRM, Sugar CRM, 174 mots   French (FR) , tzilliox

Bien démarrer avec SugarCRM

Voici quelques liens qui peuvent être utiles pour bien démarrer avec Sugar CRM :

Installer SugarCRM :

Créer son premier module SugarCRM :

Les Forums en français SugarCRM :

Ressources officielles :

Schéma UML :

Ce billet est un billet vivant. Il sera donc complété au fur et à mesure de mes découvertes.
N'hésitez pas à m'envoyer vos liens préférés !

En espérant que ça puisse vous être utile,
Thomas.

Vous devez être identifié pour poster un commentaire.

22/08/2011

Permalink 21:00:00, Catégories: Web, CMS, eZ Publish, JavaScript, Bookmarklet, 356 mots   French (FR) , tzilliox

Bookmarklet de mise en forme des traces de debug sous eZ Publish

Sous eZ Publish, on peut afficher des traces de debug directement en front-office.
Dans cet article je vous présente un petit Bookmarklet que j'ai fait pour améliorer leur rendu.

  • Pour installer ce Bookmarklet, faîtes glisser ce lien dans votre barre de favoris : eZ Filter Debug
  • Pour activer ce Bookmarklet, cliquez dessus lorsque vous êtes sur une page générée par eZ Publish avec les traces de debug activée
  • Vous pouvez lire cette article, si vous voulez en savoir plus sur comment faire un Bookmarklet



Le Bookmarklet "eZ Filter Debug" se résume en 3 fonctionnalités qui peuvent vous intéresser :



1. Chargement de la feuille de style debug.css

Pour mettre en forme les traces de debug, il faut charger la feuille de style debug.css.
Mais on n'a pas forcément envie de la charger tout le temps, surtout en production.
C'était l'idée de départ : ce Bookmarklet charge à la volée la feuille de style de Debug.



2. Afficher les traces de debug à la demande

La deuxième idée est de pouvoir cacher les traces de debug par défaut.
Pour cela, il suffit de rajouter dans votre feuille CSS la ligne suivante :
#debug {display: none;}

Lorsque vous activerez le Bookmarklet, les traces de Debug s'afficheront, et vous serez redirigé vers elles.

Ceci n'est pas forcément utile, car eZ Publish vous permet déjà de n'afficher les traces de Debug que pour une certaine liste d'IP.
Mais ça peut être pratique dans certains cas : IP dynamique, client interne, site mobile, etc.



3. Permettre de filtrer les traces de debug

Les traces de Debug affichent également les traces de Notice, Timing, Warning et Error.
Pas toujours facile de s'y retrouver en un coup d’oeil.
Du coup le Bookmarklet "eZ Filter Debug" vous propose également une option de filtrage :

Illustration du filtrage des traces de debug sous eZ Publish



Note 1 : ce Bookmarklet a été testé sous eZ Publish 4.3 - 4.5.
Note 2 : Le code du Bookmarklet est diponible sur GitHub.
N'hésitez pas en me faire des remarques, soit par commentaire, soit par le formulaire de contact de mon site.

En espérant que ça puisse vous être utile,
Thomas.

Vous devez être identifié pour poster un commentaire.

18/08/2011

Permalink 21:00:00, Catégories: Web, CMS, eZ Publish, Traduction, 153 mots   French (FR) , tzilliox

Traduction avec paramètres sous eZ Publish

Une petite astuce pour les traductions sous eZ Publish, on peut utiliser des paramètres.
Par exemple, on est pas obligé de couper la traduction de "Plus que 3 exemplaires." si la valeur 3 est dynamique.

Vous pouvez utiliser dans votre template le code ci-dessous :
{"Only %quantity left in stock."|i18n('shop', , hash('%quantity', $product.stock))}

Et utiliser dans votre fichier de traduction, le code ci-dessous :
<!DOCTYPE TS>
<TS>
<context>
    <name>shop</name>
    <message>
        <source>Only %quantity left in stock.</source>
        <translation>Plus que %quantity exemplaires.</translation>
    </message>
</context>
</TS>

En espérant que ça puisse vous aider,
Thomas.

Vous devez être identifié pour poster un commentaire.

16/08/2011

Permalink 21:00:00, Catégories: Web, CMS, eZ Publish, Modules et vues, 168 mots   French (FR) , tzilliox

Récupérer les view parameters dans une vue

Dans une template "classique", on a accès à la variable $view_parameters.
Celle-ci contient les valeurs des paramètres personnalisés passés dans l'url.
Par exemple pour l'url suivante :
http://www.example.com/my/url/alias/(couleur)/vert/(prix)/34
On pourra accéder aux paramètres "couleur" et "prix" à l'aide de la variable $view_parameters :
La couleur est : {$view_parameters.couleur}
Le prix est : {$view_parameters.prix}



Par contre, vous n'avez pas accès à $view_parameters dans une vue d'un module.
Mais on peut quand même les récupérer à l'aide du code suivant :

$uri = eZURI::instance( eZSys::requestURI() );
$viewParameters = $uri->UserParameters();

On peut ensuite facilement les passer à une template :
// Récupérer les view_parameters
$uri = eZURI::instance( eZSys::requestURI() );
$viewParameters = $uri->UserParameters();

// Instancier la template
$tpl = templateInit();
$tpl->setVariable( 'view_parameters', $viewParameters );

// Renvoyer le résultat de la vue
$Result = array();
$Result['content'] = $tpl->fetch( "design:<ma/template.tpl>" );

En espérant que ça puisse vous aider,
Thomas.

Vous devez être identifié pour poster un commentaire.

30/07/2011

Permalink 16:00:00, Catégories: Linux, 229 mots   French (FR) , tzilliox

Les substring en shell

On peut manipuler très facilement les chaînes de caractères en shell.
Il est par exemple très simple de faire un substring !



1. Couper une chaîne sur une distance donnée
Nous avons une chaîne "aaa-bbb-ccc" et nous voulons récupérer la sous-chaîne "a-bbb-c".
Cette sous-chaîne commence à l'index 2. C'est le 3e caractères et le premier index est 0.
La longueur de la sous-chaîne sera de 7 caractères.
$ string="aaa-bbb-ccc"
$ echo ${string}
aaa-bbb-ccc
$ echo ${string:2:7}
a-bbb-c



2. Couper la chaîne avant un caractère donné
Nous avons une chaîne "aaa-bbb-ccc" et nous voulons récupérer les sous-chaînes de :

  • tout ce qu'il y a avant la première occurrence du caractère "-", soit "aaa"
  • tout ce qu'il y a avant la dernière occurrence du caractère "-", soit "aaa-bbb"

$ string="aaa-bbb-ccc"
$ echo ${string%%-*}
aaa
$ echo ${string%-*}
aaa-bbb



3. Couper la chaîne après un caractère donné
Nous avons une chaîne "aaa-bbb-ccc" et nous voulons récupérer les sous-chaînes de :

  • tout ce qu'il y a après la première occurrence du caractère "-", soit "bbb-ccc"
  • tout ce qu'il y a après la dernière occurrence du caractère "-", soit "ccc"

$ string="aaa-bbb-ccc"
$ echo ${string#*-}
bbb-ccc
$ echo ${string##*-}
ccc



En espérant que ça puisse vous aider,
Thomas.

Vous devez être identifié pour poster un commentaire.

29/07/2011

Permalink 20:00:00, Catégories: Web, CMS, eZ Publish, Base de données, 182 mots   French (FR) , tzilliox

Problèmes après avoir supprimé un user eZ Publish

Pour les versions d'eZ Publish inférieur à 4.4.1, il fallait éviter de supprimer un utilisateur eZ Publish.
Même supprimé, tous les contenus qu'il a publié lui font encore référence.
Ceci pose quelques problèmes dans le Back Office d'eZ Publish. Par exemple, l'interface n'arrive plus à lister les sous-éléments.
C'est pour cela qu'il valait mieux désactiver un utilisateur que le supprimer.

Si c'est trop tard et qu'il est supprimé, comme ça m'est arrivé, on peut réparer sa BDD.
On peut le faire à la main, il suffit de réassocier tous les contenus crées par des utilisateurs supprimés.

Voici les requêtes SQL à exécuter :
UPDATE ezcontentobject SET owner_id=14 WHERE owner_id NOT IN
    (SELECT contentobject_id FROM ezuser); 
UPDATE ezcontentobject_version SET creator_id=14 WHERE creator_id NOT IN
    (SELECT contentobject_id FROM ezuser);

Ici, 14 représente l'id de votre utilisateur admin.

En espérant que ça puisse vous aider,
Thomas.

Edit: Merci à Damien POBEL pour m'avoir montré que le bug était désormais corrigé.

Vous devez être identifié pour poster un commentaire.

28/07/2011

Permalink 20:00:00, Catégories: Web, CMS, eZ Publish, Traduction, 448 mots   French (FR) , tzilliox

Le français comme langue de référence sur un site multilingue eZ Publish

eZ Publish dispose d'un moteur i18n ou d'internationalisation.



1. Presentation
On peut l'utiliser dans les templates à l'aide de l'opérateur i18n() :
{$string|i18n($context)}
{'The results'|i18n('search')}

Dans le ficher translations/fre-FR/translation.ts, on peut lui indiquer les valeurs en français :
<!DOCTYPE TS>
<TS>
<context>
    <name>search</name>
    <message>
        <source>The results</source>
        <translation>Les résultats</translation>
    </message>
</context>
</TS>



2. Utiliser des sources en français
Dans le sens anglais > français, il n'y a pas de soucis.
Sauf qu'on est pas tous bilingue, donc ça peut être plus pertinent de prendre le français comme référence.

Le problème est que le moteur i18n ne va pas utiliser le fichier de traduction translations/eng-GB/translation.ts.
Il doit sûrement supposer que la langue de référence est forcément l'anglais.
La petite astuce est d'utiliser la langue eng-GB@euro.
Donc de mettre ses traducitons dans le fichier translations/eng-GB@euro/translation.ts.



3. Encodage
Un dernier problème, le moteur ne gère pas naturellement les caractères accentués en tant que source.
Alors que bizarrement, il n'y avait pas de problème d'encodage pour les traductions dans le sens anglais > français.

Pour que ce code-là fonctionne dans votre template :
{'Les résultats'|i18n('search')}

Il vous faudra encoder les accents dans votre fichier de traduction translations/eng-GB@euro/translation.ts :
<!DOCTYPE TS>
<TS>
<context>
    <name>search</name>
    <message>
        <source>Les r&#xE9;sultats</source>
        <translation>The results</translation>
    </message>
</context>
</TS>

Dans ce fichier, &#xE9; représente le caractère é.
E9 est la valeur numériques hexadécimal du caractère.
Pour connaître les valeurs hexadécimale, il faut utiliser un convertisseur de caractères.



Conclusion
Si tous les membres de votre équipe sont à l'aise avec l'anglais, il vaut mieux garder l'anglais en tant que langue de référence.
Vous garderez des fichiers de traductions plus lisible et maintenable.

En espérant que ça puisse vous aider,
Thomas.

Vous devez être identifié pour poster un commentaire.

27/07/2011

Permalink 19:00:00, Catégories: Web, JavaScript, Bookmarklet, 463 mots   French (FR) , tzilliox

JavaScript et Bookmarklet

Hier, on a codé un petit script pour entourer toutes les images d'une page.
Aujourd'hui on va s'amuser à le transformer en Bookmarklet, ou applisignet en québecois.



1. Qu'est-ce qu'un Bookmarklet
Un Bookmarklet est un Bookmark, ou favoris, qui contient un script JavaScript à exécuter.
Un Bookmarklet est simple à reconnaître, son URL commence toujours par javascript:.
Au chargement de l'URL, la navigateur exécute le JavaScript sans changer de page.

Par exemple, essayez de copier-coller la ligne suivante dans la barre d'adresse de votre navigateur :
javascript:alert('\103\145\143\151\40\145\163\164\40\165\156\40\102\157\157\153\155\141\162\153\154\145\164');

» Lire la suite!

Vous devez être identifié pour poster un commentaire.

26/07/2011

Permalink 19:00:00, Catégories: Web, JavaScript, 1206 mots   French (FR) , tzilliox

JavaScript et les iframes

Voici un petit tutoriel JS.
Le but est de voir comment exécuter du JavaScript à l'intérieur des iframes.
On va essayer de coder un script qui entoure toutes les images de la page.



1. Première version du script :

// On récupère toutes les images du document
var imgs = document.getElementsByTagName('img');
if (imgs != null) {

    // Pour chaque image
    for (var i=0; i<imgs.length; i++) {

        // On applique une bordure rouge
        imgs[i].style.border = "5px red solid";
    }
}

» Lire la suite!

Vous devez être identifié pour poster un commentaire.

« Page Précédente 1 2 3 Page suivante »

Liste des blogs

Blog de Thomas ZILLIOX

Rechercher

<  Octobre 2011  >
Lun Mar Mer Jeu Ven Sam Dim
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31  

Syndiquez ce blog XML

Articles :

Commentaires :

 
 
 
 
Partenaires

Hébergement Web