Infos

Fil RSSÉquipe Infoglobe

Archives

Flexform et itemsProcFunc

Mehdi Guermazi | CMS/SGC,Développement,Web | Mardi, 21 juin 2011

Ces derniers temps, l’équipe Infoglobe a été assez active sur le blogue. C’est le T3CON à San Francisco qui nous a inspiré tous. Nos articles, bien qu’intéressants, n’étaient pas très techniques. Cependant, notre blogue s’adresse aussi aux programmeurs et aux utilisateurs invétérés de notre SGC favori TYPO3.

C’est la raison pour laquelle j’ai décidé aujourd’hui, de vous parler d’une astuce que j’ai appris il y a de cela quelques mois. Les logiciels libres c’est avant tout un partage de connaissances!

Flexform et itemsProcFunc

Récemment, j’ai dû développer une extension qui liste des enregistrements provenant du DAM (Digital Assets Management). Très simple me diriez-vous? C’est vrai lorsque nous sommes seul à gérer un site. La plupart du temps, les sites web et les intranets que nous développons pour nos clients sont beaucoup plus complexes que ça. Ils impliquent un grand nombre d’intervenants (utilisateurs back-end BE) et un grand nombre de rôles et de permissions (groupes back-end BE). Le choix des enregistrements dans le formulaire back-end créé grâce à un « flexform » dépend donc des permissions accordées à l’utilisateur BE courant et aux groupes auxquels ce dernier appartient.

Supposons par exemple que notre utilisateur BE appartienne à un groupe BE qui a pour « filemount » un dossier bien précis. Il ne faudrait pas dans ce cas, lui afficher des enregistrements du DAM qui ne sont pas inclus dans ce dossier.

Exemple :

Un champ de type select dans un flexform

Un champ de type select dans un flexform

 

<config>
  <type>select</type>
  <foreign_table>table</foreign_table>
  <foreign_table_where>
      AND table.champ_1 = x  AND table.champ_2 = y
      AND table.deleted = 0 AND table.hidden = 0
      ORDER BY table.champ_3 ASC
  </foreign_table_where>
</config>

Dans un flexform, nous pouvons utiliser un « select » avec un « foreign_table » et faire des requêtes simples avec « foreign_table_where » comme dans l’exemple ci-haut. Par contre, la tâche devient plus ardue lorsqu’on arrive au point où il faut jouer dans plusieurs tables de la base de données et chercher dans des relations stockées dans un champ grâce à des indentifiants séparés par des virgules.  Heureusement que TYPO3 est assez flexible pour nous permettre de tout configurer selon nos besoins. Dans le « flexform » nous pouvons utiliser « itemsProcFunc », qui nous permet d’aller chercher les items de notre « select » dans une userfunc.

Dans la classe user_maclass, il suffit d’avoir une fonction addElements qui nous permettra de faire les requêtes les plus complexes possibles. Cette fonction peut recevoir deux variables par référence : &$config et &$ref. La première contient toute la configuration du champ du flexform en question. On pourra alors accéder à la valeur du paramètre « exemple » dans $config['config']['exemple']. Nous pouvons aussi modifier les valeurs dynamiquement, seulement en les attribuant à la variable : $config['items'] = array_merge($config['items'],$optionList);.

Flexform :

 <config>
  <type>select</type>
  <itemsProcFunc>user_maclass->addElement</itemsProcFunc>
  <exemple>valeur</exemple>
</config>

class PHP :

 class user_maclass {        
   function addElement(&$config) {
      $optionList = $this->getList($config);
      if(is_array($optionList)){	    
         $config['items'] = array_merge($config['items'],$optionList);
      }	    
   }
}

Attention – la class class.user_maclass.php doit être incluse par le fichier ext_tables.php de la façon suivante :

include_once(t3lib_extMgm::extPath($_EXTKEY).'class.user_maclass.php');

Pour accéder aux données de l’utilisateur BE courant, nous avons la variable globale $BE_USER.

Exemple :

global $BE_USER;

if(!$BE_USER->isAdmin()){        
   //Récuperer les usergroup de l'utilisateur actuel    
   $ug = $BE_USER->user['usergroup'];    
   $arrug = explode(',',$ug);
}

On pourra toujours affirmer que TYPO3 est difficile à apprendre, du moins, pour les développeurs et non pas pour l’utilisateur final. Mais personne ne peut nier la force et la flexibilité de ce SGC.

Deux nouveaux sites TYPO3

ypavard | CMS/SGC,Québec | Lundi, 25 janvier 2010

