Organisation guide

Un article de Typo3 CMS / Documentation Typo3 / Support Typo3.

EXT : Organisation Guide

(tx_organisationguide_jw)

Copyright 2004-2005, Jan Wischnat, <jan(at)wischnat.de>

Ce document est publié sous licence Open Content disponible sur http://www.opencontent.org/opl.shtml

Le contenu de ce document est relatif à TYPO3 -Gnu/GPL CMS/Framework disponible sur www.typo3.com


Sommaire

[modifier] Introduction

A quoi ça sert ?

Cette extension est utile aux compagnies les plus grandes et aux autorités ayant le besoin d'informer des visiteurs concernant des questions comme : 'Qui est en charge de quoi ? Quel services sont offerts ? Ou trouver de l'aide ? Quelle est la structure de l'organisme ? Quels services conviennent à ma situation ? Ou se situe une personne ou un service ?'

Cette extension étend la table fe-users, ajoutant des champs d'assignation de localisations, de tâches, de services, de fonctions et d'organismes pour un utilisateur frontend.

Le Plugin frontend montre aux visiteurs :

  • Une liste des employés / personnes travaillant dans l'organisme et les tâches/services associées.
  • Une liste de toutes les tâches/services et employés associés.
  • Une liste de localisations et tâches/services/organisations associées.
  • Une structure hiérarchique de l'organisme.
  • Qui est en charge de quoi ? (tâches/services).
  • Ou trouver de l'aider (localisations).
  • A quelle organisme un employé appartient-il ?
  • La signification de 23. :-)

Caractéristiques :

  • XHTML 1,0 transitionnel
  • Rendement accessible et sémantiquement correct (voir les choses à faire).
  • Multilingue : Anglais/Allemand
  • Utilisation de Flexforms pour la Configuration Plugin.
  • Fonctionnalité intranet : plus d'information (secrètes) dans la vue intranet.
  • Etend les permissions utilisateurs frontend Typo3 pour les caractéristiques d'édition FE/BE avec simulate_be.

[modifier] Photos d'écran

Backend Champs additionnels pour les utilisateurs frontend :

Image:image29.jpg

Enregistrements dans le module 'List' :

Image:image30.jpg


Frontend

