SPIP et PHP le couple infernal
|
|
- Denise Lachapelle
- il y a 8 ans
- Total affichages :
Transcription
1 SPIP et PHP le couple infernal signé : les apprentis sorciers PERFORMANCES, PERFORMANCE QUAND TU NOUS TIENT... par la barbichette... Au départ il y avait un site qui marchait bien. Mais on voulait du mieux; du mieux fonctionnel (tout ce qu'on ne pouvait pas faire avec SPIP, ou qu'on ne savait pas faire), du mieux plus rapide : quand on regarde les requêtes SQL dans le PHP généré par Spip (fichiers SKEL dans le répertoire CACHE), et qu'on est inquiet par la taille de sa base de données, on se dit qu'on peut faire mieux. Le fameux "mieux", "ennemi du bien"? CACHE AS CACHE CAN La fleur au fusil, on remplace toutes les boucles spip par des requêtes mysql et du code php ; on se familiarise assez vite avec la structure de la base ; ça marche. Enfin, avec un utilisateur, ça marche, même bien. Et on peut faire toute la cuisine qu'on veut; même des nouilles... Mais le site devient lent ; une course contre la montre s'engage : on remplace plus de boucle spip par du code php/mysql. Il est pas beau mon php? Le site s'effondre. Kesskisspass? Ayons la curiosité, osons nous plonger dans ce mystérieux répertoire cache. Prenons par exemple le fichier sommaire 1.d'origine avec des boucles spip ; Exemple :la colonne de droite du site (le fil d'actualité) : on ne veut lister que les 35 dernières contributions non refusées : <BOUCLE_article(ARTICLES){id_rubrique=3}{statut!="refuse"}{par id_article}{0,35}{inverse}> on voit dans CACHE un fichier SKEL_sommaire.php3 dans lequel les boucles spip sont traduites en php et requêtes mysql, par exemple : SELECT articles.id_article,articles.id_rubrique,articles.id_secteur,articles.surtitr e,articles.titre,articles.soustitre,articles.date,articles.date_redac,article s.visites,articles.popularite,articles.statut,articles.accepter_forum FROM spip_articles AS articles WHERE articles.id_secteur='3' AND articles.statut!='refuse' AND articles.date<now() AND (articles.statut='publie' OR articles.statut='prop') ORDER BY id_article
2 DESC LIMIT 0,35 qui sélectionne TOUS LES CHAMPS des articles (même si on n'a besoin que du titre) qui sont des contributions (rubrique = id_secteur = 3), qui ne sont pas refusées (statut différent de refusé)... mais plus loin Spip a ajouté de lui-même "statut=publié ou statut=proposé" (en fait, on élimine non seulement les "refusés" mais aussi les articles "en préparation" ou "à la poubelle"), dont la date n'est pas dans le futur (articles préparés à l'avance), on les trie par ordre décroissant, et on ne garde que les 35 derniers. Cela fait beaucoup de travail sur articles, alors que l'on pourrait commencer par ne prendre que les 35 derniers en s'appuyant sur id_article, qui est la clé d'indexation, en disant WHERE id_article>20965 (= ) on voit dans un des sous-répertoires de CACHE (CACHE/0 à CACHE/f) un fichier au nom du style "sommaire.34xdf56" : ce fichier contient du HTML et tout ce qui était php et mysql dans le fichier SKEL est maintenant remplacé par du texte, le contenu de la base de donnée qui a été ramené grace aux requêtes MySql et aux traitements php. Ainsi, la prochaine fois que quelqu'un consulte la même page dans le même contexte, il n'y aura qu'à envoyer ce fichier dans son navigateur; pas la peine d'ouvrir et de consulter à nouveau la base et de calculer toutes ces mises en forme. Réponse instantanée garantie (enfin presque) 2.lorsqu'on a remplacé les boucles spip par du php/mysql Exemple, une requête plus intelligente que celle ci-dessus pourrait être: SELECT id_article,titre FROM spip_articles WHERE id_article>20965 AND id_rubrique='3' AND date<now() AND (statut='publie' OR statut='prop') ORDER BY id_article DESC on voit dans CACHE un fichier quasiment tel quel, votre php/mysql original a juste été mis à l'intérieur d'une fonction "_executer". Que voit-on dans un des sous-répertoires de CACHE? Là encore une fichier au nom du style "sommaire.34xdf56", mais que contient-il : votre code php/mysql qui reste prêt à s'exécuter. A s'exécuter à chaque fois que la page est demandée... L'intérêt du CACHE devient nul : même si votre requête sql est 10 fois plus efficace, elle va s'exécuter 10 fois ou plus, alors que la requête de spip ne sera exécutée qu'une fois. Les inconnues il semble que le fichier SKEL ne soit recalculé que lorsque vous changez le fichier HTML ; rien ne se passe si vous ne changez que le fichier php3 qui l'appelle. Rien de tentant à changer quoi que ce soit dans ce fichier php3 me direz-vous, mais nous on l'a fait, en cherchant à s'en sortir avec quelques beaux "include" supplémentaires... il semble que les fichier cachés sous CACHE/0.. CACHE/f ne soient créés que lorsque le fichier php a été appelé avec un contexte (par exemple avec? id_rubrique=3). Donc si vous vous acharnez à changer sommaire.html et
3 que vous ne fassiez vos test qu'en appelant sommaire.php3 vous risquez de ne rien voir se créer dans les sous-répertoire CACHE. Par contre si vous ajoutez un contexte comme?id_rubrique=3 vous verrez se créer quelque part un fichier au nom barbare genre "sommaire-3.318ad9" et tous les fichiers qu'il appelle avec des "INCLURE" également. PLUS DE CONTEXTE Quand le php s'exécute à partir d'un fichier caché, le contexte habituel de spip n'est pas disponible : c'est à vous de gérer tout l'environnement. Notamment, on a remarqué pour vous : les belles fonctions que vous avez mises dans mes_fonctions.php3 sont inconnues au bataillon. La base peut ne pas être ouverte (c'est bien le principe avec ces fichiers cachés de ne justement pas avoir besoin d'ouvrir la base), donc vos belles requêtes mysql vont sortir en erreur. Bien sûr, comme vous êtes un bon programmeur, vous aurez testé l'erreur et envoyé un beau message d'erreur explicatif. Mais ça n'aide pas... COMMENTAIRES Quand on se lance dans des modifs comme ça, on aime bien sauvegarder ses arrières. Voici deux mauvaises façons de le faire 1 garder les boucles SPIP et les mettre entre commentaires html <!-- comme ça --> 2 - garder les boucles SPIP et les mettre entre commentaires php /* */ ou après // en effet dans ces cas là, spip continue à essayer d'interpreter ces instructions comme des boucles SPIP valides, ça marche et ça met le résultat dans les commentaires... redoutable! Donc, préférer remplacer <BOUCLE par <!--BOUCLE, ou supprimer les carrément et garder plutôt le fichier à part. JOUER SUR LE DELAI? Mettre le delai à zero ou à une valeur très faible semble être la seule solution pour que votre nouveau code php/mysql marche. Il marche en effet mais le SKEL est recalculé à chaque fois la page calculée est envoyée au navigateur et une copie est gardée en cache dans un des sous-répertoire CACHE/0... mais ce fichier ne sert à rien
4 puisqu'au prochain appel de la page un nouveau devra être créé... donc question performance on est doublement pénalisé : les accès à la base de donnée se font à chaque fois, et à chaque fois on fait des calculs inutiles de squelette et de pages cachées. SEULE VOIE DE SORTIE, MES_FONCTIONS C'est le seul endroit où l'on peut mettre du php/mysql qui pourra être calculé dans le SKEL (avec le bon contexte), et dont le résultat pourra être caché normalement selon les règles de spip. On peut même imaginer créer une boucle bidon pour forcer spip à l'exécuter : <BOUCLE_BIDON(RUBRIQUES){0,1}> [(#ID_RUBRIQUE FilActu)] </BOUCLE_RUBRIQUE> et dans mes_fonctions.php3 on aura une fonction function FilActu(idrubrique_bidon){... dans laquelle on n'est pas obligé de se servir de l'id_rubrique envoyée, et qui retournera le contenu que vous voulez calculer avec votre php et vos requêtes sql: return $retour; } Tout ce qui doit être renvoyé comme contenu et html doit être dans cette variable $retour : il faut donc commencer par un $retour=""; et remplacer tous les echo "..." par des $retour.= "..." ou bien, si vous avez intercallé du HTML, remplacer?> <DIV class="boite"><ul>... <? par $retour.="<div class='boite'><ul>..." (noter les éventuels problèmes de guillements) Si vous faites des requêtes mysql intelligentes dans votre code, n'oubliez pas de libérer la mémoire occupée par le résultat de la requête où $result est la variable retour de spip_query ref :
5 CONSEQUENCES ARCHITECTURALES Votre fichier mes_fonctions.php3 va devenir très gros, raison de plus pour bien le structurer et documenter. Par contre vous pouvez maintenant faire l'économie des nombreux fichiers que vous appeliez auparavant par des INCLURE, et les remplacer par des appels de fonction. Autre conséquence positive : vous pouvez modifier, améliorer vos fonctions et uploader un nouveau fichier mes_fonctions.php3 et cela n'oblige pas spip à recalculer les squelettes et les fichiers en cache (avantages/inconvénients...) EXCLURE <INCLURE()>? Attention cependant aux limites de cet exercice : en termes de performances, là-encore, il est peut-être préférable de garder vos fichiers à inclure car ils peuvent être "rafraîchis" en cache à des fréquences différentes. Par exemple, notre site a une colonne de gauche assez statique, sauf la partie agenda qui n'a pas vraiment besoin d'être recalculée plus fréquemment qu'une fois par heure; une colonne centrale avec des editos, environ un à deux par jour, donc à recalculer toutes les 4 heures suffit ; une colonne de droite avec un fil d'actualité, à rafraîchir toutes les 10 minutes (50 contributions en 8 heures). Gérer ces différents éléments uniquement avec des fonctions dans mes_fonctions.php3 amènerait à TOUT recalculer toutes les 10 minutes. Il vaut mieux laisser ces différents éléments dans des fichiers séparés et un "delai" approprié à chacun. Ce qu'on trouvera dans le cache sera une page type sommaire.34xdf56 où les fichiers indiqués dans le code SPIP, comme par exemple : <INCLURE(indy_coldroite.php3){id_mot}> seront traduits en php, par exemple : <?php $contexte_inclus = ''; $contexte_inclus[id_mot] = '15'; include ('indy_coldroite.php3');?> La logique de gestion de cache de Spip ira alors chercher la dernière version de indy_coldroite en cache, par exemple un fichier : indy_coldroite-15.45gj78 L'affichage du sommaire se fera donc avec les dernières versions en cache des différents éléments (agenda, navigation, editos, fil d'actu), sans qu'il soit besoin de les recalculer toutes.
6 TRUCS ET ASTUCES pour remédier à quelques limites de la programmation en SPIP Spip est super pour éviter la programmation, et il faut autant que possible rester dans ce cadre là si vous avez un site qui n'a pas un trafic important. LES MOTS-CLEFS Une de notre premières difficultés à été la gestion des pages thématiques, pour laquelle nous utilisons les mot-clefs, très pratiques dans Spip. Nous voulons utiliser les mots-clefs comme des filtres ; notre page d'accueil présente tout, quelque soient les mots-clefs attribués aux contributions. Idéalement, la page d'accueil thématique aurait le même code spip, mais n'afficherait que les contributions (agenda, editos, fil d'actu) relatives au motclef passé en paramètre. Ainsi n'afficherait que ce qui concerne l'afrique. Par exemple, il suffirait d'ajouter {id_mot} à la boucle du fil d'actualité, qui deviendrait <BOUCLE_article(ARTICLES){id_rubrique=3}{id_mot} {statut!="refuse"}{par id_article}{0,35}{inverse}> malheureusement cette boucle ne marche plus si la page d'accueil générale est appelée sans mot-clef, juste On s'en tire avec une boucle conditionnelle sur les mots clefs, mais il faut répéter le code : <B100> <BOUCLE100(MOTS){id_mot}> <BOUCLE_article_avec_mots(ARTICLES){id_rubrique=3}{id_mot} {statut!="refuse"}{par id_article}{0,35}{inverse}>...insérer le code d'affichage ici... </BOUCLE_article_avec_mots> </BOUCLE100> </B100> <BOUCLE_article_sans_mot(ARTICLES){id_rubrique=3} {statut!="refuse"}{par id_article}{0,35}{inverse}>...insérer le code d'affichage ici... </BOUCLE_article_sans_mot> <//B100> En fait on ne s'en tire pas beaucoup mieux si on met le code d'affichage de la boucle dans une fonction du fichier mes_fonctions.php3 ; il faut même jouer
7 d'une astuce pour pouvoir faire l'appel de fonction, qui ne peut s'appeler qu'à une balise Spip (ici, selon le cas, #ID_MOT si on en a un, #TOTAL_BOUCLE si on n'en a pas (et sa valeur sera donc zéro!... à tester dans la fonction indy_coldroite...) : <B102> <BOUCLE102(MOTS){id_mot}> [(#ID_MOT indy_coldroite)] </BOUCLE102> </B102> [(#TOTAL_BOUCLE indy_coldroite)] <//B102 LA SELECTION D'ARTICLES On a vu plus haut l'intérêt de limiter la boucle articles avec, par exemple, id_article> Mais comment faire si on veut passer cette valeur en paramètre? A l'expérience, on voit que certains critères de sélection de spip acceptent le passage des paramètres en url, d'autres pas. Par exemple, la boucle <BOUCLE_articles(ARTICLES){id_rubrique=3}{statut!="refuse"}{par id_article}{0,maxarticles}{inverse}> va fonctionner comme prévu si l'url contient un parametre maxarticles, par exemple : Par contre, si on veut faire une sélection sur numéro d'article, ça ne marche plus <BOUCLE_articles(ARTICLES){id_article>dernier_article} {id_rubrique=3}{statut!="refuse"}{par id_article}{inverse}> avec ne sort plus rien car cela a été traduit dans la requête mysql par :... WHERE id_article>'dernier_article'... La requête est d'ailleurs fort longue car elle teste les articles pour voir si le numéro est bien égal à la chaîne de caractères "dernier_article"! Il y a bien une astuce mais elle vous entraîne vers la programmation... attention DANGER! <BOUCLE_articles(ARTICLES){id_article>'$GLOBALS[dernier_article]'} {id_rubrique=3}{statut!="refuse"}{par id_article}{inverse}> marchera...
8 $GLOBALS peut résoudre d'autres problèmes, surtout si vous êtes, comme nous, en SPIP 1.4. Dans cette version on ne peut passer qu'un seul paramètre à une fonction dans mes_fonctions.php3. Pour reprendre le code ci-dessus, [(#ID_MOT indy_coldroite)] correspond à une fonction: function indy_coldroite ($id_mot) {...} Dans les dernières versions, il est possible de passer plusieurs paramètres. Ainsi, une syntaxe Spip comme : [(#ID_MOT indy_coldroite{id_rubrique}{dernier_article})] correspondra à une fonction : function indy_coldroite ($id_mot, $id_rubrique, $dernier_article) {...} Comment faire si on n'a pas la dernière version? Et bien on peut ici aussi utiliser $GLOBALS La fonction ci-dessus, celle avec un seul paramètre, contiendra un code comme : function indy_coldroite ($id_mot) { $id_rubrique=$globals[id_rubrique]; $dernier_article=$globals[dernier_article];...} en espérant que tout ceci, comme à nous, ne vous servira... jamais... ;-)
1. Introduction... 2. 2. Création d'une macro autonome... 2. 3. Exécuter la macro pas à pas... 5. 4. Modifier une macro... 5
1. Introduction... 2 2. Création d'une macro autonome... 2 3. Exécuter la macro pas à pas... 5 4. Modifier une macro... 5 5. Création d'une macro associée à un formulaire... 6 6. Exécuter des actions en
Plus en détailCréation d'un site dynamique en PHP avec Dreamweaver et MySQL
Création d'un site dynamique en PHP avec Dreamweaver et MySQL 1. Création et configuration du site 1.1. Configuration de Dreamweaver Avant de commencer, il est nécessaire de connaître l'emplacement du
Plus en détailles Formulaires / Sous-Formulaires Présentation...2 1. Créer un formulaire à partir d une table...3
Présentation...2 1. Créer un formulaire à partir d une table...3 2. Les contrôles :...10 2.1 Le contrôle "Intitulé"...11 2.2 Le contrôle "Zone de Texte"...12 2.3 Le contrôle «Groupe d options»...14 2.4
Plus en détailTrier les ventes (sales order) avec Vtiger CRM
Trier les ventes (sales order) avec Vtiger CRM Dans l'activité d'une entreprise, on peut avoir besoin d'un outil pour trier les ventes, ce afin de réaliser un certain nombre de statistiques sur ces ventes,
Plus en détail1. Création d'un état... 2. 2. Création d'un état Instantané Colonnes... 3. 3. Création d'un état Instantané Tableau... 4
1. Création d'un état... 2 2. Création d'un état Instantané Colonnes... 3 3. Création d'un état Instantané Tableau... 4 4. Création d'un état avec plusieurs tables... 9 5. Modifier la structure d'un état...11
Plus en détail1. Introduction...2. 2. Création d'une requête...2
1. Introduction...2 2. Création d'une requête...2 3. Définition des critères de sélection...5 3.1 Opérateurs...5 3.2 Les Fonctions...6 3.3 Plusieurs critères portant sur des champs différents...7 3.4 Requête
Plus en détailQu'est-ce qu'un moteur de recherche. Moteur de recherche sur Internet
Initiation à la navigation sur Internet avec le moteur de recherches Google 1/ 5 Qu'est-ce qu'un moteur de recherche Moteur de recherche sur Internet Un moteur de recherche est un site Internet comme un
Plus en détail1. Qu'est-ce que SQL?... 2. 2. La maintenance des bases de données... 2. 3. Les manipulations des bases de données... 5
1. Qu'est-ce que SQL?... 2 2. La maintenance des bases de données... 2 2.1 La commande CREATE TABLE... 3 2.2 La commande ALTER TABLE... 4 2.3 La commande CREATE INDEX... 4 3. Les manipulations des bases
Plus en détailIntranet d'établissement avec Eva-web Installation configuration sur serveur 2000 ou 2003 Document pour les administrateurs
Intranet d'établissement avec Eva-web Installation configuration sur serveur 2000 ou 2003 Document pour les administrateurs Installation sur le serveur Eva-web s'appuie sur SPIP, qui lui-même utilise PHP
Plus en détailImpact des robots d indexation sur le cache de second niveau de SPIP IMBERTI Christophe - SG/SPSSI/CP2I/DO Ouest 06/06/2012 mis à jour le 05/07/2012
Impact des robots d indexation sur le cache de second niveau de SPIP IMBERTI Christophe - SG/SPSSI/CP2I/DO Ouest 06/06/2012 mis à jour le 05/07/2012 SOMMAIRE 1. LE CONSTAT... 2 2. L EXPLICATION... 2 3.
Plus en détailUtilisation de GalaxShare
Utilisation de GalaxShare Tutoriel accessible en ligne sur http://galaxair.com/tuto/aidegalaxshare.html Le Porte-Document GalaxShare est un logiciel web de partage de documents, avec une gestion fine des
Plus en détailNavigation dans Windows
Cours 03 Navigation dans Windows Comme je le disais en introduction, notre souris se révèle plus maligne qu'elle n'en a l'air. À tel point qu'il faut apprendre à la dompter (mais c'est très simple, ce
Plus en détailStockage du fichier dans une table mysql:
Stockage de fichiers dans des tables MYSQL avec PHP Rédacteur: Alain Messin CNRS UMS 2202 Admin06 30/06/2006 Le but de ce document est de donner les principes de manipulation de fichiers dans une table
Plus en détail1. Installation du Module
1 sur 10 Mise en place du Module Magento V 1.5.7 1. Installation du Module Vous pouvez installer le module de deux façons différentes, en passant par Magento Connect, ou directement via les fichiers de
Plus en détailPLAN. Qui peut faire quoi? Présentation. L'internaute Consulte le site public
SPIP est une interface en ligne gratuite permettant de créer des sites collaboratifs de façon suffisament simple pour que les élèves puissent publier leur propres articles. Il permet aussi d'héberger son
Plus en détailCréer un site Internet dynamique
Créer un site Internet dynamique avec SPIP (version 3) Document de référence Denise St-Pierre animatrice au service local du Récit 1. Qu est-ce que SPIP?... 3 2. Caractéristiques de SPIP... 3 3. Quelques
Plus en détailTraitement de texte : Quelques rappels de quelques notions de base
Traitement de texte : Quelques rappels de quelques notions de base 1 Quelques rappels sur le fonctionnement du clavier Voici quelques rappels, ou quelques appels (selon un de mes profs, quelque chose qui
Plus en détailLes calques supplémentaires. avec Magix Designer 10 et autres versions
Les calques supplémentaires avec Magix Designer 10 et autres versions Pourquoi ajouter un calque à votre page web? L'ajout d'un calque à une page web est parfois nécessaire lorsque la page est déjà bien
Plus en détailFORMATION PcVue. Mise en œuvre de WEBVUE. Journées de formation au logiciel de supervision PcVue 8.1. Lieu : Lycée Pablo Neruda Saint Martin d hères
FORMATION PcVue Mise en œuvre de WEBVUE Journées de formation au logiciel de supervision PcVue 8.1 Lieu : Lycée Pablo Neruda Saint Martin d hères Centre ressource Génie Electrique Intervenant : Enseignant
Plus en détailRÉALISATION D UN SITE DE RENCONTRE
RÉALISATION D UN SITE DE RENCONTRE Par Mathieu COUPE, Charlène DOUDOU et Stéphanie RANDRIANARIMANA Sous la coordination des professeurs d ISN du lycée Aristide Briand : Jérôme CANTALOUBE, Laurent BERNARD
Plus en détailChapitre 5 : Les procédures stockées PL/SQL
I. Introduction Une procédure ou une fonction stockée est un bloc PL/SQL nommé pouvant accepter des paramètres et être appelée. Généralement, on utilise une fonction pour calculer une valeur. Les procédures
Plus en détailWindows sur Kimsufi avec ESXi
Introduction Depuis fin 2013 les serveurs Kimsufi sont livrés avec une seule adresse IPv4 et une seule adresse IPv6. De même les distributions Windows ne sont plus disponibles à l'installation Il est cependant
Plus en détailPour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère
L'héritage et le polymorphisme en Java Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère En java, toutes les classes sont dérivée de la
Plus en détail1 - Clients 2 - Devis 3 - Commandes 4 - Livraisons 5 - Factures 6 - Avoirs 7 - Modèles
1 - Clients 2 - Devis 3 - Commandes 4 - Livraisons 5 - Factures 6 - Avoirs 7 - Modèles Page 1/16 1 - Clients Un client est un tiers qui vous passe des commandes, où pour lequel vous faîtes des devis, des
Plus en détailBTS SIO SISR3 TP 1-I Le service Web [1] Le service Web [1]
SISR3 TP 1-I Le service Web [1] Objectifs Comprendre la configuration d'un service Web Définir les principaux paramètres d'exécution du serveur Gérer les accès aux pages distribuées Mettre à disposition
Plus en détailBTS S.I.O. 2012-2013 PHP OBJET. Module SLAM4. Nom du fichier : PHPRévisionObjetV2.odt Auteur : Pierre Barais
BTS S.I.O. 2012-2013 PHP OBJET Module SLAM4 Nom du fichier : PHPRévisionObjetV2.odt Auteur : Pierre Barais Table des matières 1 But... 3 2 Les bases :... 3 3 Utilisation d'une classe : Instanciation...3
Plus en détailFaire fonctionner symfony sous wamp et windows avec des vhost. Installation de wamp
Vous avez certainement déjà souhaiter gérer plusieurs projets symfony sur votre machine après avoir installé Wamp Server. Ce n'est pas simple en apparence, un seul dossier www et des sous répertoire en
Plus en détailSoon_AdvancedCache. Module Magento SOON. Rédacteur. Relecture & validation technique. Historique des révisions
Module Magento SOON Soon_AdvancedCache Rédacteur Hervé G. Lead développeur Magento herve@agence-soon.fr AGENCE SOON 81 avenue du Bac 94210 LA VARENNE ST HILAIRE Tel : +33 (0)1 48 83 95 96 Fax : +33 (0)1
Plus en détailDossier projet isn 2015 par Victor Gregoire
Dossier projet isn 2015 par Victor Gregoire Plan: I) But du projet: créer un jeu de blackjack fonctionnel et le poster sur une page web mise en ligne. Le jeu sera developpé en C++ a l'aide de code blocks.
Plus en détailUtiliser Access ou Excel pour gérer vos données
Page 1 of 5 Microsoft Office Access Utiliser Access ou Excel pour gérer vos données S'applique à : Microsoft Office Access 2007 Masquer tout Les programmes de feuilles de calcul automatisées, tels que
Plus en détailPHP 5.4 Développez un site web dynamique et interactif
Editions ENI PHP 5.4 Développez un site web dynamique et interactif Collection Ressources Informatiques Table des matières Table des matières 1 Chapitre 1 Introduction 1. Objectif de l'ouvrage.............................................
Plus en détailMANUEL WORDPRESS. Objectif: Refonte d un site web sous Wordpress I PRE-REQUIS: 1 / Créer un backup (sauvegarde) du site:
MANUEL WORDPRESS Objectif: Refonte d un site web sous Wordpress I PRE-REQUIS: 1 / Créer un backup (sauvegarde) du site: A/ Traitement de la base de données: Pour cette étape, vous aurez besoin au préalable
Plus en détailMysql. Les requêtes préparées Prepared statements
Mysql Les requêtes préparées Prepared statements Introduction Les prepared statements côté serveur sont une des nouvelles fonctionnalités les plus intéressantes de MySQL 4.1 (récemment sorti en production
Plus en détailCOMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2
SQL Sommaire : COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2 COMMANDES DE MANIPULATION DE DONNEES... 2 COMMANDES DE CONTROLE TRANSACTIONNEL... 2 COMMANDES DE REQUETE DE DONNEES... 2 COMMANDES
Plus en détail1. accéder aux fichiers partagés
Page "SEL/JEU MEMO : les échanges sans argent" : tutoriels http://memo.communityforge.net/tutoriels_menu page Cloud_orange du SEL/JEU MEMO https://share.orange.fr/#aagmrxfte915013d9008 1. accéder aux fichiers
Plus en détailDrupal : quelques fonctionnalités (ce qu il permet, ce qu il ne permet pas)
Licence de cette présentation : Creative Common BY-NC-ND Drupal : quelques fonctionnalités (ce qu il permet, ce qu il ne permet pas) Jean-Luc Archimbaud Mathdoc Jean-Luc.Archimbaud@ujf-grenoble.fr Présentation
Plus en détailBase de données relationnelle et requêtes SQL
Base de données relationnelle et requêtes SQL 1e partie Anne-Marie Cubat Une question pour commencer : que voyez-vous? Cela reste flou Les plans de «Prison Break»? Non, cherchons ailleurs! Et de plus près,
Plus en détailManuel du composant CKForms Version 1.3.2
Manuel du composant CKForms Version 1.3.2 Ce manuel vous présente les principales fonctionnalités du composant CKForms y compris le module et le plug-in CKForms 1.3 est la nouvelle version du composant
Plus en détailA.-M. Cubat PMB - Import de notices à partir d un tableur Page 1 Source : http://amcubat.be/docpmb/import-de-notices
A.-M. Cubat PMB - Import de notices à partir d un tableur Page 1 Comme beaucoup de personnes, j'ai voulu récupérer les notices de mon ancien logiciel de gestion de bibliothèque. Vu qu'il ne prévoyait pas
Plus en détailCRÉER UNE BASE DE DONNÉES AVEC OPEN OFFICE BASE
CRÉER UNE BASE DE DONNÉES AVEC OPEN OFFICE BASE 2 ème partie : REQUÊTES Sommaire 1. Les REQUÊTES...2 1.1 Créer une requête simple...2 1.1.1 Requête de création de listage ouvrages...2 1.1.2 Procédure de
Plus en détailProjet ISN - dossier réalisé par Randrianarimanana Stéphanie. Titre du projet : Site de rencontre. le nom de notre site de rencontre : Linkymeet
Projet ISN - dossier réalisé par Randrianarimanana Stéphanie Titre du projet : Site de rencontre le nom de notre site de rencontre : Linkymeet ( tout astérisque* signifie voir annexe) l'équipe : Randrianariamanana
Plus en détailSPIP 1.9. Créer son site avec des outils libres. Michel-Marie Maudet Anne-Laure Quatravaux Dominique Quatravaux. Avec la contribution de Perline
Michel-Marie Maudet Anne-Laure Quatravaux Dominique Quatravaux SPIP 1.9 Créer son site avec des outils libres Avec la contribution de Perline, 2007, ISBN : 2-212-12002-8 Table des matières AVANT-PROPOS..........................................................
Plus en détail1. LA GESTION DES BASES DE DONNEES RELATIONNELLES
Dossier G11 - Interroger une base de données La base de données Facturation contient tout un ensemble d'informations concernant la facturation de la SAFPB (société anonyme de fabrication de produits de
Plus en détailSEO On-page. Avez-vous mis toutes les chances de votre côté pour le référencement de votre site?
SEO On-page Avez-vous mis toutes les chances de votre côté pour le référencement de votre site? I. Introduction... p.2 II. Optimisation on-page vs off-page... p.3 III. Les éléments importants de vos pages...
Plus en détailUtilisation avancée de SugarCRM Version Professional 6.5
Utilisation avancée de SugarCRM Version Professional 6.5 Document : Utilisation_avancee_SugarCRM_6-5.docx Page : 1 / 32 Sommaire Préambule... 3 I. Les rapports... 4 1. Les principes du générateur de rapports...
Plus en détailCOURS WINDEV NUMERO 3
COURS WINDEV NUMERO 3 01/02/2015 Travailler avec un fichier de données Etude du gestionnaire d analyse, Manipulation des tables mémoires, Manipulation de données, Création d états, Pré requis : Cours WinDev
Plus en détailCréation de site Internet avec Jimdo
Création de site Internet avec Jimdo Ouvrez votre navigateur internet ou Internet Explorer ou Mozilla Firefox Rendez vous sur la page http://fr.jimdo.com/ voici ce que vous voyez. 1=> 2=> 1. Le nom que
Plus en détailPartie publique / Partie privée. Site statique site dynamique. Base de données.
Partie publique / Partie privée. Partie publique - Front office / Partie privée - Back office. Utiliser l analogie avec une émission de télévision. Un journal télévisé = 1 journaliste + des reportages.
Plus en détailDécouvrir OpenOffice Comment optimiser et formater votre ebook avec OpenOffice
Comment optimiser et formater votre ebook avec OpenOffice Le blog : http://www.vendre-sur-kindle.com 1 Découvrir OpenOffice : comment optimiser et formater votre ebook avec OpenOffice 2013 Le blog : http://www.vendre-sur-kindle.com
Plus en détailInitiation à html et à la création d'un site web
Initiation à html et à la création d'un site web Introduction : Concevoir un site web consiste à définir : - l'emplacement où ce site sera hébergé - à qui ce site s'adresse - le design des pages qui le
Plus en détailComment formater votre ebook avec Open Office
Comment formater votre ebook avec Open Office 1 2012 Nicolas Boussion Tous droits réservés. Important : ce livre numérique, comme toute œuvre de l'esprit, fait l'objet de droits d'auteur. Son contenu a
Plus en détailGuide pratique du référencement de web consultant eu. Commençons par l optimisation de vos pages, ou on page
Guide pratique du référencement de web consultant eu Edition 2012 Commençons par l optimisation de vos pages, ou on page L'optimisation de vos balises, ou metatags, . 1. La balise est celle
Plus en détailUn serveur web, difficile?
Un serveur web, difficile? Belle question, mais d'abord qu'est-ce qu'un serveur web et à quoi cela peut-il servir? C'est un ensemble de programmes qui sont installés sur un ordinateur et qui servent à
Plus en détailAffectation standard Affectation modifiée (exemple)
1 sur 5 13/02/2005 11:44 Les fonctions qui vont être abordées vont vous apprendre à : comprendre l'arborescence Poste de travail, disque Répertoire ou dossier Chemin absolu, relatif utiliser l'explorateur
Plus en détailSPIP. développement de squelettes. Partie 3. Patrick VINCENT pvincent@erasme.org
SPIP développement de squelettes Partie 3 Patrick VINCENT pvincent@erasme.org Partie 1 Fonctionnement du noyau Organisation des données Les objets principaux de la BDD Manipulés par les utilisateurs :
Plus en détailEXCEL PERFECTIONNEMENT CALCULS AVANCES
TABLE DES MATIÈRES FORMATS... 2 Formats personnalisés... 2 ADRESSAGE DE CELLULES... 3 relatif & absolu Rappel... 3 Adressage par nom... 4 Valider avec la touche Entrée... 4 FONCTIONS SI-ET-OU... 6 LA FONCTION
Plus en détailPost-production ~ captation audio/vidéo ~ RMLL 2010, Bordeaux
Post-production ~ captation audio/vidéo ~ RMLL 2010, Bordeaux version 1.0 du 20 juillet 2010 Introduction Ce document détaille l'ensemble des procédures, fichiers, emplacements et comptes permettant de
Plus en détailAdWords Guide de survie
AdWords Guide de survie Avril 2011 Guide de survie AdWords. Ce guide liste dix des astuces les plus utiles pour gérer une campagne AdWords efficacement, et sans gaspiller d argent. Plan de référencement
Plus en détailGuide d'utilisation de WebEx Meeting Center avec les Salles de réunion de collaboration (Collaboration Meeting Rooms / Nuage CMR)
Guide d'utilisation de WebEx Meeting Center avec les Salles de réunion de collaboration (Collaboration Meeting Rooms / Nuage CMR) Première publication: 01 Août 2014 Dernière modification: 01 Août 2014
Plus en détailWordPress Référencement naturel (SEO) Optimiser. son référencement. Daniel Roch. Préface d Olivier Andrieu
Daniel Roch Optimiser son référencement WordPress Référencement naturel (SEO) Préface d Olivier Andrieu Groupe Eyrolles, 2013, ISBN : 978-2-212-13714-9 Table des matières AVANT-PROPOS... 1 Pourquoi ce
Plus en détailServices bancaires par Internet aux entreprises. Guide pratique pour : Rapports de solde Version 8.05.22
Services bancaires par Internet aux entreprises Guide pratique pour : Rapports de solde Version 8.05.22 Table des matières Avez-vous besoin d aide?... 3 Exigences informatiques... 4 Navigateurs acceptés...
Plus en détailSage CRM. 7.2 Guide de Portail Client
Sage CRM 7.2 Guide de Portail Client Copyright 2013 Sage Technologies Limited, éditeur de ce produit. Tous droits réservés. Il est interdit de copier, photocopier, reproduire, traduire, copier sur microfilm,
Plus en détailCMS Open Source : état de l'art et méthodologie de choix
CMS Open Source : état de l'art et méthodologie de choix Définition d'un CMS (wikipedia) Les CMS sont une famille de logiciel de conception et de mise à jour dynamique de sites web partageant les fonctionnalités
Plus en détailHibernate vs. le Cloud Computing
Hibernate vs. le Cloud Computing Qui suis-je? Julien Dubois Co-auteur de «Spring par la pratique» Ancien de SpringSource Directeur du consulting chez Ippon Technologies Suivez-moi sur Twitter : @juliendubois
Plus en détailMandataires, caches et filtres
Mandataires, caches et filtres Pascal AUBRY IFSIC - Université de Rennes 1 Pascal.Aubry@univ-rennes1.fr Plan : mandataires caches filtrage serveur de proxy exemple de mise en œuvre Mandataire (proxy) Mandataire
Plus en détailDidacticiel de mise à jour Web
Didacticiel de mise à jour Web Copyright 1995-2012 Esri All rights reserved. Table of Contents Didacticiel : Création d'une application de mise à jour Web.................. 0 Copyright 1995-2012 Esri.
Plus en détailCréer un site Web : mode d emploi Sous SPIP, avec le squelette «établissement» de l académie de Versailles
Mission TICE - académie de Versailles 7 nov. 2008 Créer un site Web : mode d emploi Sous SPIP, avec le squelette «établissement» de l académie de Versailles Anne-Cécile Franc Mission TICE académie de Versailles
Plus en détailEncryptions, compression et partitionnement des données
Encryptions, compression et partitionnement des données Version 1.0 Grégory CASANOVA 2 Compression, encryption et partitionnement des données Sommaire 1 Introduction... 3 2 Encryption transparente des
Plus en détailSécurité des sites Web Pas un cours un recueil du net. INF340 Jean-François Berdjugin
Sécurité des sites Web Pas un cours un recueil du net INF340 Jean-François Berdjugin Vulnérabilité Définition (wikipédia) : Dans le domaine de la sécurité informatique, une vulnérabilité est une faiblesse
Plus en détailRAPPORT D'OPTIMISATION DU SITE INTERNET
RAPPORT D'OPTIMISATION DU SITE INTERNET WWW.EPICURIUM.FR Réalisé par Armandine Rue et Virginie Gatin Introduction Dans le cadre du cours de web-marketing, nous avons analysé le site internet d Epicurium
Plus en détailSQL MAP. Etude d un logiciel SQL Injection
Introduction Ce TP a pour but d analyser un outil d injection SQL, comprendre les vulnérabilités d une BD et de mettre en œuvre une attaque par injection SQL. Prise en main du logiciel SQLMap est un outil
Plus en détailSauvegarde des données du scribe sur disque USB
Sauvegarde des données du scribe sur disque USB Objectif : Palier aux dysfonctionnements provoqués par une sauvegarde «Bacula» proposée dans l'ead du Scribe. Réaliser une sauvegarde des données du serveur
Plus en détailGUIDE D UTILISATION CRÉER SON SITE WEB - PROJET RESCOL
GUIDE D UTILISATION CRÉER SON SITE WEB - PROJET RESCOL 1. Avant de commencer Il existe plusieurs éditeurs de pages Web qui vous permettent de construire un site Web. Nous vous conseillons toutefois de
Plus en détailGUIDE D UTILISATION DU BACKOFFICE
GUIDE D UTILISATION DU BACKOFFICE 1. Modifier les pages du site : - Aller dans l onglet «PAGE HTML», puis «Liste des pages HTML» - Pour visualiser votre page, cliquer sur le nom écrit en vert, dans la
Plus en détailPublipostage avec Calc
Auto-formation sur OpenOffice.org 2.0 par Cyril Beaussier Version 1.0.2 - Avril 2006 Publipostage avec Calc Sommaire Introduction... 2 Présentation... 3 Notions... 4 Les données... 5 Lettre type... 7 Création
Plus en détailGestion de projet. GanttProject Didacticiel V1.0. 23 novembre 2013. Gérard Gervois Frédéric Giamarchi
Gestion de projet GanttProject Didacticiel V1.0 23 novembre 2013 Gérard Gervois Frédéric Giamarchi Département G.E.I.I. I.U.T. de Nîmes Université Montpellier II Présentation GanttProject est un logiciel
Plus en détailwww.evogue.fr SUPPORT DE COURS / PHP PARTIE 3
L i a m T A R D I E U www.evogue.fr SUPPORT DE COURS / PHP PARTIE 3 Sommaire Sommaire... 2 Eléments initiaux... 3 Base de données... 3 Tables... 4 membres... 4 commandes... 4 articles... 4 details_commandes...
Plus en détailMode d'emploi détaillé
Mode d'emploi détaillé Sommaire Accéder au site de la liste les_vpah Contacter le propriétaire Envoyer des messages Lire les archives Rechercher dans les archives Gérer ses préférences Partager des fichiers
Plus en détailGuide utilisateur i-milo >> Décisionnel
Guide utilisateur i-milo >> Décisionnel Suivi des changements Version Date Chapitres impactés Opération effectuées sur le document 01 28/02/2014 Tous Initialisation du document pour les utilisateurs avancés
Plus en détailGoogle AdWords. Comment faire? 1 Chantal Gomez pour la CCI - Angers - 25 septembre 2014. mercredi 24 septembre 14
Google AdWords Comment faire? 1 Chantal Gomez pour la CCI - Angers - 25 septembre 2014 Google AdWords Comment faire? 1 - Faire de la publicité sur Google grâce aux liens sponsorisés AdWords Comprendre
Plus en détailPHP 4 PARTIE : BASE DE DONNEES
PHP 4 PARTIE : BASE DE DONNEES 1. Introduction 2. Présentation de MySQL 3. Principe 4. Connexion 5. Interrogation 6. Extraction des données 7. Fonctions de services 8. Traitement des erreurs 9. Travaux
Plus en détailEn quoi consiste le REFERENCEMENT de votre site?
1 En quoi consiste le REFERENCEMENT de votre site? Ce document se propose de vous éclairer sur les enjeux du référencement et les solutions proposées par MediaPro DX pour y faire face. MediaPro DX est
Plus en détailLouer et utiliser un Hébergement Mutualisé OVH (Version 1.0)
Louer et utiliser un Hébergement Mutualisé OVH (Version 1.0) Page 1/27 Table des matières 1.L'hébergement mutualisé c'est quoi?...3 2.Quel hébergeur choisir?...4 3.Louer un hébergement mutualisé chez OVH...4
Plus en détailUne ergonomie intuitive
Une ergonomie intuitive Les solutions de la ligne PME offrent une interface de travail proche des usages quotidiens en informatique. Leur ergonomie intuitive facilite la prise en main du logiciel. Une
Plus en détailPaginer les données côté serveur, mettre en cache côté client
Paginer les données côté serveur, mettre en cache côté client Vous voulez sélectionner des lignes dans une table, mais celle-ci comporte trop de lignes pour qu il soit réaliste de les ramener en une seule
Plus en détailOSIRIS/ Valorisation des données PORTAIL BO MANUEL UTILISATEUR
OSIRIS/ Valorisation des données PORTAIL BO MANUEL UTILISATEUR HISTORIQUE DES VERSIONS Vers. Date Rédacteur Objet de la modification 1.00 Juillet 2007 GTBO_AGRI Création du document 1.01 Février 2009 SAMOA
Plus en détailPHP et mysql. Code: php_mysql. Olivier Clavel - Daniel K. Schneider - Patrick Jermann - Vivian Synteta Version: 0.9 (modifié le 13/3/01 par VS)
PHP et mysql php_mysql PHP et mysql Code: php_mysql Originaux url: http://tecfa.unige.ch/guides/tie/html/php-mysql/php-mysql.html url: http://tecfa.unige.ch/guides/tie/pdf/files/php-mysql.pdf Auteurs et
Plus en détailPHP 5. La base de données MySql. A. Belaïd 1
PHP 5 La base de données MySql A. Belaïd 1 Base de données C est quoi une base de données? Une base de données contient une ou plusieurs tables, chaque table ayant un ou plusieurs enregistrements Exemple
Plus en détailInstallation d un serveur HTTP (Hypertext Transfer Protocol) sous Débian 6
Installation d un serveur HTTP (Hypertext Transfer Protocol) sous Débian 6 1 BERNIER François http://astronomie-astrophotographie.fr Table des matières Installation d un serveur HTTP (Hypertext Transfer
Plus en détailD'UN THÉORÈME NOUVEAU
DÉMONSTRATION D'UN THÉORÈME NOUVEAU CONCERNANT LES NOMBRES PREMIERS 1. (Nouveaux Mémoires de l'académie royale des Sciences et Belles-Lettres de Berlin, année 1771.) 1. Je viens de trouver, dans un excellent
Plus en détailContactForm et ContactFormLight - Gestionnaires de formulaire pour Prestashop Edité par ARETMIC S.A.
ContactForm et ContactFormLight - Gestionnaires de formulaire pour Prestashop Edité par ARETMIC S.A. - 1 - PREAMBULE Les conditions générales d utilisation détaillant l ensemble des dispositions applicables
Plus en détailPanorama des CMS open sources. Sylvain Ferrand, CMAP École Polytechnique Journées Mathrice, Poitiers, 19 mars 2008
Panorama des CMS open sources Sylvain Ferrand, CMAP École Polytechnique Journées Mathrice, Poitiers, 19 mars 2008 Table des matières Qu'est ce qu'un CMS Pourquoi utiliser un CMS Des CMS génériques SPIP
Plus en détailINTRODUCTION A JAVA. Fichier en langage machine Exécutable
INTRODUCTION A JAVA JAVA est un langage orienté-objet pur. Il ressemble beaucoup à C++ au niveau de la syntaxe. En revanche, ces deux langages sont très différents dans leur structure (organisation du
Plus en détailA.-M. Cubat PMB - Import de lecteurs - Généralités Page 1 Source : http://amcubat.be/docpmb/import-de-lecteurs
A.-M. Cubat PMB - Import de lecteurs - Généralités Page 1 Diverses méthodes d import de lecteurs Les données (noms, prénoms, adresses. des lecteurs) proviennent en général du secrétariat, et se trouvent
Plus en détailCréation d'un site neutre et présentation des éléments de la page d'accueil
Création d'un site neutre et présentation des éléments de la page d'accueil Alkante Page 1/8 Table des matières Préambule... 3 Création d'un site neutre... 3 Rubriques de pages éditoriales...5 Contenu
Plus en détailLa Clé informatique. Formation Excel XP Aide-mémoire
La Clé informatique Formation Excel XP Aide-mémoire Septembre 2005 Table des matières Qu est-ce que le logiciel Microsoft Excel?... 3 Classeur... 4 Cellule... 5 Barre d outil dans Excel...6 Fonctions habituelles
Plus en détailUNE DÉLIVRABILITÉ ÉCLATANTE EN 90 JOURS!
UNE DÉLIVRABILITÉ ÉCLATANTE EN 90 JOURS! Introduction Bienvenue sur Cybermailing! Votre compte Cybermailing avec adresse IP dédiée vous permet un contrôle total sur la délivrabilité de vos emails, c est-à-dire
Plus en détail