Site Web de TYPO3 QuébecJ’ai le plaisir de vous annoncer que nous venons de lancer deux nouveaux sites pour faire la promotion du SGC TYPO3. Si vous suivez un petit peu ce qui se dit sur le blogue, vous aurez sans doute déjà remarqué le succès qu’à TYPO3 au Québec, notamment au gouvernement. Afin de mettre aussi en avant les autres réalisations au Québec, nous avons décidé il y a quelques mois déjà qu’il manquait au Québec, un annuaire pour y lister l’ensemble des sites réalisés pour la province de Québec.

C’est maintenant disponible avec le nouveau site http://www.typo3quebec.ca/ auquel vous êtes invités à participer puisqu’il est possible en remplissant un petit formulaire de proposer vos réalisations. Un script automatique se chargera d’effectuer une capture d’écran de votre page d’accueil et après validation du site (ne serait-ce que pour s’assurer que c’est un site réalisé avec TYPO3), il apparaîtra sur l’annuaire.

Nous avons commencé par ajouter 99 sites, mais il en existe bien plus encore ! Alors soyez le premier à y déposer le 100e site TYPO3. (Lire la suite…)

TYPO3 4.3 : Récupération des enregistrements effacés

ypavard | CMS/SGC | Dimanche, 22 février 2009

Récupération de contenus supprimésLa prochaine version de TYPO3, la version 4.3 a été retardée de deux mois. Nous allons donc attendre jusqu’au 11 avril 2009 (17 mai 2009) pour découvrir tout ce qui s’en vient avec cette nouvelle version ! Elle ne devrait pas être aussi surprenante visuellement que la version 4.2, mais du côté des fonctionnalités, cela risque d’être très intéressant.

Déjà lors de la version alpha1 de TYPO3 4.3, j’avais fait un petit billet que je vous invite à redécouvrir : http://blogue.infoglobe.ca/2008/11/14/typo3-43-en-images/. J’ai attendu avec impatience la version alpha 2, mais il y a encore du retard ! Quoi qu’il en soit, voici ce qu’il est prévu pour cette version (lire le plan de route ici : http://forge.typo3.org/wiki/typo3v4-core/43_roadmap)

  • La fenêtre de reconnection qui s’affiche à chaque déconnexion du backend devrait être remplacé par une technologie à base de Javascript
  • Intégration d’une gestion des opérations sur le système de fichiers par groupe d’utilisateurs
  • Intégration de la librairie ExtJS à TYPO3 (pour la boîte de reconnexion ou l’extension de récupération de données ?)
  • Intégration d’une gestion de tests unitaires pour le noyau de TYPO3

Ainsi qu’une apparition de quelques petites nouveautés :

  • Amélioration de l’édition des contenus via le site (Frontend)
  • Intégration d’une extension de récupération de contenus supprimés
  • Intégration d’un outil permettant de déposer plusieurs fichiers en même temps (en Flash)

Bref, de quoi nous faire baver, sans parler que pour la version beta d’autres choses s’en viennent, comme par exemple de nouvelles chaînes de traduction (TYPO3 bientôt 100% en français ?) (Lire la suite…)

La prochaine version majeure de tt_news ?

ypavard | CMS/SGC | Dimanche, 15 février 2009

Nouveau module pour tt_newsVoilà que j’étais en train d’attendre la version Alpha 2 de TYPO3 4.3 (qui devait sortir aujourd’hui !), que je suis tombé sur quelque chose d’intéressant autour de tt_news. Y’a un an de cela, lors de la T3FRUniversity 2008 qui s’est déroulée en France, on commençait à me parler de la prochaine version de tt_news, la fameuse version 3.0. Depuis un an, rien du tout, aucune nouvelle de côté là. C’est alors que par le plus grand des hasards, que je suis tombé sur une information à ce sujet en lançant une recherche sur le web. Je vais vous partager ici les quelques petites choses que j’ai découvert en attendant qu’une version finale arrive.

Ou trouvez des infos ?

Voici quelques liens qui pourraient vous être utile si vous voulez suivre l’actualité autour de tt_news version 3, trouver de la documentation ou tester cette version

Les éditeurs de texte pour TYPO3 ! (partie 1)

ypavard | CMS/SGC | Jeudi, 12 février 2009

Logo de TinyMCEVous le savez sans doute, TYPO3 à un éditeur de texte (RTE/Wysiwyg) par défaut qui s’appelle « htmlarea », une solution assez bien connue dans le monde des éditeurs opensource, mais qui commence à se faire vieille et qui n’est plus supporté par aucune communauté me semble t’il. Sans doute connaissez-vous mieux FCK Editor (utilisé par Drupal) ou bien TinyMCE (utilisé par WordPress, TWiki …)