Liste des services offerts : (Notez que le visiteur peux filtrer les résultats de différentes façons. Notez aussi que le panneau d'édition n'est visible que pour un objet. Le panneau d'édition n'apparait que pour les enregistrements appartenant à l'utilisateur frontend étant connecté. Astuce : utilisez simulate_be)

Image:image31.jpg


Liste des organismes :

Image:image32.jpg


Liste des personnes :

(Notez que le panneau d'édition n'est apparent que pour un objet. Le panneau d'édition n'apparait que pour les enregistrements appartenant à l'utilisateur frontend étant connecté.)

Image:image33.jpg

[modifier] Manuel de l'utilisateur

[modifier] Installation de l'extension

Téléchargez et installez l'extension tx_organisationguide_jw en utilisant l'extension manager.

[modifier] Créer une arborescence de page

Créer une structure de page :

Guide d'organisme

  • Services.
  • Personnes.
  • Organismes.
  • Localisations.

- Sur la page 'Guide d'organisme' insérez un élément de contenu 'Menu – Plan du site' : Menu des sous-pages (choisissez celui qui correspond le mieux à vos besoins)

- Créez un élément de contenu Plugin 'Guide d'organisme' sur la page 'Services', placez le starting point à la page 'Guide d'organisme' et au sysfolder contenant vos utilisateurs frontend. Mettez le mode d'affichage sur 'services'.

- Créez un élément de contenu Plugin 'Guide d'organisme' sur la page 'Personnes', placez le point de départ à la page 'Guide d'organisme' et au sysfolder contenant vos utilisateurs frontend. Mettez le mode d'affichage sur 'Personnes'.

- Créez un élément de contenu Plugin 'Guide d'organisme' sur la page 'Organisme', placez le point de départ à la page 'Guide d'organisme' et au sysfolder contenant vos utilisateurs frontend. Mettez le mode d'affichage sur 'Organisme'.

- Créez un élément de contenu Plugin 'Guide d'organisme' sur la page 'Localisations', placez le point de départ à la page 'Guide d'organisme' et au sysfolder contenant vos utilisateurs frontend. Mettez le mode d'affichage sur 'Localisations'.

(Vous pouvez mettre l'ids de page en vue de page simple dans les plugins, vous n'y êtes pas obligés. Voyez le chapitre 'Configuration' ci-dessous, expliquant la mise en page ids pour le site entier dans un template typoscript)

[modifier] Stockage de données

Vous pouvez enregistrer des données sur la page de votre choix et utiliser le point de départ du plugin frontend. Je recommande de placer vos enregistrements comme ci-dessous, que vous puissiez suivre aisément ce manuel.

  • Créez des enregistrements de style services, organismes, localisations, fichiers, situations et fonctions sur la page 'Guide d'organisme'. Pour cela passez par le mode Liste.
  • Créez un sysfolder pour les utilisateurs frontend (si vous n'en avez pas déjà un) et créez quelques utilisateurs frontend. Assignez une ou plusieurs localisations, services et organismes pour les utilisateurs frontend dans le formulaire Backend de l'utilisateur frontend.
  • Placez le Stockage de Données Général (en-tête de page) du sysfolder contenant vos utilisateurs frontend à la page 'Guide d'organisme'. (Cela vous permet d'ajouter de nouveaux enregistrements en utilisant le petit symbole + à côté de la selection de listes du formulaire 'utilisateur frontend')

[modifier] Création de données

  • Services

Les services sont les tâches/services/projets que vos organismes offrent/travaillent dessus. Remplissez tout les champs. Assignez les fichiers, situations et pages relatives en utilisant les boites de sélection. Si vous devez créer un nouveau fichier, situation ou page cliquez sur le symbole +. Astuce : Un service peux aussi être un projet.

  • Organismes

Remplissez tout les champs de texte. Vous pouvez assigner un organisme au dessus de l'organisme actuel en utilisant la boite de sélection. Créez un organisme nommé 'Aucun' que vous puissiez assigner ceci comme l'organisme au dessus des organismes n'ayant aucun supérieur. La hiérarchie de vos organismes sera affichée sur la page contenant le plugin frontend avec le mode d'affichage placé sur organismes. Astuce : Un organisme peux aussi être une équipe.

  • Localisations

Remplissez tout les champs de texte.

  • Fichiers

Remplissez tout les champs de texte.

  • Fonctions

Les fonctions sont utilisées pour décrire la fonction/niveau/grade d'une personne. (CEO, Administrateur, ouvrier à mi-temps etc...) Remplissez tout les champs de texte.

  • Situations

Les situations sont censées regrouper les services de façon que votre visiteur sera plus à même de comprendre. Imaginez que vous offriez des services comme le changement d'huile, changement des bougies et de filtres à air. Une situation appropriée pour regrouper les services pourrait être 'Ma voiture ne fonctionne pas bien'. Remplissez tout les champs de texte.

[modifier] Fonctionnalité Intranet

  • Les enregistrements 'services' et 'utilisateurs frontend' disposent d'une boite à cocher 'Afficher uniquement en Intranet ?'. Les enregistrements 'services' ont aussi un second champ rte (real text editor) 'description interne'.
  • SI vous cochez la boite à cocher 'Mode Intranet' dans le plugin flexform, le plugin affichera le second champ rte et nombres interne (enregistrements 'services') et tout les résultats, y compris ceux ou 'Afficher uniquement en Intranet' sont cochés.
  • C'est une bonne idée d'utiliser l'extension simulate_be et de relier un utilisateur backend à chaque utilisateur frontend. Si vous faites ainsi, vos utilisateurs frontend verront le panneau d'édition des enregistrements assignés à l'utilisateur frontend.

[modifier] Configuration

[modifier] Ajuster le template TypoScript

Insérez un Template d'extension sur la page 'Guide d'organisme' et ajustez l'ids de la page à l'ids correspondant à vos pages avec les plugins respectifs, cela permet d'éviter de régler la page seule pour chaque plugin seul :

plugin.tx_organisationguidejw_pi3 {
  PidItemPerson = xxx //id of the page holding the plugin with displaymode “persons”
  PidItemService = xxx //id of the page holding the plugin with displaymode “services”
  PidItemOrganisation = xxx //id of the page holding the plugin with displaymode “organisations”
  PidItemLocation = xxx //id of the page holding the plugin with displaymode “locations”
  PidItemFile = xxx //id of the page holding the plugin with displaymode “persons”
}

L'Uid de l'enregistrement 'Organisme' indique l'organisme de niveau supérieur sous lequel tout les autres organismes sont affichés, normalement il s'agit de l'organisme appelé 'Aucun'.

plugin.tx_organisationguidejw_pi3 {
#uid of the record “organisation” named none
topLevelOrg = 1 
}

[modifier] Ajuster le template HTML

L'HTML contient tout les formats pour le débit frontend. Si vous devez changer l'HTML, placez s'il vous plait une copie du fichier EXT:organisation_guide_jw/res/templates/template.html (ou EXT: est soit typo3 soit typo3conf) quelque part dans votre dossier fileadmin et indiquez à TYPO3 de l'utiliser avec ce TS :

plugin.tx_organisationguidejw_pi3 {
file.templateFile = fileadmin/template.html 
}

Ne changez aucun fichiers résidant dans l'extension directory car vous perdriez vos modifications en faisant la mise à jour des extensions. Et les mises à jour sont susceptibles de venir. ;-)

[modifier] Reference TS

Propriétés Type de données Description Par Défaut
file.templateFile ressource Fichier template HTML pour tout débit frontend EXT:organisation_guide_jw/res/templates/template.html
file.intLinkImage ressource Images ajoutées à tout les liens EXT:organisation_guide_jw/res/gfx/link_int.gif
listView.results_at_a_time Int+ Quantité de résultats apparaissant dans les listes frontend 10
topLevelOrg Int+ Uid de l'enregistrement 'organismes' indiquant l'organisme de niveau supérieur sous lequel tout les autres organismes sont affichés
_CSS_DEFAULT_STYLE string Alterez cette propriété pour adapter le css à vos besoins. .tx-organisationguidejw-pi3-azForm {}

.tx-organisationguidejw-pi3-searchForm {float:left;}

.tx-organisationguidejw-pi3-azBox { height:50px;border:1px solid #999999;padding:10px; background:#dddddd; float:left; margin-bottom:15px;}

.tx-organisationguidejw-pi3-catBox { height:50px;border:1px solid #999999;padding:10px; background:#dddddd;}

.tx-organisationguidejw-pi3-listrow {margin-top:15px;}

.act {color:#ff0000; font-weight:bold;}

  1. cat, #sit, #az {font-size:xx-small; float:left;}
.small {font-size:50%;}
_DEFAULT_PI_VARS string En utilisant cette propriété vous pouvez -par exemple- établir un filtre par défaut pour les listes frontend. :

Exemple:

plugin.tx_organisationguidejw_pi3._DEFAULT_PI_VARS { az = w

}

[modifier] Problèmes connus

Aucun jusque la mais voyez la liste de choses à faire.

[modifier] Choses à faire

  • Le code Plugin à besoin d'optimisation/commentaires. De même il reste quelques html/inline css dans le code – j'en serais débarrassé bientôt.
  • Enveloppes pas l'intermédiaire de TS comme tt_news.
  • Le formulaire en haut du débit frontend (filtres/recherche) est en hardcode dans le code plugin. Il est nécessaire de l'envelopper/configurer par l'intermédiaire de TS.
  • Tout les champs ne sont pas encore traduits dans le frontend. Cela demande encore du travail.
  • Les en-têtes sont traduits même s'il n'y à pas de données. Cela nécessite une correction.
  • Configuration de Realurl.
  • Les filtres (organisme, a-z, situation) ne fonctionnent correctement que dans les modes d'affichages personnes et services. Cela nécessite une correction pour les autres modes.
  • L'impression de l'affichage hiérarchique des organismes n'est pas encore parfait. J'ai essayé de coder correctement le débit ul/li mais je me suis fait clairement rappeler que je n'étais pas un programmeur. ;-) Puisque je n'ai pas pu dénicher l'ul/li fonctionnant, j'ai utilisé une ul/li simple et fait l'impression par l'intermédiaire de css/margin...

Au prochain snowboardtour un des pros de typo3 devras me montrer comment le faire mieux.

  • Je pense implémenter un bouton dans le flexform du plugin pour laisser les administrateurs décider si les enregistrements de listes (services, personnes) doivents inclurent les relations à d'autres tables car executer les questionnaires sql pour les tables en relation prend du temps... Surtout si l'administrateur lève listView.results_at_a_time ;-)

[modifier] Liste des Modifications

  • 02 Juillet 2005 0.5.0 Premier Upload