الخميس، 29 سبتمبر 2011
Accès aux données :
Contrôle ActiveX Data Control (Adodc) :
Projet/Composant/Microsoft ADO Data
Control 6.0 (OLEDB) (msadodc.ocx)
Il permet de manipuler des bases de
données de divers formats : Access,
Oracle, Sql server, etc ..
Étapes de connexion à un base de données Access :
Ajouter les composantes ADODC et DATAGRID à
la boite à outils
Créer l’interface graphique pour la gestion de la
base de données
Ajouter ADODC à l’interface graphique
Établissement de la connexion entre l’interface et
la base données
1er Etape :
Ajouter les composantes ADODC et
DATAGRID à la boite a outils
1. Microsoft ADO Data Control 6.0 (OLEDB)
2. Microsoft DataGrid Control 6.0 (OLEDB)
2éme Étape: Création de l’interface :
Créer une Base de données contenant une table Employe
Sous Access avec les champs suivants:
Code : de type texte La 1ère lettre soit A (Agents) ou C (Cadres) ou S
(cadres supérieurs) suivie du numéro de l’employé
Nom : de type texte
Prénom : de type texte
Salaire : de type monétaire
3éme Étape: Ajouter ADODC :
4éme Étape: Établissement de la connexion :
Commençons d’abord par quelque propriétés de l’ADODC
Name : Nom de l’objet Adodc.
Caption : Le texte qui s’affiche sur le contrôle.
ConnectionString : fournisseur et le nom de la base de
données
CommandType : type de connexion (table, requête etc)
Recordsource : Source du jeu d'enregistrements
adCommandText = SQL ou autre commande 'syntaxe',
adCommandTable = nom de table
Établissement de la connexion :
Projet/Composant/Microsoft ADO Data
Control 6.0 (OLEDB) (msadodc.ocx)
Il permet de manipuler des bases de
données de divers formats : Access,
Oracle, Sql server, etc ..
Étapes de connexion à un base de données Access :
Ajouter les composantes ADODC et DATAGRID à
la boite à outils
Créer l’interface graphique pour la gestion de la
base de données
Ajouter ADODC à l’interface graphique
Établissement de la connexion entre l’interface et
la base données
1er Etape :
Ajouter les composantes ADODC et
DATAGRID à la boite a outils
1. Microsoft ADO Data Control 6.0 (OLEDB)
2. Microsoft DataGrid Control 6.0 (OLEDB)
2éme Étape: Création de l’interface :
Créer une Base de données contenant une table Employe
Sous Access avec les champs suivants:
Code : de type texte La 1ère lettre soit A (Agents) ou C (Cadres) ou S
(cadres supérieurs) suivie du numéro de l’employé
Nom : de type texte
Prénom : de type texte
Salaire : de type monétaire
3éme Étape: Ajouter ADODC :
4éme Étape: Établissement de la connexion :
Commençons d’abord par quelque propriétés de l’ADODC
Name : Nom de l’objet Adodc.
Caption : Le texte qui s’affiche sur le contrôle.
ConnectionString : fournisseur et le nom de la base de
données
CommandType : type de connexion (table, requête etc)
Recordsource : Source du jeu d'enregistrements
adCommandText = SQL ou autre commande 'syntaxe',
adCommandTable = nom de table
Établissement de la connexion :
Présentation des Base de Données
Gestion et consultation de données
Exemples : Répertoire d’adresses, références
bibliographiques, catalogue de pièces, …
Vocabulaire : les données
sont rangées dans des fichiers
sont structurées en enregistrements
Constituées de champs
Dans une Base de données, les informations sont
réparties dans des tables
Table : est le support physique de l’information
Champ : la colonne qui contient les données
Les lignes d’une table sont appelées des
enregistrements (Records)
Exemples : Répertoire d’adresses, références
bibliographiques, catalogue de pièces, …
Vocabulaire : les données
sont rangées dans des fichiers
sont structurées en enregistrements
Constituées de champs
Dans une Base de données, les informations sont
réparties dans des tables
Table : est le support physique de l’information
Champ : la colonne qui contient les données
Les lignes d’une table sont appelées des
enregistrements (Records)
Contrôle Timer - VB
Timer est un contrôle graphiquement invisible
sur la fenêtre (form), qui va générer des
événements à une fréquence choisie par le
programmeur (déclenchement de la procédure
NomTimer_Timer().
La propriété essentielle d'un Timer est :
Interval : intervalle entre chaque exécution du code,
dans la procédure NomTimer_Timer() exprimé en
millisecondes.
Exemple d’utilisation:
Jeux
sur la fenêtre (form), qui va générer des
événements à une fréquence choisie par le
programmeur (déclenchement de la procédure
NomTimer_Timer().
La propriété essentielle d'un Timer est :
Interval : intervalle entre chaque exécution du code,
dans la procédure NomTimer_Timer() exprimé en
millisecondes.
Exemple d’utilisation:
Jeux
الثلاثاء، 27 سبتمبر 2011
Les Listes - VB
VB fournit deux contrôles de liste :
* La liste : ListBox (Non modifiable)
* une liste : contrôle ComboBox (Modifiable)
* Propriétés indispensables :
* ListIndex : Renvoie ou définit l’indice de l’élément sélectionné (si aucun
élément n'est sélectionné dans la liste, la propriété ListIndex vaut -1).
Les indices commencent par 0.
* List : Savoir quel est l’indice de l’élément sélectionné dans la liste
* ListCount : Qui renvoie le nombre d’éléments d’une liste
* Multiselect :qui permet la sélection multiple (booléenne) pour les
ListBox
* Sorted : Trie automatiquement les éléments de la liste (booléenne)
* AddItem Chaîne : Ajoute Chaîne à la liste.
* RemoveItem (indice) : Supprime de la liste l'élément d'indice spécifié.
* Clear : Efface tous les éléments de la liste
EXEMPLE :
indiceElement = List1.ListIndex
Extraire l’indice de l’ élément choisi dans la liste List1
textElement = List1.List(indiceElement )
Extraire le texte de l’élément choisi dans liste List1
List1.AddItem textElement
Ajouter le texte à la liste List1
List1.RemoveItem indiceElement
Effacer l’élément d’indice indiceElement
List1.Clear
Effacer touts les éléments de la liste List1
* La liste : ListBox (Non modifiable)
* une liste : contrôle ComboBox (Modifiable)
* Propriétés indispensables :
* ListIndex : Renvoie ou définit l’indice de l’élément sélectionné (si aucun
élément n'est sélectionné dans la liste, la propriété ListIndex vaut -1).
Les indices commencent par 0.
* List : Savoir quel est l’indice de l’élément sélectionné dans la liste
* ListCount : Qui renvoie le nombre d’éléments d’une liste
* Multiselect :qui permet la sélection multiple (booléenne) pour les
ListBox
* Sorted : Trie automatiquement les éléments de la liste (booléenne)
* AddItem Chaîne : Ajoute Chaîne à la liste.
* RemoveItem (indice) : Supprime de la liste l'élément d'indice spécifié.
* Clear : Efface tous les éléments de la liste
EXEMPLE :
indiceElement = List1.ListIndex
Extraire l’indice de l’ élément choisi dans la liste List1
textElement = List1.List(indiceElement )
Extraire le texte de l’élément choisi dans liste List1
List1.AddItem textElement
Ajouter le texte à la liste List1
List1.RemoveItem indiceElement
Effacer l’élément d’indice indiceElement
List1.Clear
Effacer touts les éléments de la liste List1
Procédure KeyPress -VB
Cette procédure s’exécute lors de tape sur le clavier
Private Sub Text1_KeyPress(KeyAscii As Integer)
End Sub
KeyAscii est le code ASCII du caracétre tapé
Les codes ASCII:
* Aucune touche --> KeyAscii =0
* 0 -->9 : 48--> 57
* A-->Z : 65-->90
*a--> z : 97 -->122
* Efface Arrière --> 8
EXEMPLE :
Private Sub Text1_KeyPress(KeyAscii As Integer)
Text2.Text = KeyAscii
End Sub
Private Sub Text1_KeyPress(KeyAscii As Integer)
End Sub
KeyAscii est le code ASCII du caracétre tapé
Les codes ASCII:
* Aucune touche --> KeyAscii =0
* 0 -->9 : 48--> 57
* A-->Z : 65-->90
*a--> z : 97 -->122
* Efface Arrière --> 8
EXEMPLE :
Private Sub Text1_KeyPress(KeyAscii As Integer)
Text2.Text = KeyAscii
End Sub
Fonction utiles - VB
Traitement des chaînes:
Mid (chaîne, nombre1, nombre2) : renvoie une chaîne,
extraite de chaîne, commençant au caractère numéro
nombre1 et nombre2 c’est le nombre des caractères
extraits.
Len (chaîne) : renvoie le nombre de caractères de
Nomdechaîne
LTrim (chaîne) : renvoie la chaîne chaine, débarrassée de
tous les espaces se trouvant à gauche..
Rtrim (chaîne) : renvoie la chaîne chaîne, débarrassée de
tous les espaces se trouvant à droite.
Trim (chaîne) : renvoie la chaîne chaîne, débarrassée de
tous les espaces se trouvant à droite et à gauche.
Ucase (chaîne) : renvoie la chaîne chaîne en majuscule
Lcase (chaîne) : renvoie la chaîne chaîne en minuscule
Fonctions numériques :
Int (nombre) : renvoie la partie entière de nombre
Rnd () : renvoie un nombre pseudo-aléatoire compris
entre [0,1[. Pour que Rnd () ne renvoie pas le même
nombre, précéder de l’instruction Randomize
Val (Chaîne) : renvoie un nombre si Chaîne est
composée de chiffres
Str (Nombre) : renvoie Nombre sous forme de chiffres
(c'est-à-dire de caractères)
Strcomp (Ch1,Ch2) comparaison de deux chaînes de
caractères (-1 si ch1 se situe avant ch2, 1 si l’inverse et
0 si ls deux chaînes sont égaux.
sélectionnés.
SelStart : détermine le point de départ du texte
sélectionné.
SelText : détermine la chaîne contenant le texte
actuellement sélectionné ; se compose d'une
chaîne vide ("") si aucun caractère n'est
actuellement sélectionné.
MultiLine : la zone de texte accepte plusieurs
lignes
Scrollbars: ajouter des bars de défilement
(horizontale ou verticale)
Mid (chaîne, nombre1, nombre2) : renvoie une chaîne,
extraite de chaîne, commençant au caractère numéro
nombre1 et nombre2 c’est le nombre des caractères
extraits.
Len (chaîne) : renvoie le nombre de caractères de
Nomdechaîne
LTrim (chaîne) : renvoie la chaîne chaine, débarrassée de
tous les espaces se trouvant à gauche..
Rtrim (chaîne) : renvoie la chaîne chaîne, débarrassée de
tous les espaces se trouvant à droite.
Trim (chaîne) : renvoie la chaîne chaîne, débarrassée de
tous les espaces se trouvant à droite et à gauche.
Ucase (chaîne) : renvoie la chaîne chaîne en majuscule
Lcase (chaîne) : renvoie la chaîne chaîne en minuscule
Fonctions numériques :
Int (nombre) : renvoie la partie entière de nombre
Rnd () : renvoie un nombre pseudo-aléatoire compris
entre [0,1[. Pour que Rnd () ne renvoie pas le même
nombre, précéder de l’instruction Randomize
Val (Chaîne) : renvoie un nombre si Chaîne est
composée de chiffres
Str (Nombre) : renvoie Nombre sous forme de chiffres
(c'est-à-dire de caractères)
Strcomp (Ch1,Ch2) comparaison de deux chaînes de
caractères (-1 si ch1 se situe avant ch2, 1 si l’inverse et
0 si ls deux chaînes sont égaux.
Propriétés utiles :
SelLength : détermine le nombre de caractèressélectionnés.
SelStart : détermine le point de départ du texte
sélectionné.
SelText : détermine la chaîne contenant le texte
actuellement sélectionné ; se compose d'une
chaîne vide ("") si aucun caractère n'est
actuellement sélectionné.
MultiLine : la zone de texte accepte plusieurs
lignes
Scrollbars: ajouter des bars de défilement
(horizontale ou verticale)
Création de Menu En VB
Pour créer un menu dans une feuille on
utilise l'éditeur de menu dans
Tools --> Menu editor.
L'éditeur ouvre une fenêtre dans laquelle
on crée le menu qu'on veut voir affiché
dans la feuille
On utilise les flèches, le bouton Insérer et
le bouton suivant pour créer la cascade
d'items dans le menu.
Exemple :
Création des Menus:
Fichier
Nouveau
Ouvrir
Quitter
Edition
Copier
Coller
utilise l'éditeur de menu dans
Tools --> Menu editor.
L'éditeur ouvre une fenêtre dans laquelle
on crée le menu qu'on veut voir affiché
dans la feuille
On utilise les flèches, le bouton Insérer et
le bouton suivant pour créer la cascade
d'items dans le menu.
Exemple :
Création des Menus:
Fichier
Nouveau
Ouvrir
Quitter
Edition
Copier
Coller
LANGAGE VISUEL BASIC (5)
Les cases: CheckBox et OptionButton
Il existe sous Windows deux sortes de cases :
les cases dites "cases à cocher" (Checkbox): Elles sont
carrées, et indépendantes les unes des autres, même si
elles sont regroupées dans un cadre.
Les cases dites "cases d’option" ou "boutons radio"
(OptionButton). Elles sont rondes et font toujours partie
d’un ensemble (dessiné par l’objet Frame). Au sein d’un
ensemble de cases d’option, jamais plus d’une seule case ne
peut être cochée à la fois.
l'état de la case à cocher :0 désactivé, 1 activé, 2 état
intermédiaire
l'état du bouton radio :true coché ou false non coché
Si vous voulez créer un groupe de boutons radio, il faut
nommer tout les OptionButton avec le même nom(la
propriété Name, Exemple listeOptions). VB crée
automatiquement un index pour chaque OptionButton(la
propriété Index,par l’indice de début est : 0). Dans ce cas
On aura un tableau des OptionButton.
Pour faire un traitement sur le groupe des OptionButton ,
on pourra écrire une boucle, par exemple pour décocher
tout les boutons radio :
For i = 0 to 1
listeOptions(i).Value = 0
Next I
Il existe sous Windows deux sortes de cases :
les cases dites "cases à cocher" (Checkbox): Elles sont
carrées, et indépendantes les unes des autres, même si
elles sont regroupées dans un cadre.
Les cases dites "cases d’option" ou "boutons radio"
(OptionButton). Elles sont rondes et font toujours partie
d’un ensemble (dessiné par l’objet Frame). Au sein d’un
ensemble de cases d’option, jamais plus d’une seule case ne
peut être cochée à la fois.
l'état de la case à cocher :0 désactivé, 1 activé, 2 état
intermédiaire
l'état du bouton radio :true coché ou false non coché
Si vous voulez créer un groupe de boutons radio, il faut
nommer tout les OptionButton avec le même nom(la
propriété Name, Exemple listeOptions). VB crée
automatiquement un index pour chaque OptionButton(la
propriété Index,par l’indice de début est : 0). Dans ce cas
On aura un tableau des OptionButton.
Pour faire un traitement sur le groupe des OptionButton ,
on pourra écrire une boucle, par exemple pour décocher
tout les boutons radio :
For i = 0 to 1
listeOptions(i).Value = 0
Next I
الأحد، 25 سبتمبر 2011
LANGAGE VISUEL BASIC (4)
LES BOUCLES :
Permet de répéter une séquence un nombre de
fois déterminé.
Déclaration:
For compteur = Debut To Fin [Step Pas]
[instructions]
Next compteur
Par défaut le Pas = 1
EXEMPLE :
Dim i As Integer
For i = 8 To 125
'Exécute la boucle pour i variant de 8 à 125
Next i
Dim i As Integer
For i = 1 To 18 Step 2
MsgBox(i.ToString)
Next i
BOUCLE : DO ->WHILE ;
Il ya deux façons différentes pour la
déclaration la boucle Do While:
Do While Condition
[Instructions]
Loop
La condition est testée au début
Do
[Instructions]
Loop While Condition
La condition est testée à la fin de la boucle
EXEMPLE :
Dim i As Integer=8
Do While i < 18
MsgBox(i.ToString)
Loop
Dim i As Integer
i=1
Do
MsgBox(i.ToString)
Loop While i<18
BOUCLE : DO UNITILE :
Il ya deux façons différentes pour la
déclaration la boucle Do until:
Do until Condition
Instructions
Loop
La condition est testée au début
Do
Instructions
Loop until Condition
La condition est testée à la fin de la boucle
LES TABLEAUX :
Déclaration d’un tableau/matrice
Dim NomTab(borneInf to BorneSup) As Type
Dim NomMatrice(lignes, colonnes) As Type
Exemple:
Dim tableau(1 to 10) As String
Dim matrice (1 , 5) As Integer
LES CÔNTROLES :
DriveListBox, DirListBox et FileListBox :
DriveListBox: permet de parcourir les lecteurs
valides de votre système. La propriété Drive
retourne le disque choisi.
DirListBox: permet de naviguer parmi les
dossiers d' un lecteur particulier. La propriété
Path contient la liste des dossiers dans le disque
choisi.
FileListBox permet de sélectionner un fichier
spécifique dans un dossier. La propriété Path
contient la liste des fichiers, et FileName
contient le nom de fichier choisi.
EXEMPLE : AFFICHEUR D'IMAGE :
MsgBox
Les MsgBox sont très utilisée dans Visual Basic,elles permettent
de poser une question à l' utilisateur au travers d' une boîte de
dialogue.
La syntaxe de l' instruction MsgBox est la suivante :
Variable = MsgBox("Message", Type, "Titre de la fenêtre")
La fonction MsgBox comporte donc trois arguments essentiels,
qui sont respectivement :
Variable : Variable de type Entier(Integer) recevant la valeur du
bouton.
Message : Message dans la boîte de dialogue.
Type : Le style des boutons et de l’icône éventuelle à faire figurer sur
le Message
Titre : Le texte de la barre de titre.
Les constantes pour les boutons :
Les constantes pour les icônes :
Les constantes renvoyées par MsgBox :
EXEMPLE DE MSGBOX :
Dim Sup
Sup =
MsgBox("Veuillez confirmer la suppression du fichier",
vbCritical + vbYesNo + 256, "Attention")
If Sup = vbYes Then
Sup = MsgBox("Suppression confirmée", vbOKOnly,
"Suppression ...")
End If
Permet de répéter une séquence un nombre de
fois déterminé.
Déclaration:
For compteur = Debut To Fin [Step Pas]
[instructions]
Next compteur
Par défaut le Pas = 1
EXEMPLE :
Dim i As Integer
For i = 8 To 125
'Exécute la boucle pour i variant de 8 à 125
Next i
Dim i As Integer
For i = 1 To 18 Step 2
MsgBox(i.ToString)
Next i
BOUCLE : DO ->WHILE ;
Il ya deux façons différentes pour la
déclaration la boucle Do While:
Do While Condition
[Instructions]
Loop
La condition est testée au début
Do
[Instructions]
Loop While Condition
La condition est testée à la fin de la boucle
EXEMPLE :
Dim i As Integer=8
Do While i < 18
MsgBox(i.ToString)
Loop
Dim i As Integer
i=1
Do
MsgBox(i.ToString)
Loop While i<18
BOUCLE : DO UNITILE :
Il ya deux façons différentes pour la
déclaration la boucle Do until:
Do until Condition
Instructions
Loop
La condition est testée au début
Do
Instructions
Loop until Condition
La condition est testée à la fin de la boucle
LES TABLEAUX :
Déclaration d’un tableau/matrice
Dim NomTab(borneInf to BorneSup) As Type
Dim NomMatrice(lignes, colonnes) As Type
Exemple:
Dim tableau(1 to 10) As String
Dim matrice (1 , 5) As Integer
LES CÔNTROLES :
DriveListBox, DirListBox et FileListBox :
DriveListBox: permet de parcourir les lecteurs
valides de votre système. La propriété Drive
retourne le disque choisi.
DirListBox: permet de naviguer parmi les
dossiers d' un lecteur particulier. La propriété
Path contient la liste des dossiers dans le disque
choisi.
FileListBox permet de sélectionner un fichier
spécifique dans un dossier. La propriété Path
contient la liste des fichiers, et FileName
contient le nom de fichier choisi.
EXEMPLE : AFFICHEUR D'IMAGE :
MsgBox
Les MsgBox sont très utilisée dans Visual Basic,elles permettent
de poser une question à l' utilisateur au travers d' une boîte de
dialogue.
La syntaxe de l' instruction MsgBox est la suivante :
Variable = MsgBox("Message", Type, "Titre de la fenêtre")
La fonction MsgBox comporte donc trois arguments essentiels,
qui sont respectivement :
Variable : Variable de type Entier(Integer) recevant la valeur du
bouton.
Message : Message dans la boîte de dialogue.
Type : Le style des boutons et de l’icône éventuelle à faire figurer sur
le Message
Titre : Le texte de la barre de titre.
Les constantes pour les boutons :
Les constantes pour les icônes :
Les constantes renvoyées par MsgBox :
EXEMPLE DE MSGBOX :
Dim Sup
Sup =
MsgBox("Veuillez confirmer la suppression du fichier",
vbCritical + vbYesNo + 256, "Attention")
If Sup = vbYes Then
Sup = MsgBox("Suppression confirmée", vbOKOnly,
"Suppression ...")
End If
LANGAGE VISUEL BASIC (3)
OPERATEUR DE CONCATENATION :
L'opérateur & permet de réunir à la suite
des chaînes de caractères
Si on l'utilise avec une chaîne et un
nombre, le nombre est automatiquement
converti en chaîne
Exemple:
Str1 = nomEtudiant & " " & noteFinale
OPERATEUR LOGIQUE :
And, Or, Not, Xor (ou exclusif)
Condition composée :
une expression composée de conditions simples reliés
par des opérateurs logiques.
Priorité des opérateurs
Not > And > Or
Exemple:
(prix_vente > 120) Or (prix_achat<100)
LES STRICTURE DE CONTROLE :
Permet de créer une structure décisionnelle:
If Condition Then
Instructions
End If
If Condition Then
Instructions
Else
Instructions
End if
If Condition1 Then
instructions 1
ElseIf Condition1 Then
instructions 2
Else
instructions 3
End If
1. Condition simple
2. Condition avec 2 possibilité
3. Condition avec 3 possibilité
NB: On peut combiner autant des conditions qu’on veut
Écrire un programme qui permet de lire la moyenne et
décider la mention :
Moyen >= 16 : Très Bien
14 <= Moyen < 16 : Bien
12 <= Moyen < 14 : Assez Bien
10 <= Moyen < 12 : Passable
Moyen < 10 : Non Valide
Select Case Expression
Case Listevaleurs1
[Instructions]
Case Listevaleurs2
[Instructions]
Case Else
[Instructions]
End Select
Listevaleurs peut être :
Une suite de valeurs : 1, 3,5,7
Une fourchette : 0 To 9
Une plage : Is>=10
L'opérateur & permet de réunir à la suite
des chaînes de caractères
Si on l'utilise avec une chaîne et un
nombre, le nombre est automatiquement
converti en chaîne
Exemple:
Str1 = nomEtudiant & " " & noteFinale
OPERATEUR LOGIQUE :
And, Or, Not, Xor (ou exclusif)
Condition composée :
une expression composée de conditions simples reliés
par des opérateurs logiques.
Priorité des opérateurs
Not > And > Or
Exemple:
(prix_vente > 120) Or (prix_achat<100)
LES STRICTURE DE CONTROLE :
Permet de créer une structure décisionnelle:
If Condition Then
Instructions
End If
If Condition Then
Instructions
Else
Instructions
End if
If Condition1 Then
instructions 1
ElseIf Condition1 Then
instructions 2
Else
instructions 3
End If
1. Condition simple
2. Condition avec 2 possibilité
3. Condition avec 3 possibilité
NB: On peut combiner autant des conditions qu’on veut
Écrire un programme qui permet de lire la moyenne et
décider la mention :
Moyen >= 16 : Très Bien
14 <= Moyen < 16 : Bien
12 <= Moyen < 14 : Assez Bien
10 <= Moyen < 12 : Passable
Moyen < 10 : Non Valide
Select Case Expression
Case Listevaleurs1
[Instructions]
Case Listevaleurs2
[Instructions]
Case Else
[Instructions]
End Select
Listevaleurs peut être :
Une suite de valeurs : 1, 3,5,7
Une fourchette : 0 To 9
Une plage : Is>=10
LANGAGE VISUEL BASIC (2)
LES OPERATEUR ARITHMETIQUES :
+ : addition classique
- : soustraction
* : multiplication
/ : diviser deux nombres et renvoie un nombre à
virgule flottante
\ : Diviser deux nombres et renvoie un nombre entier
^ : Permet d'élever un nombre à une puissance.
Mod : Permet de diviser deux nombres en ne
renvoyant que le reste
OPERATEUR COMPARAISON :
< : inférieur à
<= : inférieur ou égal à
> : supérieur à
>= : supérieur ou égal à
= : égal à
<> : différent de
Exemple: prix_vente > 120
Peut être évalué à vrai (True) ou à faux (False)
selon que la valeur de la variable prix_vente est
supérieure à 120
+ : addition classique
- : soustraction
* : multiplication
/ : diviser deux nombres et renvoie un nombre à
virgule flottante
\ : Diviser deux nombres et renvoie un nombre entier
^ : Permet d'élever un nombre à une puissance.
Mod : Permet de diviser deux nombres en ne
renvoyant que le reste
OPERATEUR COMPARAISON :
< : inférieur à
<= : inférieur ou égal à
> : supérieur à
>= : supérieur ou égal à
= : égal à
<> : différent de
Exemple: prix_vente > 120
Peut être évalué à vrai (True) ou à faux (False)
selon que la valeur de la variable prix_vente est
supérieure à 120
LANGAGE VISUEL BASIC (1)
LES VARIABLES :
Déclaration d’une variable:
* Dim nom_variable AS type
Types
Boolean: true ou false
Integer : nombre entier (4 octets)
Long : nombre entier (8 octets)
Single : décimaux en simple précision (4 octets )
Double : décimaux en double précision (8octets )
String : variable
Date : pour les dates (8 octets)
*Exemples:
Dim var1 As Integer ‘une commentaire ici
Dim nom As String="toto" ‘une autre commentaire
Dim valider As Boolean = true
LES VARIABLE DE CONVERSION :
*EXEMPLE :
Dim Pi As Double = 2.569
Dim x As Integer = 1125
Dim pi_Entier As Integer = CInt(Pi)
Dim x_caractere As String = CStr(a)
LES CONSTANTES :
Déclaration d’un constante:
Const nom_contante As Type =valeur
Le contenu ne peut pas être modifier
Exemple
Const PI As Double =3.14 ‘utilise le point pour indiquer
‘la virgule
Const messageErreur As String="Erreur"
LES TYPES DES OPERATEUR :
Opérateurs arithmétiques :
Opérateurs permettant d'effectuer des calculs
mathématiques.
Opérateurs de comparaison :
Opérateurs permettant d'effectuer des comparaisons.
Opérateurs de concaténation :
Opérateurs permettant de combiner des chaînes.
Opérateurs logiques :
Opérateurs permettant d'effectuer des opérations
logiques
Déclaration d’une variable:
* Dim nom_variable AS type
Types
Boolean: true ou false
Integer : nombre entier (4 octets)
Long : nombre entier (8 octets)
Single : décimaux en simple précision (4 octets )
Double : décimaux en double précision (8octets )
String : variable
Date : pour les dates (8 octets)
*Exemples:
Dim var1 As Integer ‘une commentaire ici
Dim nom As String="toto" ‘une autre commentaire
Dim valider As Boolean = true
LES VARIABLE DE CONVERSION :
*EXEMPLE :
Dim Pi As Double = 2.569
Dim x As Integer = 1125
Dim pi_Entier As Integer = CInt(Pi)
Dim x_caractere As String = CStr(a)
LES CONSTANTES :
Déclaration d’un constante:
Const nom_contante As Type =valeur
Le contenu ne peut pas être modifier
Exemple
Const PI As Double =3.14 ‘utilise le point pour indiquer
‘la virgule
Const messageErreur As String="Erreur"
LES TYPES DES OPERATEUR :
Opérateurs arithmétiques :
Opérateurs permettant d'effectuer des calculs
mathématiques.
Opérateurs de comparaison :
Opérateurs permettant d'effectuer des comparaisons.
Opérateurs de concaténation :
Opérateurs permettant de combiner des chaînes.
Opérateurs logiques :
Opérateurs permettant d'effectuer des opérations
logiques
Visual Basic
Introduction :
Visual Basic c’est un langage:* de programmation orientée Objet.
* de programmation événementielle
* de programmation visuelle
CLASS / OBJECT :
En concevant un programme VB, un jeu de
classes est construit:
Lorsque le programme s’ exécute, des objets sont
crées à partir des classes:
Les classes englobent toutes les caractéristiques d’un
objet
Chaque objet crée à partir de la même classe aura
des aspects semblables
La classe permette de créer des objets
NB: un objet est une instance d’une classe
ACCEE AUX ATTRIBUTS / FONCTIONS :
Accès aux attribut :
Nom_objet.nom_attribut
Accès aux fonctions:
Nom_objet.nom_fonction(liste des arguments)
Dim pers1 As New Personne
pers1.age=32
pers1.calculSalaire(IGR)
PROGRAMATION EVENEMENTIEL
L’exécution ne suit pas un ordre prédéfini contrairement
à la programmation traditionnelle (ex: C , Pascal…etc)
L’exécution du programme suit les même ordre
d’écriture des instructions:
La procédure événementielle porte le nom du contrôle
associé au nom de l’événement:
Button1_Click() : appel de cette procédure lors du clic
sur le contrôle Button1
Form1_load() : appel de cette procédure lors du
chargement du formulaire 1
CREEATION D'UNE APPLICATION VB6
La création d’un application se faite en
deux grandes étapes:
Conception et création de l’interface graphique
(GUI: graphic user interface)
Écriture de code pouvant réagir aux actions
effectuées à partir de l’interface utilisateur
APPLICATION : HELLO VB :
Créez une interface avec :
Un bouton de commande
Une zone de texte
Affichez dans la zone de texte un message de
bienvenue lors du click sur le bouton
Enregistrez le projet
Testez votre application
الجمعة، 23 سبتمبر 2011
Différents type de jointures (naturelles, équi, non equi, auto, externes, hétérogènes, croisée et union)
Lorsque nous étudions le modèle relationnel de notre base de données exemple nous avons vu que le modèle physique des données, répercute les clefs des tables maîtres en tant que clefs étrangères des tables pour lesquelles une jointure est nécessaire. En utilisant la jointure entre clefs primaires et clefs secondaires basée sur l'égalité des valeurs des colonnes nous exécutons ce que les professionnels du SQL appelle une jointure naturelle.
Il est aussi possible de faire des équi-jointures qui ne sont pas naturelles, soit par accident (une erreur !), soit par nécessité.
Il est aussi possible de faire des non équi-jointures, c'est-à-dire des jointures basée sur un critère différent de l'égalité, mais aussi des auto-jointures, c'est-à-dire de joindre la table sur elle-même. Le cas le plus délicat à comprendre est celui des jointures externes, c'est-à-dire exiger que le résultat comprenne toutes les lignes des tables (ou d'au moins une des tables de la jointure), même s'il n'y a pas correspondance des lignes entre les différentes tables mise en oeuvre dans la jointure.
La jointure d'union consiste à ajouter toutes les données des deux tables à condition qu'elles soient compatibles dans leurs structures.
La jointure croisée permet de faire le produit cartésien des tables.
Enfin on peut effectuer des requêtes hétérogènes, c'est-à-dire de joindre une table d'une base de données, à une ou plusieurs autres base de données éventuellement même sur des serveurs différents, voire même sur des serveurs de différents types (par exemple joindre une table T_CLIENT de la base BD_COMMANDE d'un serveur Oracle à la table T_PROSPECT de la base BD_COMMERCIAL d'un serveur Sybase !).
Il est aussi possible de faire des équi-jointures qui ne sont pas naturelles, soit par accident (une erreur !), soit par nécessité.
Il est aussi possible de faire des non équi-jointures, c'est-à-dire des jointures basée sur un critère différent de l'égalité, mais aussi des auto-jointures, c'est-à-dire de joindre la table sur elle-même. Le cas le plus délicat à comprendre est celui des jointures externes, c'est-à-dire exiger que le résultat comprenne toutes les lignes des tables (ou d'au moins une des tables de la jointure), même s'il n'y a pas correspondance des lignes entre les différentes tables mise en oeuvre dans la jointure.
La jointure d'union consiste à ajouter toutes les données des deux tables à condition qu'elles soient compatibles dans leurs structures.
La jointure croisée permet de faire le produit cartésien des tables.
Enfin on peut effectuer des requêtes hétérogènes, c'est-à-dire de joindre une table d'une base de données, à une ou plusieurs autres base de données éventuellement même sur des serveurs différents, voire même sur des serveurs de différents types (par exemple joindre une table T_CLIENT de la base BD_COMMANDE d'un serveur Oracle à la table T_PROSPECT de la base BD_COMMERCIAL d'un serveur Sybase !).
source : http://sqlpro.developpez.com/cours/sqlaz/jointures/
Les jointures ou comment faire des requêtes sur plusieurs tables
Les jointures permettent d'exploiter pleinement le modèle relationnel des tables d'une base de données.
Elle sont faites pour mettre en relation deux (ou plus) tables concourant à rechercher la réponse à des interrogations. Une jointure permet donc de combiner les colonnes de plusieurs tables.
Elle sont faites pour mettre en relation deux (ou plus) tables concourant à rechercher la réponse à des interrogations. Une jointure permet donc de combiner les colonnes de plusieurs tables.
Il existe en fait différentes natures de jointures que nous expliciterons plus en détail. Retenez cependant que la plupart des jointures entre tables s'effectuent en imposant l'égalité des valeurs d'une colonne d'une table à une colonne d'une autre table. On parle alors de jointure naturelle ou équi-jointure. Mais on trouve aussi des jointures d'une table sur elle-même. On parle alors d'auto-jointure.
De même, il arrive que l'on doive procéder à des jointures externe, c'est-à-dire joindre une table à une autre, même si la valeur de liaison est absente dans une table ou l'autre. Enfin, dans quelques cas, on peut procéder à des jointures hétérogènes, c'est-à-dire que l'on remplace le critère d'égalité par un critère d'inégalité ou de différence.
Nous verrons au moins un cas de cette espèce.
De même, il arrive que l'on doive procéder à des jointures externe, c'est-à-dire joindre une table à une autre, même si la valeur de liaison est absente dans une table ou l'autre. Enfin, dans quelques cas, on peut procéder à des jointures hétérogènes, c'est-à-dire que l'on remplace le critère d'égalité par un critère d'inégalité ou de différence.
Nous verrons au moins un cas de cette espèce.
Une jointure entre tables peut être mise en oeuvre, soit à l'aide des éléments de syntaxe SQL que nous avons déjà vu, soit à l'aide d'une clause spécifique du SQL, la clause JOIN. Nous allons commencer par voir comment à l'aide du SQL de base nous pouvons exprimer une jointure.
Le modèle physique
Nous avons demandé à générer un modèle basé sur le SQL ANSI de manière à pouvoir être compatible avec la plupart des SGBDR :
Vous constaterez que toutes les tables ont été préfixées avec la lettre T lorsquelles proviennent d'entités, et de TJ lorsqu'elles proviennent d'associations. Dans ce dernier cas, leur nom a été constitué des trigrammes des tables en jeu dans la jointure (TJ_TRF_LIF et TJ_CHB_PLN_CLI).
Le modèle conceptuel de données
Voici un MCD établi à partir de l'outil AMC (AMC*Designor ou encore Power AMC) :
Pour ceux qui ne seraient pas familiarisé avec cet outil et la méthode MERISE, voir l'article consacré à la méthode MERISE sur ce même site.
Quelques explications
La plupart des clefs sont des entiers (I) qui pourront être auto générés par exemple par un type AUTOINCREMENT (Paradox, Access) ou encore via un trigger (identity de SQL Server...). Pour certaines entités, notamment celles servant de références à la saisie (MODE_PAIEMENT, TYPE, CODE) la clef est un code. Enfin pour les entités TARIF et PLANNING, nous avons choisi une date comme clef.
Chaque entité est repérée à l'aide d'un trigramme (code de 3 lettres) qui sert de préfixe pour chaque attribut. Exemple : CHB pour CHAMBRE, LIF pour LIGNE_FACTURE, etc...
Les booléens seront représentés par des valeurs numériques 0 (faux) et 1 (vrai), chaque attribut ayant obligatoirement une valeur par défaut.
La plupart des clefs sont des entiers (I) qui pourront être auto générés par exemple par un type AUTOINCREMENT (Paradox, Access) ou encore via un trigger (identity de SQL Server...). Pour certaines entités, notamment celles servant de références à la saisie (MODE_PAIEMENT, TYPE, CODE) la clef est un code. Enfin pour les entités TARIF et PLANNING, nous avons choisi une date comme clef.
Chaque entité est repérée à l'aide d'un trigramme (code de 3 lettres) qui sert de préfixe pour chaque attribut. Exemple : CHB pour CHAMBRE, LIF pour LIGNE_FACTURE, etc...
Les booléens seront représentés par des valeurs numériques 0 (faux) et 1 (vrai), chaque attribut ayant obligatoirement une valeur par défaut.
L'association "occupée" permet de connaître la réservation ou l'occupation d'une chambre (une chambre peut avoir été réservée mais pas occupée), c'est pourquoi cette association possède les attributs NB_PERS (nombre de personnes : entier) RESERVE (réservée : booléen) et OCCUPE (occupe : booléen). Une chambre à une date donnée, ne peut être occupée que par un seul client. Mais un client peut occuper plusieurs chambres à la même date ou la même chambre à différentes dates, voire même plusieurs chambres à plusieurs dates...
Entité CLIENT : Un client peut avoir plusieurs adresses, plusieurs numéros de téléphone et plusieurs e-mail. Pour le téléphone, comme pour l'e-mail, l'attribut 'localisation' permet de savoir si le téléphone est situé au domicile, à l'entreprise, etc...
L'entité TITRE permet de donner un titre à une personne, parmi les valeurs 'M.' (monsieur), 'Mme.' (madame) et 'Melle.' (mademoiselle).
L'entité TYPE permet de connaître le type de téléphone, parmi les valeurs 'TEL' (téléphone), 'FAX' (télécopie) et 'GSM' (portable).
L'entité MODE_PAIEMENT permet de connaître le genre de paiement, parmi les valeurs 'ESP' (espèces), 'CHQ' (chèque), 'CB' (carte bancaire).
L'association "payée" intègre la date du paiement d'une facture.
Entité CLIENT : Un client peut avoir plusieurs adresses, plusieurs numéros de téléphone et plusieurs e-mail. Pour le téléphone, comme pour l'e-mail, l'attribut 'localisation' permet de savoir si le téléphone est situé au domicile, à l'entreprise, etc...
L'entité TITRE permet de donner un titre à une personne, parmi les valeurs 'M.' (monsieur), 'Mme.' (madame) et 'Melle.' (mademoiselle).
L'entité TYPE permet de connaître le type de téléphone, parmi les valeurs 'TEL' (téléphone), 'FAX' (télécopie) et 'GSM' (portable).
L'entité MODE_PAIEMENT permet de connaître le genre de paiement, parmi les valeurs 'ESP' (espèces), 'CHQ' (chèque), 'CB' (carte bancaire).
L'association "payée" intègre la date du paiement d'une facture.
source : http://sqlpro.developpez.com/cours/bddexemple/#L1
الخميس، 22 سبتمبر 2011
HTML/XHTML, CSS et W3C
Autant vous pourrez très bien vous en sortir dans l'univers de Joomla sans connaissances en PHP/MySQL, autant les connaissances en HTML/XHTML et CSS s'avèreront très vite indispensables si vous souhaitez personnaliser l'apparence de votre site (le template). Rien d'insurmontable toutefois, vous trouverez en librairie et essentiellement sur le web toutes les ressources nécessaires (tutoriaux, documentation, exemples) pour acquérir les rudiments du HTML/XHTML et du CSS.
Le HTML est un langage «balisé» qui permet de mettre en forme des informations sur une page web. Vous souhaitez par exemple afficher un mot en gras sur une page web, pour ce faire vous devrez insérer ce mot entre les balises <b></b>. Vous souhaitez par ailleurs structurer l'affichage de votre page sous forme de tableau, le HTML vous permettra de le faire à l'aide des balises <table><tr><td></td></tr></table>.
Le langage XHTML est la nouvelle norme du W3C pour la conception de pages Web. Il s'agit en fait d'un encodage plus stricte du langage HTML, s'appuyant sur les spécifications du XML. Pour être valides XHTML, vos pages Web devront désormais respecter ces quelques règles:
- Le document doit être ouvert avec un DOCTYPE et un espace de nommage (namespace)
- Le document doit comporter au minimum les éléments de structure html, head et body.
- Les balises doivent être écrites en minuscules
- La valeur des attributs doit toujours être écrites entre des guillemets, y compris pour des valeurs numériques
- Les balises d'images IMG doivent toujours comporter l'attribut alt pour le texte alternatif.
- A toute balise d'ouverture doit correspondre une balise de fermeture.
- Les balises uniques doivent également être refermées.
- Les balises doivent être correctement imbriquées.
- Les notations compactes ou raccourcies dans les attributs ne doivent pas être utilisées.
- L'attribut ID sera préféré à l'attribut NAME pour identifier les éléments A, APPLET, FRAME, IFRAME, IMG, et MAP.
Bon, si vous n'avez pas tout compris, pas d'affolement, vous pourrez quand même continuer l'aventure Joomla! Vous trouverez toutes sortes d'informations complémentaires sur le web et notamment sur l'excellent http://openweb.eu.org .
Le CSS est un langage qui permet de définir et de contrôler les styles d'affichage de toutes les pages web d'un site depuis un seul fichier : la feuille de style. Sans feuille de style il faudrait par exemple définir pour chaque page d'un site que je souhaite que les liens hypertextes passent en couleur jaune et en souligné lorsqu'ils sont survolés… Que se passe t-il si le lendemain vous décidez finalement que les liens survolés doivent désormais passer au vert caca d'oie ? Eh bien il faut rééditer toutes les pages web de votre site.., pas très pratique. Tandis que si nous précisons pour chaque page web du site l'emplacement et le nom de la feuille de style qui sera utilisée, nous faisons la modification dans la feuille de style et elle s'applique automatiquement à toutes les pages web du site.
Joomla utilise seulement 2 fichiers pour gérer le design d'un site :
Joomla utilise seulement 2 fichiers pour gérer le design d'un site :
- un fichier qui contient entre autres choses du code HTML afin de structurer les éléments de la page web à afficher, par exemple 1 colonne de gauche pour afficher les menus de gauche, 1 colonne centrale pour afficher le corps de la page et une colonne de droite pour éventuellement afficher d'autres menus.
- une feuille de style unique pour tout votre site !
Le W3C (World Wide Web Consortium, http://www.w3.org) est une organisation internationale fondée en 1994 qui se propose de définir et de proposer des normes (spécifications ou recommandations) techniques afin de standardiser les technologies et protocoles utilisés sur le Web.
Si ses premières recommandations concernaient les normes de présentation du langage HTML, sa mission s'est ensuite élargie à d'autres technologies (XML, XHTML, XSL, CSS...) ainsi qu'aux champs liés à l'interaction entre le Web et ses utilisateurs (accessibilité, utilisabilité, mobilité...).
Le W3C est composé d'environ 450 membres (sociétés commerciales, fondations, universités...) dont la liste est consultable à cette adresse: http://www.w3.org/Consortium/Member/List. On y trouve pêle-mêle Google, Inc, la Fondation Mozilla ou les plus inattendus France Telecom et Microsoft Corp,. !!
Le W3C est composé d'environ 450 membres (sociétés commerciales, fondations, universités...) dont la liste est consultable à cette adresse: http://www.w3.org/Consortium/Member/List. On y trouve pêle-mêle Google, Inc, la Fondation Mozilla ou les plus inattendus France Telecom et Microsoft Corp,. !!
Quel est le rapport avec Joomla! ? Et bien en tant que webmaster, vous devenez acteur du web non? Alors autant se conformer tout de suite aux préconisations de nos experts du W3C! Vous pourrez vous amusez (ou pleurez) en passant par exemple votre site au W3C Validator,
source : http://php.developpez.com/cours/joomla/?page=concepts#LI-A
Site statique vs site dynamique
Un site statique est généralement un ensemble de pages «pré formées» (fichiers HTML) stockées sur un serveur Web. Aucun traitement n'est effectué du côté du serveur, qui ne fait qu'envoyer un ensemble de fichiers (HTML, images) au navigateur de l'utilisateur final.
Le contenu d'un site dit statique est codé en dur dans les pages HTML, où l'on pourra trouver pêle-mêle du code HTML, du javascript, du flash... Autant dire que la mise à jour s'annonce délicate voire périlleuse pour qui n'a pas quelques notions de base en HTML. Certes, il existe des éditeurs HTML, il n'en reste pas moins que la maintenance d'un tel site est coûteuse en temps et peu flexible sur de gros sites; pour ajouter un lien de navigation, il faudra par exemple éditer plusieurs fichiers HTML du site. Pour des sites de quelques dizaines de page, le statique conviendra tout à fait.
Le contenu d'un site dit statique est codé en dur dans les pages HTML, où l'on pourra trouver pêle-mêle du code HTML, du javascript, du flash... Autant dire que la mise à jour s'annonce délicate voire périlleuse pour qui n'a pas quelques notions de base en HTML. Certes, il existe des éditeurs HTML, il n'en reste pas moins que la maintenance d'un tel site est coûteuse en temps et peu flexible sur de gros sites; pour ajouter un lien de navigation, il faudra par exemple éditer plusieurs fichiers HTML du site. Pour des sites de quelques dizaines de page, le statique conviendra tout à fait.
Un site dynamique est généralement associé au couple PHP/MySQL, sur lequel s'appuie bon nombre de CMS. Le contenu du site est désormais stocké dans une base de données (MySQL par exemple), il est donc dissocié de la «présentation», c'est à dire la partie du code en charge de la restitution des données dans le navigateur de l'utilisateur final.
Le serveur Web reçoit une requête HTTP émise par le visiteur, il interroge la base de données puis construit une page de résultat qu'il restitue au visiteur via le navigateur.
Le serveur Web reçoit une requête HTTP émise par le visiteur, il interroge la base de données puis construit une page de résultat qu'il restitue au visiteur via le navigateur.
La page restituée pourra être différente en fonction de l'utilisateur connecté sur le site (accès autorisé ou pas à certaines parties du site par exemple). Le contenu du site pourra être mis à jour dynamiquement; par exemple, pour une page listant les articles de votre site, vous n'aurez à pas ajouter manuellement un lien vers un article fraîchement créé. Tout ce traitement est effectué par le serveur Web.
Vous l'aurez compris, avec Joomla! votre site sera dynamique!
Vous l'aurez compris, avec Joomla! votre site sera dynamique!
source : http://php.developpez.com/cours/joomla/?page=concepts#LI-A
Evolution de Joomla!
D'abord un peu d'histoire
En 2000, la société Miro développe et commercialise le CMS Mambo. Peu de temps après, cette société australienne met à disposition du public une version open source sous licence GPL. Parallèlement, Miro continue de développer la version payante, en tirant tous les bénéfices du développement et de la popularité de la version Open source.
Début 2005, Miro décide de renommer la version payante de Mambo en Jango. Mambo version open source continue de s'améliorer et devient l'un des CMS les plus puissants et les plus populaires du web. Miro assure le parrainage structurel au sein d'un comité directeur (Mambo Steering Comitee, MSC) et en mettant à disposition de la Core team (équipe de bénévoles en charge du développement de la version Open source) une infrastructure technique (serveurs hébergeant l'espace de développement, CVS, forums, sites officiels).
En août 2005, suite à un désaccord profond sur la conduite du projet entre la société Miro d'une part et la core team d'autre part, cette dernière fait sécession et crée le projet Joomla ! Dans leurs versions actuelles, Mambo (4.5.x) et Joomla (1.0.x) sont deux CMS dont la parenté est évidente, tant au niveau de l'interface que du code source. Les développeurs qui ont créé le projet Joomla! sont ceux là même qui ont porté Mambo jusqu'à la version 4.5.3. La plupart des extensions (composants, modules, mambots, templates) fonctionne encore indifféremment sur l'un ou l'autre CMS. Mais Joomla! et Mambo ayant désormais chacun leur équipe de développement, les deux "produits" vont inévitablement emprunter des voies différentes. L'interopérabilité risque donc de disparaître très prochainement.
Sans tomber dans le prosélytisme, force est de constater que Joomla! est un projet très actif: pas moins de 12 versions de maintenance corrigeant bugs et failles de sécurité entre septembre 2005 et août. 2006, contre une seule pour Mambo. La majorité des grands portails internationaux a adhéré au discours de la Core Team Joomla!
Si vous hésitez entre Joomla! et Mambo, testez les deux! Si vous souhaitez passer de Mambo et Joomla!, n'attendez pas que le trou se creuse...
Si vous hésitez entre Joomla! et Mambo, testez les deux! Si vous souhaitez passer de Mambo et Joomla!, n'attendez pas que le trou se creuse...
I-B-1-b. Versionning
Les numéros de version suivent une convention de type X.Y.Z (par exemple 1.0.12) où:
- X = Numéro majeur - Changement important dans le code source de Joomla!. L'incrémentation de ce numéro peut introduire une incompatibilité avec les versions inférieures (par exemple, Joomla! 2.0.0 ne sera peut-être pas compatible avec Joomla! 1.0.12).
- Y = Numéro mineur - Changement significatif en termes de fonctionnalités et d'architecture avec un risque d'incompatibilité des versions inférieures modéré à haut.
- Z = Numéro de stabilité (ou maintenance) - Résolution de bugs (sécurité ou fonctionnels) et, occasionnellement, introduction de légères améliorations fonctionnelles. La compatibilité avec les versions inférieures est totale.
A la date de publication de ce document, après un an d'existence, pas moins de 11 versions de maintenance Joomla! (1.0.0 à 1.0.12) se sont succédées.
I-B-1-c. Roadmap
En informatique, un roadmap est une feuille de route qui se présente généralement sous forme de tableau où sont annoncés les dates de sortie de logiciels et de matériels. Le roadmap Joomla! est défini et mis à jour par la Core Team. On peut par exemple y lire que la date de sortie de la prochaine version de Joomla! (1.5) est TBA (To Be Announced), comprenez par là, quand elle sera prête! Rappelez vous que les développeurs du code source Joomla! sont des bénévoles qui cumulent pour la plupart cette activité en plus d'une activité professionnelle habituelle.
source : http://php.developpez.com/cours/joomla/?page=concepts#LI-A
Qu'est ce que Joomla ?
Joomla! est un système de gestion de contenu (en anglais, CMS, pour Content Management system) Open source sous licence GNU/GPL créé par une équipe internationale de développeurs récompensée à maintes reprises.
Joomla! est chapeauté par Open Source Matters , Inc., organisation à but non lucratif basée aux Etats- Unis dont la mission est de fournir une structure légale et financière au projet. Les statuts de l'organisation sont consultables sur http://www.opensourcematters.org
Et un CMS, c'est quoi ?
Pour faire simple, un CMS (système de gestion de contenu) est un logiciel web qui permet de créer un site internet dynamique en toute simplicité, sans connaissances techniques particulières, l'idée étant de séparer le volet technique du logiciel de la forme et du contenu qui seront eux la partie visible de l'iceberg : votre site tel qu'il sera vu par vos futurs visiteurs. Bon c'est toujours pas clair ? Prenons une bagnole ; n'importe qui est capable d'en conduire une sans pour autant être mécanicien non ? CQFD
S'il est d'abord orienté gestion de contenu, c'est-à-dire destiné à mettre en ligne des articles et des news, Joomla peut en quelques clics être " détourné " en portail, site de boutique en ligne, site communautaire, site personnel, etc., ce grâce aux centaines d'extensions disponibles sur le web.
Bon, et comme ici on n'est pas sectaire, voici un site qui recense quantité de CMS et autres logiciels de blog, groupware, forum ou encore wiki : http://www.opensourcecms.com/ . Vous pourrez tester les démos en ligne, ou, si vous avez le temps, les installer sur votre PC, ce que nous allons faire plus loin dans ce document pour Joomla!
Que se cache-t-il derrière ce nom?
Joomla! est la transcription phonétique d'un mot swahili qui signifie "tous ensemble", ou encore "en un tout". Le choix s'est porté vers ce nom car l'intégralité de l'équipe de développement était unanime dans la volonté de protéger les intérêts des créateurs et de la communauté. Ce nom a été choisi parmi les milliers de propositions faites par la communauté, il a même été passé au banc d'essai par des professionnels du marketing et des marques, convaincus eux aussi que Joomla! était le meilleur choix.
Joomla!, le nom et le logo sont protégés. Vous pouvez utiliser le logo Joomla ! sous réserve de respecter les règles d'utilisation décrites dans le Brand Manual: http://www.joomla.org/content/view/259/70/.
Joomla!, le nom et le logo sont protégés. Vous pouvez utiliser le logo Joomla ! sous réserve de respecter les règles d'utilisation décrites dans le Brand Manual: http://www.joomla.org/content/view/259/70/.
Combien ça coûte ?
En tant qu'utilisateur final (particulier, association ou entreprise commerciale) il ne vous en coûtera rien d'utiliser Joomla! et/ou d'en modifier le noyau. Joomla! est un logiciel libre sous licence GNU/GPL. En aucun cas une entreprise commerciale ne peut vendre une licence d'utilisation Joomla! ou encore tout ou partie du code source. En revanche elle a tout à fait le droit de vendre une prestation basée sur Joomla! (installation, configuration, formation...) et d'en modifier le noyau pour les besoins d'un client, ou encore de vendre des extensions (composants, templates...) développés spécifiquement pour Joomla!
Et Joomla c'est qui ?
On peut distinguer 5 catégories de joomlistes (joomlers ? joomladdicts ? …) :
- Core Team : équipe officielle des développeurs du noyau Joomla. Elle se charge de maintenir et de faire évoluer Joomla!. La liste des membres est consultable sur le site officiel (http://www.joomla.org), Autour de la core team sont organisés des groupes de travail dont les missions sont entre autres choses axées sur la sécurité, les performances, l'accessibilité...
- Translation Partners : équipes de traductions officielles organisées par langue, elles ont pour mission première de fournir une traduction de l'aide en ligne de Joomla ! Par extension, ce sont souvent ces mêmes équipes qui réalisent la traduction du frontend et du backend (cf plus loin les définitions de ces deux termes) du logiciel, voire des extensions tierces. Le partenaire officiel de traduction en français est http://www.joomlafacile.com.
- Développeurs d'extensions tierces : Joomla! intègre nativement un certain nombre d'extensions, volontairement limité pour ne pas surcharger le package d'installation. L'une des grandes forces du projet Joomla c'est le nombre important d'extensions tierces mis à disposition par des développeurs amateurs ou professionnels. Galeries d'images, forums, générateurs de formulaire, ecommerce, templates... l'éventail des extensions tierces vous permettra de vous tailler un site sur mesure !
- Portails communautaires : ces sites web n'ont rien d'officiel, ils sont le plus souvent animés par des passionnés de la première heure qui n'ont d'autre ambition que de " partager " en mettant à disposition des utilisateurs finaux toutes les ressources (forums, téléchargements d'extensions et de templates, news, base de connaissance...) pour mettre en oeuvre un site motorisé par Joomla!
- Utilisateurs finaux : webmasters amateurs ou professionnels, rédacteurs..., ben là c'est vous, nous !
- source : http://php.developpez.com/cours/joomla/?page=concepts#LI-A
Introduction A joomla
Risquons d'abord la métaphore suivante: vous souhaitez construire une nouvelle maison mais vous ne savez trop comment vous y prendre. Vous n'avez pas de connaissances en gros oeuvre, en électricité ou encore en décoration, mais vous en avez tellement envie de cette nouvelle maison ! Vous pourriez tout apprendre vous-même, enfiler le bleu de travail… et vous tuer à la tâche! Bon, certains y arrivent, c'est vrai.
Vous avez donc pris contact avec plusieurs maîtres d'oeuvre et l'un d'eux a particulièrement retenu votre attention: il s'occupe du gros oeuvre et vous livre une maison modulable où vous pourrez choisir vousmême l'emplacement des cloisons (pour faire autant de pièces que vous voulez), et la décoration. Il ne vous reste plus qu'à meubler.
La maison c'est votre site web, le maître d'oeuvre c'est Joomla (et c'est un bon !), le gros oeuvre c'est l'environnement de travail PHP/MySQL, les cloisons c'est précisément la modularité de Joomla (qui vous permettra notamment d'ajouter des composants et des modules à la structure de l'édifice), la décoration c'est le template (le design de votre site), quant aux meubles, vous l'aurez deviné, il s'agit du contenu même de votre site.
Et décidément, non content de vous offrir gratuitement une toute nouvelle maison, ce Joomla vous livre en plus un rez-de-chaussée habitable ! En clair, un ensemble de composants, de modules et de templates pré installés qui rendent le site fonctionnel immédiatement. Pour l'aménagement des étages, c'est à vous de jouer!
Dans cette première partie nous allons donc présenter quelques concepts de base qui aideront à mieux comprendre où nous allons mettre les pieds. Ensuite, nous rassemblons nos outils, nous préparons le terrain, et on y va!
source : http://php.developpez.com/cours/joomla/?page=concepts#LI-A
الأربعاء، 21 سبتمبر 2011
Les outils pour développer une interface XUL
- Le projet open source Xul Dev hébergé sur Sourceforge à démarré. C'est un environnement de développement (IDE) comme Eclipse, pour créer visuellement des interfaces graphiques XUL et construire des logiciels en tout langage de programmation.
- XUL Explorer est une application graphique pour expérimenter les composants XUL. Tapez ou insérez des composants dans l'éditeur et vous pourrez immédiatement étudier le résultat. (Note: Il faut changer la version max de gecko dans application.ini au besoin pour la 1.9).
- Spket.
Editeur XUL et JavaScript. Un plugin pour Eclipse, difficile à installer. - Xul light est un code XUL sans crochets, plus lisible, que l'on peut intégrer dans le source d'un programme écrit en Scriptol. XML light peut offrir des possibilités descriptives supérieures à celles des classes.
Exemple de source scriptol.
Le code XUL généré par le compilateur scriptol à partir du source. - XULRunner est le runtime qui est requis pour faire tourner et afficher des applications XUL.
Lire les instructions d'installation de votre application sur ce site.
Voir la page XULRunner sur Mozilla. - XPCom. Fait le lien entre des modules binaires écrits en C++ ou autre et l'interface XUL dont le code JavaScript est limité. Voir la page XPCom sur ce site.
HTML 5, plateforme de sites et applications en ligne
Pour succéder à HTML 4 qui est le format des pages Web actuel, le W3C qui établit les standards du Net à repris une spécification en cours du WHATWG.
Ce nouveau format qui est implémenté progressivement par tous les navigateurs y compris Internet Explorer, est conçu pour les applications Web et ajoute à la fois des balises et des fonctionnalités nouvelles.
Steve Jobs a dit pour Apple:
En mode déconnecté les pages et objets qu'elles affichent sont mises en cache et une base SQL locale stocker localement les données pour dupliquer la base distante.
De nouveaux composants graphiques ont été ajoutés, voir la liste des objets de formulaire en HTML 5.
La balise input peut représenter des types d'objets plus nombreux et dispose de nouveaux attributs comme l'auto-complétion. Output affiche le résultat de calculs.
L'ajout de contraintes sur les données aide à sécuriser les formulaires.
Les balises section, article, header, footer sont destinées à donner une structure à un document.
Dialog est un objet formalisant une discussion et figure associe un libellé à tout élément.
HTML dispose maintenant de balises canvas, video, audio et de nombreuses autres ont été créées.
source : http://www.xul.fr/html5/
Ce nouveau format qui est implémenté progressivement par tous les navigateurs y compris Internet Explorer, est conçu pour les applications Web et ajoute à la fois des balises et des fonctionnalités nouvelles.
Steve Jobs a dit pour Apple:
"Apple ne supporte pas Flash parce qu'il est trop bogué. Chaque fois qu'un Mac plante, le plus souvent c'est à cause de Flash. Personne n'utilisera plus Flash. Le Monde est en train de se tourner vers HTML 5." (Apple Town Hall Meeting, fin Janvier 2010).
Des capacités très étendues pour les applications Web
Utiliser les applications Web hors ligne est la tendance majeure dans ce domaine depuis 2008. Un framework, Gears, avait été créé pour cela par Google maintenant remplacé par les fonctions équivalentes dans HTML.En mode déconnecté les pages et objets qu'elles affichent sont mises en cache et une base SQL locale stocker localement les données pour dupliquer la base distante.
De nouveaux composants graphiques ont été ajoutés, voir la liste des objets de formulaire en HTML 5.
La balise input peut représenter des types d'objets plus nombreux et dispose de nouveaux attributs comme l'auto-complétion. Output affiche le résultat de calculs.
L'ajout de contraintes sur les données aide à sécuriser les formulaires.
Les balises section, article, header, footer sont destinées à donner une structure à un document.
Dialog est un objet formalisant une discussion et figure associe un libellé à tout élément.
HTML dispose maintenant de balises canvas, video, audio et de nombreuses autres ont été créées.
Tutoriel HTML 5
- Structure d'une page HTML 5.
Les balises indispensables et les nouvelles balises de structure introduite avec HTML 5. - Doctype.
Lequel choisir? - Div et span.
Différences dans leur utilisation pratique. - La balise Video.
- L'objet Select.
- Option.
- Bouton radio.
Les groupes de cases à cocher dans un formulaire ou en Ajax. - L'objet Menu.
Pour créer des menus contextuels ou des barres d'outils. - Table.
La balise et les balises internes. - innerHTML.
Ajouter dynamiquement du contenu à une page. Les attributs DOM équivalents. - sessionStorage.
Démonstration et test de d'implementation. - Canvas.
La balise canvas est une surface dans laquelle s'affichent des objets graphiques vectoriels ou bitmap ou des widgets d'interface graphique. - Commentaire.
Balise standard et expressions conditionnelles. - iframe.
Pour un contenu dynamique ou isolé de la page.
HTML 5 approfondi
- Problèmes de sécurité avec HTML 5.
- HTML 5 comme interface d'ordinateur.
- Exemples d'applications.
- XUL vs HTML 5.
XUL permet d'intégrer du code HTML et est donc un moyen ajouter du code natif à une application HTML 5. - Les codecs video pour HTML 5.
Ogg, WebM, H.264 et leur implémentations. - HTML 5 sur Firefox 3.5
Parmi les nombreuses évolutions du navigateur, un support plus complet de HTML 5. - Les balises HTML 5 sur Internet Explorer.
- Mais qui donc définit HTML 5?
Le format de milliards de pages est-il décidé par une seule personne?
- Les spécifications. Le format est divisé en plusieurs spécifications.
- Outils. Pour utiliser HTML 5.
source : http://www.xul.fr/html5/
XUL vs. HTML 5. Faut-il abandonner XUL?
XUL dans XULRunner est un moyen d'ajouter du code natif à une application HTML 5, en l'encapsulant dans une fenêtre XUL.
Sinon, quel est l'avenir de XUL? On peut se poser la question, en voyant notamment que Mozilla lance un projet de navigateur utilisant non plus XUL, son propre langage d'interface, mais plutôt HTML 5.
Et elle le fait parce que le moteur de rendu devant être dajà capable de présenter des pages web en HTML 5, il pourrait être simplifier si l'on supprimait le traitement du langage XUL.
Reste à savoir si HTML 5 peut entièrement remplacer XUL.
Noter que DOM est étendu avec de nouvelles méthodes comme par exemple getElementsByAttribute.
Une application ou page web utilise le langage HTML ou XHTML tous deux dérivés de XML, et également CSS, JavaScript et DOM.
Quand à SVG, il peut s'imbriquer dans du code HTML et dans du code XUL, comme l'explique l'article Embedding SVG.
Ainsi les deux langages reposent sur les standards du Web. Pour les différencier il faut donc comparer leurs balises et autres caractéristiques.
Il semble que la Canvas de XUL soit simplement un projet, alors qu'il est déjà implémenté dans HTML 5.
Il existe un moyen des les ajouter: imbriquer du code HTML dans le code XUL.
Par exemple, XUL dispose d'un objet tree pour afficher une arborescence, des balises de layout avancées comme Grid, un système de gabarits (templates).
On peut construire des composants équivalents en HTML mais sur ce plan encore, XUL à un avantage car il dispose du dispositif XBL pour faciliter la définition de nouveaux composants graphiques.
On peut associer des évènement aux composants avec du code JavaScript, mais XUL dispose de capacité supérieures dans les réponses aux changements d'états et les interactions entre composants.
Cet accès au code natif à son pendant avec Native Client de Google pour les applications Web.
L'emploi de XPCOM est plus complexe que l'emploi d'Ajax couplé à des scripts sur le serveur.
Il existe une version allégée de Firefox pour mobiles au nom de code Fennec.
XUL semble mieux adapté pour construire une interface complexe grâce à ses balises de layout, et son langage de description de widgets permet aussi de se doter d'une librairie de composants réutilisables. Quand XUL offre des capacités additionnelles, c'est toujours au prix d'une très grande complexité mais il permet d'inclure des API natives.
HTML 5 convient pour un développement rapide et des applications portables. L'emploi d'un framework JavaScript peut apporter des widgets complémentaires.
source : http://www.xul.fr/tutoriel/xul-vs-html5.html
Sinon, quel est l'avenir de XUL? On peut se poser la question, en voyant notamment que Mozilla lance un projet de navigateur utilisant non plus XUL, son propre langage d'interface, mais plutôt HTML 5.
Et elle le fait parce que le moteur de rendu devant être dajà capable de présenter des pages web en HTML 5, il pourrait être simplifier si l'on supprimait le traitement du langage XUL.
Reste à savoir si HTML 5 peut entièrement remplacer XUL.
Comparaison des technologies
Une application XUL utilise un langage dérivé de XML, pour structurer la page, CSS pour sa présentation, JavaScript pour l'interaction avec l'utilisateur, DOM pour l'accès aux éléments du contenu.Noter que DOM est étendu avec de nouvelles méthodes comme par exemple getElementsByAttribute.
Une application ou page web utilise le langage HTML ou XHTML tous deux dérivés de XML, et également CSS, JavaScript et DOM.
Quand à SVG, il peut s'imbriquer dans du code HTML et dans du code XUL, comme l'explique l'article Embedding SVG.
Ainsi les deux langages reposent sur les standards du Web. Pour les différencier il faut donc comparer leurs balises et autres caractéristiques.
Comparaison des balises
Trois balises sont cruciales: Canvas, Video et Audio. La première permet virtuellement de faire tout ce que l'on veut en matière d'interface et d'animation, les deux autres ont une usage très fréquent qui les rend incontournables.Canvas
Canvas dans XUL et HTML 5 est une balise représentant une surface de dessin (dans Silverlight, c'est un conteneur pour d'autres balises graphiques).Il semble que la Canvas de XUL soit simplement un projet, alors qu'il est déjà implémenté dans HTML 5.
Video et audio
XUL ne dispose d'aucune de ces deux balises essentielles pour une page Web, mais pas nécessairement utile dans une application.Il existe un moyen des les ajouter: imbriquer du code HTML dans le code XUL.
Les widgets
Les composants graphiques prédéfinis de XUL sont plus nombreux comparés au objets de formulaire de HTML 5.Par exemple, XUL dispose d'un objet tree pour afficher une arborescence, des balises de layout avancées comme Grid, un système de gabarits (templates).
On peut construire des composants équivalents en HTML mais sur ce plan encore, XUL à un avantage car il dispose du dispositif XBL pour faciliter la définition de nouveaux composants graphiques.
Les plus de XUL
Modèle vue-contrôle
L'emploi du RDF pour les widgets permet de définir des contenus alternatifs définis dans des fichiers différents. Voir un exemple dans le tutoriel RDF.On peut associer des évènement aux composants avec du code JavaScript, mais XUL dispose de capacité supérieures dans les réponses aux changements d'états et les interactions entre composants.
XPCOM
C'est une interface aux librairies externes, écrites dans différents langages. On peut ainsi à partir de JavaScript utiliser des fonctions écrites en C.Cet accès au code natif à son pendant avec Native Client de Google pour les applications Web.
Bases de données
XUL peut se connecter directement à une base de données avec XPCOM et une extension a été développée spécialement par Mozilla pour SQL, voir SQL support in Mozilla, mais elle date de quelques années.L'emploi de XPCOM est plus complexe que l'emploi d'Ajax couplé à des scripts sur le serveur.
XPInstall
Un système d'installation automatique pour les applications XUL. S'exécute à partir du navigateur Firefox.Localisation
La structure de toute application XUL comprend de base un répertoire local pour les différentes traductions des libellés. La mappage est automatique.Compatibilité
Pour fonctionner une application XUL a besoin du navigateur Firefox ou du runtime XULRunner. De son coté, HTML 5 fonctionnera bientôt sur tous les navigateurs et sur tous les systèmes y compris les mobiles.Il existe une version allégée de Firefox pour mobiles au nom de code Fennec.
Conclusion
L'avantage déterminant de XUL sur HTML est la possibilité d'insérer du code HTML dans une interface XUL. Cela donne accès à toutes les balises que possède HTML plus celles qui lui manquent.XUL semble mieux adapté pour construire une interface complexe grâce à ses balises de layout, et son langage de description de widgets permet aussi de se doter d'une librairie de composants réutilisables. Quand XUL offre des capacités additionnelles, c'est toujours au prix d'une très grande complexité mais il permet d'inclure des API natives.
HTML 5 convient pour un développement rapide et des applications portables. L'emploi d'un framework JavaScript peut apporter des widgets complémentaires.
source : http://www.xul.fr/tutoriel/xul-vs-html5.html
الاشتراك في:
التعليقات (Atom)




