Voici une capture de l’éditeur actuel :

Éditeur Htmlarea de TYPO3

Éditeur Htmlarea de TYPO3

Pour ma part, je trouve l’intégration de cet éditeur dans TYPO3, assez bien faite ! Je n’ai pas à me plaindre. Puis depuis qu’il est intégré au noyau de TYPO3, on à de nouvelles options à chaque nouvelle version majeure de TYPO3, alors on a pas se plaindre. Il est même annoncé pour la version 4.3 que l’intégration avec Internet Explorer sera meilleure, de quoi satisfaire tous nos clients chanceux qui utilisent encore Internet Explorer 6 :-)

Sauf que d’autres développeurs travaillent à l’intégration d’un autre éditeur, TinyMCE (ou TinyRTE) et comme une mise à jour récente a été réalisé dans une de ces extensions, je me suis décidé à en tester plusieurs, pour voir ce que ces extensions pouvaient apporter de mieux par rapport au RTE par défaut.

Quoi qu’il en soit, après avoir lu ce qui suit, je pense que vous allez être un peu comme moi, car j’ai vraiment été bluffé par le niveau d’intégration existant avec ces extensions peu connues de ma part. (Lire la suite…)

QuiXplorer ne répond plus !

ypavard | CMS/SGC | Jeudi, 09 octobre 2008

QuiXplorer est un projet open source qui permet de visualiser le contenu d’un répertoire de votre serveur via une interface web. Mais c’est aussi une extension pour le CMS TYPO3 qui sert énormément aux administrateurs d’un site, car on trouve plusieurs options courantes d’édition de fichier, de copier-coller ou de compression zip.

Il se peut que vous rencontreriez un problème un jour avec cette extension dans votre site TYPO3 et qu’une erreur s’affiche, telle que :

Erreur avec QuiXplorer si le répertoire n'existe plus

Erreur avec QuiXplorer si le répertoire n'existe plus

(Lire la suite…)

Framework FORMidable pour TYPO3

pboivin | Développement | Mardi, 07 octobre 2008

Une extension qui fait parler beaucoup d’elle ces temps-ci est l’extension ameos_formidable. Il s’agit d’un API (interface de programmation) qui permet de créer facilement et rapidement des formulaires pour des extensions TYPO3.

Il s’agit probablement en effet de l’extension la plus mature pour le moment pour créer des formulaires frontend. L’extension possède une solide librairie de fonctions pour créer toutes les sortes de contrôles habituelles et plus encore.

(Lire la suite…)

Organiser vos bookmarks et bien plus avec 2 extensions Firefox

ypavard | Logiciels | Dimanche, 07 septembre 2008

En lisant un article dans un magazine consacré à Linux, j’ai découvert une extension Firefox et par se biais une deuxième tout aussi intéressante que je vais vous présenter.

La 1ère se nomme ZOTERO et permet de collecter, annoter, citer différentes sources provenant de page web (texte, image, pdf …). Pour faire court, c’est une extension qui peut vous apporter un plus par rapport à la gestion de vos favoris (bookmark). Enfin c’est comme cela que je la vois et souhaite l’exploiter car je n’ai jamais vraiment trouvé un intérêt à utiliser des favoris tant il devient difficile de s’y retrouver au bout d’un moment. Par contre,  il peut être intéressant de faire la même chose, mais en gardant plus d’informations comme le propose cette extension, à savoir : (Lire la suite…)

Traduction de l’extension tt_news

ypavard | CMS/SGC | Lundi, 09 juin 2008

Drapeau FR / EN

Je me suis lancé cet après midi dans la traduction de la célèbre extension tt_news, sans doute la plus célèbre des extensions du CMS TYPO3. Célèbre parce qu’elle est très flexible et offre énormément de potentiel. Bref, après les éloges, je me demande encore comment se fait il que personne n’est fait la traduction de cette extension avant moi. (Lire la suite…)

Des nouvelles de TYPO3

ypavard | CMS/SGC | Mardi, 29 avril 2008

Logo de TYPO3 4.2 (boîte)3 semaines déjà ! C’est le temps qui s’est écoulé depuis mon dernier billet sur mon blogue. 3 semaines sans pouvoir parler de TYPO3, parce que j’étais vraiment trop occupé ! Ahhahhh

Voici donc les quelques trucs que je voulais partager avec vous sur TYPO3 et compagnie.

Du côté du DAM :

J’avais l’intention, mais là je suis trop dans le rush, de vous faire un petit topo sur le DAM et ce que l’on trouve comme info sur le net. Donc je vous renvoie vers les infos en questions sur le net : (Lire la suite…)