SP:HowTo

De Hegyd Doc.

(Différences entre les versions)
(Comment ajouter un champ a un type de blocObject?)
(How To)
 
(5 versions intermédiaires masquées)
Ligne 3 : Ligne 3 :
= How To =  
= How To =  
-
Cette rubrique est un pense bete réunissant les principales question à paropos de l'application des sites packagés.
+
Cette rubrique est un pense bête réunissant les principales question à propos de l'application des sites packagés.
===  Comment ajouter un type de blocObject? ===
===  Comment ajouter un type de blocObject? ===
-
* enregistrement en base du nouveau type
+
* [[SP:Composant:BlocObject#Base_de_donn.C3.A9es_2|enregistrement en base]] du nouveau type
* enregistrement en base des [[SP:Composant:blocObjectValues|nouveaux type de valeurs]] associées à l'object
* enregistrement en base des [[SP:Composant:blocObjectValues|nouveaux type de valeurs]] associées à l'object
* création de sa classe php associée
* création de sa classe php associée
Ligne 19 : Ligne 19 :
* enregistrement de la clé du champ en base ([[SP:Composant:BlocObject#Propri.C3.A9t.C3.A9s|section de manuel associée]])
* enregistrement de la clé du champ en base ([[SP:Composant:BlocObject#Propri.C3.A9t.C3.A9s|section de manuel associée]])
* modification du template et controleur associé si besoin ([[SP:Composant:BlocObject#Templates_et_controleurs_associ.C3.A9s|section associée]])
* modification du template et controleur associé si besoin ([[SP:Composant:BlocObject#Templates_et_controleurs_associ.C3.A9s|section associée]])
-
 
-
 
==== Exemple ====
==== Exemple ====
Ligne 43 : Ligne 41 :
INSERT INTO valuesBlocObjectKey(keyName) VALUES('hasFax');
INSERT INTO valuesBlocObjectKey(keyName) VALUES('hasFax');
</pre>
</pre>
-
* modification du controleur et du template qui affiche ce type d'objet pour gérer ce nouveau paramètre, ici '''templates/cms/blocObjects/default/contact.php''' et '''controlers/cms/blocObjects/default/contact.php'''.
+
* modification du controleur et du template qui affiche ce type d'objet pour gérer ce nouveau paramètre, ici '''templates/cms/blocObjects/default/contact.php''' et '''controlers/cms/blocObjects/default/contact.php''' en utilisant la syntaxe '''$blocObject->values->hasFax''' pour savoir si l'utilisateur a choisi ou non d'afficher le champ fax dans son formulaire.
* reste a tester et à mettre en production, et c'est parti.
* reste a tester et à mettre en production, et c'est parti.
Ligne 106 : Ligne 104 :
La gestion ds coins arrondis est englobée dans une [[SP:Composant:StyleProperties#La_sp.C3.A9cificit.C3.A9_MasterProperty|masterProperty]] liée au background de blocs. En effet, pour une comptabilité multi navigateurs, c'est une image en background qui génère les arrondis. Cette meme image permet également de gérer le remplissage du background (texture, couleur ou photo). C'est pourquoi la gestion des coins arrondis est associée a la gestion du background d'un élément en général.
La gestion ds coins arrondis est englobée dans une [[SP:Composant:StyleProperties#La_sp.C3.A9cificit.C3.A9_MasterProperty|masterProperty]] liée au background de blocs. En effet, pour une comptabilité multi navigateurs, c'est une image en background qui génère les arrondis. Cette meme image permet également de gérer le remplissage du background (texture, couleur ou photo). C'est pourquoi la gestion des coins arrondis est associée a la gestion du background d'un élément en général.
 +
 +
 +
=== Comment sont gérés les différentes partie sde l'application ===
 +
 +
Chaque partie de l'application est définie dans la classe '''models/Site.php'''. Un pattern permet d'identifier la partie concerné à partir de l'URL.
 +
La page '''www/index.php''' récupère ensuite le type de l'application par le biais de la variable '''$site''', et procède aux traitement / redirections nécessaires, selon la partie appelée.

Version actuelle en date du 22 octobre 2010 à 13:56


Sommaire

[modifier] How To

Cette rubrique est un pense bête réunissant les principales question à propos de l'application des sites packagés.

[modifier] Comment ajouter un type de blocObject?

Pour avoir le détail complet de chaque étape, rendez vous dans la section définition d'un blocObject

[modifier] Comment ajouter un champ a un type de blocObject?

[modifier] Exemple

Je souhaiterais ajouter un nouveau champ qui permettent d'ajouter un champ de formulaire fax dans le type de blocObject "formulaire de contact"

  • ajout du champ permettant d'ajouter l'option de fax dans le formulaire de contact, dans la classe php associée BlocObjectContact:
        'hasFax'=> array(
                        'type'                  => 'radio',
                        'label'                 => 'Fax',
                        'default'               => 0, //pour la modification d'un type de blocObject déja existant, il est obligatoire d'ajouter une valeur par défaut, qui sera appliquée pour les blocObject de ce type déja existant
                        'inline'                => true,
                        'options'               => array(
                                                                1 => 'Oui',
                                                                0 => 'Non'
                                                        )
                        ),
  • ajout du nouveau champ dans la liste des champs autorisé en base, dans la table valuesBlocObjectKey.
INSERT INTO valuesBlocObjectKey(keyName) VALUES('hasFax');
  • modification du controleur et du template qui affiche ce type d'objet pour gérer ce nouveau paramètre, ici templates/cms/blocObjects/default/contact.php et controlers/cms/blocObjects/default/contact.php en utilisant la syntaxe $blocObject->values->hasFax pour savoir si l'utilisateur a choisi ou non d'afficher le champ fax dans son formulaire.
  • reste a tester et à mettre en production, et c'est parti.

[modifier] Comment ajouter une propriété éditable dans la customisation des styles?

  • Se rendre dans le fichier de configuration de style correspondant au conteneur associé à la propriété (voir chapitre sur les conteneurs)
  • Ajouter la propriété ( la configuration de propriétés de style).
  • Tester
  • Mise en production en prenant soin de rafriahcir tous le cache CSS des styles personnalisés (envoyer "y" lors de la demande de rafraichissement de cache lors de la mise en production).

[modifier] Comment modifier une propriété éditable dans la customisation des styles

  • Regarder ou sont définies les propriétés du conteneur dans le fichier de configuration de styles éditables.
  • Se rendre dans la configuration associée au conteneur et modifier la propriété.
  • Tester
  • Mise en production en prenant soin de rafraichir tous le caches CSS des styles personnalisés (envoyer "y" lors de la demande de rafraichissement de cache lors de la mise en production).

ATTENTION: Il faut que les modifications n'entravent pas les styles des sites qui fonctionnaient avec la propriétés avant modification. Par exemple, dans le cas de changement d'unité,il faudra modifier les valeurs de la propriété sur les sites existant afin que l'apparence de leur site ne soit pas modifiée.

[modifier] Comment ajouter un élément éditable dans la customisation des styles?

Vous devez d'abord cibler le path css de l'élément. Pour cela, ajouter une classe bien identifiable à l'élément dans le code HTML. Ensuite suivez le processus de configuration concernant les conteneurs.

[modifier] Exemple

Ajout d'un style permettant de modifier la couleur du texte "Note : tous les champs sont obligatoires." dans les formulaire.

1.check dans la configuration générale si le conteneur permettatn de gérer les styles du formulaire existe: Non 2.création du conteneur dans la configuration générale, en ajtant le sous tableau:

        'formContact' => array(
                'blocId'=>Bloc::TYPE_CONTENT,
                'blocObjectId'=>BlocObject::TYPE_IMAGE_GALLERY,
                'type'=>StyleProperties::TYPE_FONT,
                'targetElements'=> array('.formContact'), //chemin css du path associé au formulaire de contact dans le code HTML
                'label'=>'Formulaire'
                )

dans le tableau $stylePropertiesContainers. 3. On a besoin que de modifier la couleur du texte, on ne va pas faire appel a des conteneurs associés pour former la liste des propriétés éditable pour cet élément. On va créer un fichier formContact.php (meme nom que la clé dans le tableau de config générale) dans le repertoire des configurations conf/styleProperties, qui contiendra la propriété que l'on peut éditer. Voici le contenu:

$styles = array(
        'fontColor' => array (
                'type' => 'colorpicker',
                'label' => 'couleur de la "note"',
                'relatedColorNumber' => null,
                'propertyToChange'=>'color', //on va pouvoir changer la propriété css de l'élement
                'targetElements'=> array('.formRequired')//on affine le chemin css pour ne pas modifier la couleur de fond de tous les texte du bloc formulaire
        )

Si la propriété contient color dans sa clé , alors elle sera considéré comme une propriété agissant sur la couleur (nécessaire pour que les palettes de couleurs agissent dessus).

C'est tout, il ne reste qu'a rafraichir la page de l'éditeur et tester.

[modifier] Comment rajouter l'inclusion d'un fichier JS/CSS?

Il suffit d'ajouter le fichier dans le fichier de configuration du composant d'inclusion.

[modifier] Comment sont gérés les coins arrondis?

La gestion ds coins arrondis est englobée dans une masterProperty liée au background de blocs. En effet, pour une comptabilité multi navigateurs, c'est une image en background qui génère les arrondis. Cette meme image permet également de gérer le remplissage du background (texture, couleur ou photo). C'est pourquoi la gestion des coins arrondis est associée a la gestion du background d'un élément en général.


[modifier] Comment sont gérés les différentes partie sde l'application

Chaque partie de l'application est définie dans la classe models/Site.php. Un pattern permet d'identifier la partie concerné à partir de l'URL. La page www/index.php récupère ensuite le type de l'application par le biais de la variable $site, et procède aux traitement / redirections nécessaires, selon la partie appelée.