Class: DataLogic
Source Location: /lodel/scripts/logic/class.data.php
Class DataLogic
Class Overview
|
Classe de logique permettant de gérer les backup et import de données et de ME
Located in /lodel/scripts/logic/class.data.php [line 59]
Author(s):
- Pierre-Alain Mignot
- Jean Lamy
- Sophie Malafosse
API Tags:
Information Tags:
| Copyright: | 2003, Ghislain Picard, Marin Dacos, Luc Santeramo, Nicolas Nutten, Anne Gentil-Beccot |
| Copyright: | 2001-2002, Ghislain Picard, Marin Dacos |
| Copyright: | 2004, Ghislain Picard, Marin Dacos, Luc Santeramo, Anne Gentil-Beccot, Bruno Cénou |
| Copyright: | 2005, Ghislain Picard, Marin Dacos, Luc Santeramo, Gautier Poupeau, Jean Lamy, Bruno Cénou |
| Copyright: | 2006, Marin Dacos, Luc Santeramo, Bruno Cénou, Jean Lamy, Mikaël Cixous, Sophie Malafosse |
| Copyright: | 2007, Marin Dacos, Bruno Cénou, Sophie Malafosse, Pierre-Alain Mignot |
| Since: | Classe ajoutée depuis la version 0.8 |
|
Properties
|
Methods
|
Property Summary
| string |
$filePrefix |
Prefix du fichier (pour l'import de ME et l'import de données) |
| string |
$fileRegexp |
Expression utilisée pour filtrer les fichiers pour un import |
| array |
$_changedFields |
Liste des champs différents entre chaque table SQL/XML |
| array |
$_changedTypes |
Tableau des types (entité ou entrée) n'ayant pas trouvé leur équivalent dans le XML |
| array |
$_fieldsToKeep |
Tableau des champs absent du XML mais présent dans la base |
| array |
$_sql |
Tableau des requêtes à effectuer |
| array |
$_tables |
Tables correspondantes au ME |
| array |
$_tableToCreate |
Tables à créer (présentes dans le XML et non dans la base) |
Method Summary
| le |
_backupME() |
Crée un fichier ZIP du ME contenant le fichier SQL/XML et éventuellement les répertoires images, css, js et tpl et lodel/icons |
| void |
_checkFiles() |
Vérifie les fichiers CACHE et .htaccess et recrée les .htaccess. |
| void |
_dump() |
Dump SQL d'un site donné |
| true |
_execute_dump() |
Execute un dump (fichier SQL) pointé par $url |
| void |
_parseSQL() |
Récupère la structure des tables du ME |
| void |
_parseXML() |
Parse le fichier XML à l'import du ME |
Properties
Extension du fichier d'import
Prefix du fichier (pour l'import de ME et l'import de données)
Expression utilisée pour filtrer les fichiers pour un import
Liste des champs différents entre chaque table SQL/XML
API Tags:
Liste des tables différentes entre SQL/XML
API Tags:
Tableau des types (entité ou entrée) n'ayant pas trouvé leur équivalent dans le XML
API Tags:
Tableau des champs absent du XML mais présent dans la base
API Tags:
Tables enregistrées lors du parsage du fichier XML
API Tags:
Tableau des requêtes à effectuer
API Tags:
Structure de la base SQL
API Tags:
Tables correspondantes au ME
API Tags:
Tables à créer (présentes dans le XML et non dans la base)
API Tags:
Donnés récupérées dans le XML
API Tags:
Structure de la base XML
API Tags:
Methods
Constructeur
Interdit l'accès aux utilisateurs qui ne sont pas ADMIN
void backupAction(
&$context,
&$error, array
$context, array
$error
)
|
|
Sauvegarde des données
Fait un dump de la base de données du site et si indiqué sauve aussi les fichiers annexes et source.
Parameters:
|
array |
$context: |
le contexte passé par référence |
|
array |
$error: |
les éventuelles erreurs, passées par référence |
|
|
&$context: |
|
|
|
&$error: |
|
le backupmodelAction(
&$context,
&$error, array
$context, array
$error
)
|
|
Sauvegarde du modèle éditorial
Sauve les tables du ME dans un dump SQL (table lodel + table créées). Si demandé inclut aussi les templates, les css, les images et les scripts javascript. Le fichier créé est de la forme <em>model-site-date.zip</em>.
Parameters:
|
array |
$context: |
le contexte passé par référence |
|
array |
$error: |
les éventuelles erreurs, passées par référence |
|
|
&$context: |
|
|
|
&$error: |
|
API Tags:
| Return: | nom du template utilisé pour cette action : backupmodel |
void backupxmlmodelAction(
&$context,
&$error, array
$context, array
$error
)
|
|
Backup du ME sous format XML
Parameters:
|
array |
$context: |
le contexte passé par référence |
|
array |
$error: |
les éventuelles erreurs, passées par référence |
|
|
&$context: |
|
|
|
&$error: |
|
API Tags:
le globalbackupAction(
&$context,
&$error, array
$context, array
$error
)
|
|
Backup global des données. Seulement autorisé pour un admin lodel
Cela crée un backup de la base principale mais aussi de tous les sites
Parameters:
|
array |
$context: |
le contexte passé par référence |
|
array |
$error: |
les éventuelles erreurs, passées par référence |
|
|
&$context: |
|
|
|
&$error: |
|
API Tags:
| Return: | nom du template utilisé pour cette action : backup |
Information Tags:
| Todo: | Trouver une alternative à la commande système tar |
void importAction(
&$context,
&$error, array
$context, array
$error
)
|
|
Importation des données
Cette fonction importe les données issus d'un backup de lodel : le dump SQL, les fichiers associés (si ils ont été sauvegardés).
Parameters:
|
array |
$context: |
le contexte passé par référence |
|
array |
$error: |
les éventuelles erreur, passées par référence |
|
|
&$context: |
|
|
|
&$error: |
|
le importmodelAction(
&$context,
&$error, array
$context, array
$error
)
|
|
Importation du modèle éditorial
Importe les données contenu dans un fichier ZIP de sauvegarde du ME
Parameters:
|
array |
$context: |
le contexte passé par référence |
|
array |
$error: |
les éventuelles erreurs, passées par référence |
|
|
&$context: |
|
|
|
&$error: |
|
API Tags:
| Return: | nom du template utilisé pour cette action : importmodel |
string importxmlmodelAction(
&$context,
&$error, array
$context, array
$error
)
|
|
Met à jour le ME en fonction d'un fichier XML
Parameters:
|
array |
$context: |
le contexte passé par référence |
|
array |
$error: |
les éventuelles erreurs, passées par référence |
|
|
&$context: |
|
|
|
&$error: |
|
API Tags:
| Return: | nom du template à afficher |
| Access: | public |
le _backupME(
string
$sqlfile, [array
$dirs = array()]
)
|
|
Crée un fichier ZIP du ME contenant le fichier SQL/XML et éventuellement les répertoires images, css, js et tpl et lodel/icons
Parameters:
|
string |
$sqlfile: |
le fichier dump SQL/XML |
|
array |
$dirs: |
la liste des répertoires à inclure. |
API Tags:
| Return: | nom du fichier ZIP |
| Access: | private |
void _checkFiles(
&$context, array
$context
)
|
|
Vérifie les fichiers CACHE et .htaccess et recrée les .htaccess.
Parameters:
|
array |
$context: |
le contexte passé par référence. |
|
|
&$context: |
|
void _dump(
string
$site, string
$outfile,
&$error, [resource
$fh = 0], array
$error
)
|
|
Dump SQL d'un site donné
Parameters:
|
string |
$site: |
le nom du site |
|
string |
$outfile: |
le fichier dans lequel écrire le dump SQL |
|
resource |
$fh: |
le descripteur de fichier (par défaut 0) |
|
array |
$error: |
tableau des erreurs |
|
|
&$error: |
|
API Tags:
void _executeSQL(
[bool
$differed = false]
)
|
|
Execute une série de requêtes SQL
Parameters:
|
bool |
$differed: |
doit-on effectuer les requêtes différées ($this->_sql['differed']) ou les requêtes en cours ($this->_sql) ? |
API Tags:
true _execute_dump(
string
$url, [
$ignoreerrors = false], boolean
$ignoreerrors.
)
|
|
Execute un dump (fichier SQL) pointé par $url
Parameters:
|
string |
$url: |
le fichier SQL |
|
boolean |
$ignoreerrors.: |
false par défaut |
|
|
$ignoreerrors: |
|
API Tags:
| Return: | si le dump a bien été executé |
| Access: | private |
Information Tags:
| Todo: | vérifier que cette fonction ne prends pas trop de place en mémoire. |
le _extractImport(
&$context, string
$footprint, array
$context, string
$ext
)
|
|
Extraction du fichier ZIP d'import du ME
Parameters:
|
string |
$footprint: |
le prefix qui doit être contenu dans le nom du fichier |
|
array |
$context: |
le contexte passé par référence |
|
string |
$ext: |
l'extension du fichier, par défaut .zip |
|
|
&$context: |
|
API Tags:
| Return: | nom du fichier d'import |
void _generateXML(
&$context, array
$context
)
|
|
Génération du ME XML
Parameters:
|
array |
$context: |
le contexte passé par référence |
|
|
&$context: |
|
API Tags:
Récupération des tables du ME
Cette fonction stock dans $this->_tables les noms des tables du ME (statiques ou dynamiques)
API Tags:
void _getModifiedStruct(
string
$table
)
|
|
Compare la structure XML et SQL du ME
Stock la comparaison dans $this->_changedFields pour chaque table
Parameters:
|
string |
$table: |
la table courante |
API Tags:
un _isimportmodelallowed(
)
|
|
Est-ce que l'on peut importer un ME ?
Vérifie si le site est vide, pour permettre l'import d'un ME
API Tags:
| Return: | booleen false si impossible, le nom de la table sinon |
| Access: | private |
void _manageFields(
&$context,
&$error, array
$context, array
$error
)
|
|
Met à jour la base de données SQL
Modifie ou crée les champs des tables
Parameters:
|
array |
$context: |
le contexte passé par référence |
|
array |
$error: |
les éventuelles erreurs, passées par référence |
|
|
&$context: |
|
|
|
&$error: |
|
API Tags:
void _manageTables(
&$context,
&$error, array
$context, array
$error
)
|
|
Met à jour la base de données SQL
Modifie ou crée les tables et insère les éventuelles données
Parameters:
|
array |
$context: |
le contexte passé par référence |
|
array |
$error: |
les éventuelles erreurs, passées par référence |
|
|
&$context: |
|
|
|
&$error: |
|
API Tags:
void _parseSQL(
array
$tables
)
|
|
Récupère la structure des tables du ME
Stock la structure dans $this->_sqlStruct
Parameters:
|
array |
$tables: |
on peut spécifier quelles tables en particulier parser |
API Tags:
void _parseXML(
string
$file,
&$error, string
$error
)
|
|
Parse le fichier XML à l'import du ME
Stock la structure dans $this->_xmlStruct et les éventuelles données dans $this->_xmlDatas
Parameters:
|
string |
$file: |
lien vers le fichier XML |
|
string |
$error: |
erreur passée en référence |
|
|
&$error: |
|
API Tags:
void _reinitobjetstable(
)
|
|
Réinitialisation de la table des objets
void _updateDatabase(
&$context,
&$error, array
$context, array
$error
)
|
|
Met à jour la base de données SQL
Termine la mise à jour de la base (clés, options des tables et éventuelles données)
Parameters:
|
array |
$context: |
le contexte passé par référence |
|
array |
$error: |
les éventuelles erreurs, passées par référence |
|
|
&$context: |
|
|
|
&$error: |
|
API Tags:
void _updateTypes(
[$datas
$datas = array()], [$error
&$error = '']
)
|
|
Met à jour la base de données SQL
Ajuste les idtypes après import XML du ME
Parameters:
|
$datas |
$datas: |
optionnel : quand présent, MAJ des types suivant choix utilisateur |
|
$error |
&$error: |
erreur passée en référence |
API Tags:
|
|