27/11/16Nouvelle option dans les paramètres. Il est possible de configurer les urls du site et d'activer ou désactiver l'url rewriting.
20/11/16Corrections diverses. Ajout d'un fichier de gestion des requêtes Ajax dans la partie public du site internet.
14/11/16Petit ménage dans le code de la page de gestion des thèmes. Il est plus aisé de créer un thème à partir de 0.
Cette page va encore évoluer.
Le fichier info.json a été modifier. Désormais les gabarits sont enregistrés dans un clé html au lieu de template :
"html":{"1":{"id":"1","file":"template_1.html","title":"Gabarit page d'accueil"}}
12/11/16La fonction TextEditor (qui renvoit un éditeur de texte HTML) ajoute automatiquement le fichier Javascript nécessaire. Les modules qui y font appel n'ont plus besoin d'y penser dans les fichier info.json
10/11/16Supression de la fonction ModLibInclude qui chargait des fichiers présent dan le dossier lib/ du module. Elle est remplacé par la fonction ModFileGet(id:int, fichier:string, public:boolean, include:boolean).
29/10/16Correction d'un petit bug dans la page modules. Le dernier module de la page n'était pas correctement affiché.
27/10/16Installation automatique des gabarits d'affichage.
Désormais lors de l'installation ou de la mise à jour d'un module, les gabarits de ce module sont ajoutés automatiquement.
Cela simplifie grandement l'utilisation de nouveau module, il n'est plus nécessaire de créer le gabarit, il est déjà en place !
24/10/16Suppression de la page de paramétrage Coordonnées. Cette page n'avait pas de sens et faisait doublon avec ce que le thème peut proposer.
Suppression des paramètres publiques : ['coordonnee'] et ['logo'].
19/10/16Les modules peuvent déplacer le fichier info.json dans le dossier public pour éviter les doublon.
16/10/16Correction de type Notice dans la fonction ImgCharge
01/10/16Ajout de deux fonctions pour gérer du BBCode :
- BBCodeGetEditor : fonction pour afficher un champ textarea avec des boutons pour utiliser des balises BBCode.
- BBCode2Html : fonction qui converti un texte avec des balises BBCode en balises HTML.
30/09/16Correction d'un bug dans le fonction TpltSetTextBetweenTag. Cette fonction remplace le contenu entre deux tags (balises). La fonction s'arrêtait au premier remplacement. Désormais elle peut remplacer plusieurs jeux de tags / balises en une fois.
28/09/16Ajout d'une fonction convertissant une URL de service vidéo en lecteur. Fonctionne avec youtube, youtu.be, dailymotion, dai.ly, vimeo
16/09/16La fonction ImgRedimensionne() conserve les couches alpha des fichiers PNG et GIF.
02/09/16Correction d'un bug sur la modification de gabarit. En sélectionnant un tag et en cliquant sur "Ajouter ce tag", ils n'étaient pas insérés dans le bon gabarit.
01/09/16L'interface d'édition a une nouvelle fonction pour ajouter des liens vers le contenu du CMS.
31/08/16Les entrées vides ne sont plus affichées dans les fichiers de logs
26/08/16Modification de la fonction DbDelete. Elle prend un paramètre facultatif supplémentaire :
function DbDelete($aTable, $aCol, $aValue, $aCond='AND');
Le paramètre $aCond permet de définir le type de condition à appliquer : AND (par défaut) ou OR
01/08/16Correction de quelques erreurs PHP sur la fonction qui renvoit le type d'une image : ImgGetType
07/07/16Correction d'un bug à l'installation d'un nouveau module. Le module était correctement installé et initialisé, mais la fonction ne renvoyait pas true.
28/06/16Correctement d'erreurs de type Notice et Warning dans le fichier cron.php
25/06/16Suppression des fichiers "admin/php/htmlEntete.php" et "admin/php/htmlPiedPage.php"
Le thème de l'administration est désormais un fichier HTML avec des balises.
20/05/16la rubrique "Paramètres" est accessible aux administrateurs. Avant elle n'était accessible qu'au super administrateur.
16/05/16DbStmtBinParam : prise en compte des liste de paramètres ($aValue) vide
12/05/16Ajout d'un nouveau paramètre dans les paramètres d'un modules. Il est possible de spécifier qui peut modifier les paramètres d'un module. Un utilisateur peut donc accéder à un module, mais pas à ses paramètres.
02/05/16Modification du fichier. Compatible avec les tâches CRON de OVH.
18/04/16Les modules sont affichés par ordre alphabétique dans la liste des modules.
20/03/16Modification dans la fonction d'ouverture de module. Les droits utilisateurs sont vérifiés à l'ouverture. En mode intégration le module est ouvert même si l'utilisateur n'a pas les droits sur ce module.
10/02/16Les paramètres d'un module effacé sont correctement supprimés.
31/01/16Ajout du paramètre : $gParamSys['siteNotifEmail'] qui définit l'adresse email pour les envois de notification par les modules.
10/01/16Il est possible de définir le module à ouvrir par défaut à la connexion pour chaque type de droit.
01/01/16Meilleurs voeux
16/11/15Le système ne gère plus les cookies de connexion. C'est le module membre qui se charge de la gestion de la connexion de A à Z...
26/10/15Changement dans le système de mise à jour du système. Le serveur envoie correctement les fichiers mis à jour plutôt que l'ensemble.
07/10/15La fonction ImgRedimensionne vérifie :
- si l'image n'est pas trop lourde pour être ouverte (comparaison avec ini_get('memory_limit'));
- si l'image est plus grande que les dimensions souhaitées.
28/09/15L'initialisation du module "Membres" (id: 1) demande un compte administrateur ou super administrateur. Les autres types de comptes ne peuvent plus initialiser ou supprimer ce module.
24/09/15Nouvelles fonctionnalités pour les menus dynamiques :
Les modules peuvent désormais envoyer un contenu HTML qui sera affiché tel quel.
27/08/15Suppression de la variable 'table' dans le fichier info.json. C'était un reste d'une vieille fonction qui vérifiait l'existence des tables (supprimé le 26/11/13).
Les tables sont définies dans le fichier install.json.
26/08/15Dans les rubriques, le lien de la rubrique accueil est l'adresse du site, afin d'éviter le duplicate content.
25/08/15La fonction ModContentElementAdd affiche des titres de 60 caractères.
07/08/15Les fichiers d'installation des modules sont désormais enregistré en JSON.
06/08/15Modification dans le système de mise à jour du CMS. Dans Paramètres / Mise à jour, la page propose désormais en un clic de mettre à jours le noyau Core et les modules.
15/07/15Changement dans la page d'édition du thème. Il est possible de créer, d'éditer et de supprimer tous les fichiers. Manque encore la modification des infos générales du thème.
04/07/15Les fonctions de connexion et de vérification de connexion ont été déplacé vers le module membre. Ceci permettra à terme d'utiliser d'autre modules de gestion des utilisateurs.
02/07/15Les tags sont à nouveau insérés correctement dans l'éditeur CodeMirror
30/06/15Modification du fichier configuration.php. Quelques corrections de bug dans ce fichier.
28/06/15Modification dans le fichier funcDbMySqli.php. Si la connexion a la base de données échoue, le code ne s'arrête plus. Dans le futur il sera possible de fonctionner sans base de données (cela dépendra des modules).
04/02/15Ajout de l'éditeur CodeMirror pour la coloration syntaxique des gabarits de modules et la modification du thème.
26/01/15Ajout d'une page récapitulative des licences de l'application. Accessible depuis la page de paramètres.
25/01/15Avec un design adaptatif il n'est plus nécessaire de faire une distinction entre les feuilles de style et fichiers javascript pour mobile et les autres dans la description du thème :
- Suppression des paramètres cssDesk, jsMobi. Ils sont remplacé par css.
- Suppression des paramètres jsDesk, jsMobi. Ils sont remplacé par js.
24/01/15Modifications dans le système de mise à jour des fichiers Core.
03/01/15- La zone d'administration est multi-langue. Français et anglais actuellement.
- Les modules sont également multi-langues dans la version d'administration.
01/01/15Joyeuse année
29/09/14- le fichier /param/param.php qui contient les chemins d'accès de base du site est désormais enregistré au format JSON sous les noms /param/param.json
28/09/14- le fichier acces.php est désormais enregistré au format JSON sous le nom acces.json
24/09/14- les fichiers de paramètres /param[id]/paramUsrPub.php, et /param[id]/paramUsrPriv.php sont désormais enregistré au format JSON sous les noms /param[id]/paramUsrPub.json et /param[id]/paramUsrPriv.json
- /param[id]/module.php devient /param[id]/module.json par soucis de cohérence. Le fichier était déjà enregistré en JSON.
- ajout d'un script de maintenance après l'installation d'une mise à jour du système.
22/09/14- suppression du paramètre $gTemplate['contentWidth'] : ce paramètre servait à définir la dimension de la zone de contenu pour les thèmes. Mais avec un design adaptatif, ça n'est plus nécessaire.
21/05/14- Le CMS Cresel propose de chercher les mise à jour des modules après une mise à jour CoRe.
16/05/14- Module rubrique : la page d'accueil est différencié des autres rubriques. Elle est sur fond bleu.
- Module rubrique : en ajoutant une nouvelle rubrique la zone de menu pour le bouton "créer une autre rubrique" à côté de " rajoute la rubrique dans la même zone de menu.
- Dans les formulaires les boutons Enregistrer / Réinitialiser peuvent être afficher constamment. Cela évite d'avoir à chercher et à défiler l'ensemble de la page pour enregistrer.
20/04/14Changement dans les fichiers du thème. Le thème contient désormais le code HTML complet de la page. Dans les versions précédentes le CMS ajoutait automatiquement les balise <html>, <head>, <body> intégrait les fichiers CSS et JS.
Cela ne laissait aucune marge de manoeuvre sur le type de fichier et les balises méta à intégrer.
De plus de nouvelles balises pour le thème ont été ajouté :
- documentLang : langue du document.
<html lang="{{type=>documentLang}}">
- documentTitle : titre du document.
<title>{{type=>documentTitle}}</title>
- documentDescription : balise meta description du document.
<meta name="description" lang="fr" content="{{type=>documentDescription}}" />
- documentKeyword : balise meta keyword du document.
<meta name="keywords" content="{{type=>documentKeyword}}" />
- documentAuthor : balise author du document.
<meta name="author" content="{{type=>documentAuthor}}" />
- documentGenerator : balise meta geneator du document.
<meta name="generator" content="{{type=>documentGenerator}}" />
- documentFavicon : langue du document.
<link rel="icon" href="{{type=>documentFavicon}}" type="image/x-icon" />
- documentAppleTouchIcon : langue du document.
<link rel="apple-touch-icon" href="{{type=>documentAppleTouchIcon}}" />
- documentCSS : fichier CSS du document.
{{type=>documentCSS, mask=><link rel="stylesheet" type="text/css" href="[link]" />}}
- documentJS : fichier JS du document.
{{type=>documentJS, mask=><script type="text/javascript" src="[link]"></script>}}
10/04/14La fonction de mise à jour affiche un petit texte d'information avant la mise à jour.
04/04/2014Suppression de la variable protected $dbLink; sur les modules
Dorénavant les modules n'ont plus de lien direct avec la base de données.
Ils doivent passer par les fonctions disponibles dans le fichier qui gère les accès à la base de données
- DbSelect($aTable, $aCol='*', $aCond='', $aOrder='', $aLimit='');
- DbFetch($aRes);
- DbInsert($aTable, $aValue);
- DbUpdate($aTable, $aValue, $aCond='', $aLimit='');
Ces fonctions gèrent les appels vers la base de données courante.
Les fonctions DbInsert et DbUpdate préparent les requêtes et sécurisent l'écriture dans la table avec des requetes préparées MySQLi.
31/03/14Changement dans la fonction StrMaxLEngth. Cette fonction gère mieux les textes en UTF-8
25/03/14- Ajout d'un système de code de sécurité (captcha) utilisable par tous les modules
FormCaptcha($aName);
FormCaptchaValueFromPost($aName);
FormCaptcha permet d'initialiser le captcha, de générer l'image et d'enregistrer le texte dans une variable de session. FormCaptchaValueFromPost permet de vérifier que le captcha a été correctement tapé par l'utilisateur.
22/03/14- compatible PHP 5.4 et magic_quote désactivé
- réécriture de la gestion des urls :
Avant : fr/m10,actu-25-Petite--mise--a-jour-des-CSS.html ([Lang]/m[Id module],[titre].html)
Après : fr/32,10,actu-25-Petite-mise-a-jour-des-CSS.html ([Lang]/[Id rubrique],[Id module],[titre].html)
- Modification de la fonction PathGetHRef. Le mode ('r' ou 'm') n'existe plus. Dorénavant l'id de la rubrique est constamment affichée dans les urls.
($aDo, $aId='', $aMode='r', $aPage='')
($aDo, $aTitle, $aModId='', $aPage='', $aRubId='')
- Modification de la liste de contenu ($gModContentLst). Elle peut recevoir une clé texte qui sera utilisé dans la gestion des rubriques.
Avant : $gModContentLst[0] = array('title'=>'Page de connexion');
Après : $gModContentLst['login'] = array('title'=>'Page de connexion');
- Modification de la liste de gestion des rubrique dynamique. Comme la liste de contenu, elle peut recevoir une clé texte :
Avant : $gModDynamicMenuLst[0] = 'Titres des 5 dernières actualités';
Après : $gModDynamicMenuLst['last5News'] = 'Titres des 5 dernières actualités';
- Modification de la fonction GetContent() pour les modules public :
public function GetContent($aDo, $aUser)
- La fonction ModOpen enregistre le module ouvert automatiquement
- ModJsLstGet et ModCssLstGet ont été modifié. Les deux fonctions recoivent une nouveau paramètre optionnel
ModJsLstGet($aId, $aMode, $aPub, &$aVar)
$aId = (int) identifiant du module
$aPub = (boolean) mode public ou privé
$aMode = (string) 'mod', 'integration', 'cron', 'home'
$aVar = (array) nom de la variable dans laquelle les chemins seront ajoutés
- Les modules sont mieux gérés quelque soit leurs modes.
10/03/14- Modification de la fonction PathGetHRef. L'ordre des paramètres est différents. Le paramètre $aPage passe en dernière position car jamais utilisé.
($aDo, $aId='', $aMode='r', $aPage='')
($aDo, $aPage='', $aId='', $aMode='r')
28/01/14- En cherchant des nouveaux modules, le système envoi la liste des modules installés. Cela permet de ne voir que les modules qui ne sont pas installés.
15/01/14- Suppression de la fonction DateStrUs2Fr()
- Mise en place de la gestion multi langues pour les modules. Chaque modules possède une dossier lang/dans lequel les différents langages sont enregistrés.
- Le fichier history.txt est déplacé dans le dossier lang/
- le paramètre info de gModInfo (dans info.php) est supprimé.
- Un fichier info.txt remplace gModInfo['info'] dans le dossier lang/
08/01/2014Module multimédia : ajouter un lien pour afficher l'image original
- génération d'un fichier htaccess avec protection des dossiers sensibles => écriture d'un module qui permet de gérer le fichier htaccess
- Module rubrique : en ajoutant une nouvelle rubrique afficher le menu classique par défaut
01/01/14Meilleurs voeux
19/12/13Suppression du paramètres $aUrlBase pour la fonction ModDo des modules. Ce paramètre n'est plus passé à la version 1.51
En contrepartie une fonction ModUrlGet a été ajouté pour obtenir une url vers le module.
ModUrlGet($aDo, $aId, $aParam)
$aDo et $aId sont les paramètres qui seront passé à la fonction ModDo($aModDo, $aModId, $aUser)
$aDo => $aModDo
$aId => $aModId
$aParam est une liste de paramètres en plus
07/12/13Correction d'un bug dans l'affichage des rubriques. Si une rubrique devait être affiché pour les membres connecté uniquement et qu'elle était dans un sous menu, elle était affiché deux fois. Une fois dans son sous menu, une fois dans le menu principal.
26/11/13Les tables étant initialisées lors de l'installation d'un module, le système ne vérifie plus l'existence des tables du module à chaque chargement. Cela permet d'accélérer nettement le chargement de pages et de réduire le nombre de requête SQL.
25/11/13Possibilité de mettre à jour les tables d'un modules. Une nouvelle fonction permet de comparer la structure des tables d'un module avec la structure déjà enregistré dans la base de données.
06/09/13- Correction d'un bug dans l'affichage des modules sur la page d'accueil ou dans la barre de menu lorsque ces paramètres étaient modifiés depuis la page paramètres du module.
- Dans la page des paramètres d'un module, les cases à cocher "Afficher dans la barre des menu" et "Afficher sur la page d'accueil" n'apparaissent que si le module le permet.
- Correction d'une faute d'orthographe dans la page "Modules". Modules installées et devenu Modules installés
28/08/13- Gestion des gabarits d'affichages multi-langues. Les modules peuvent désormais utiliser des gabarits multi langues dans leur paramètres ou dans une page de leur composition.
28/08/13- Dans les paramètres en l'ajoutant dans la fonction ModParamPub :
$p[] = array(
'title'=>'',
'champType'=>'template',
'var'=>'',
'defaut'=>'',
'varType'=>'template',
'tag'=>array()
);
- Dans une page avec les fonctions ModTpltFormInit et ModTpltFormGet
24/08/13Ajout d'un script de maintenance après l'installation d'une mise à jour de module.
22/08/13- Les rubriques destinées aux membres ne sont pas affichées pour les non membres
- Retour sur la gestion précédente des droits utilisateurs
17/08/13Modifications sur la page de gestion des droits. Il n'y a plus de limite aux nombres de droits.
16/08/13Sécurisation des pages : acces.php, advanced.php, coordonnees.php, coreInstall.php, droit.php, lang.php, theme.php
Le système vérifie que l'utilisateur qui accède à la page ait le droit de super administrateur ou administrateur
12/08/13- Ajout de 2 variables supplémentaires dans le fichier info.php : coreVersionMin et coreBuildMin. Défini la version minimale du core nécessaire au module.
25/07/13- Le système de mise à jour des modules fonctionne.
24/07/13- Travail sur le serveur de mise à jour. Mise en place d'un module pour gérer la liste des modules disponibles au téléchargement.
- Le fichier d'historique des modules change de nom. "historique.txt" -> "history.txt"
23/07/13- Changement de serveur pour le serveur de mise à jour + passage à MySQLi pour les connexions et à l'UTF-8 pour tous les fichiers
- Correction des bogues
22/07/13Les liens de rubrique de la zone publiques sont affiché avec les infos (si le texte n'est pas vide) ou avec le nom de la rubrique
16/07/13Correction d'un bug sur appareil mobile. Le CMS chargeait les fichiers mobiles, sans vérifier leur existence. Désormais, le système vérifie si les fichiers pour mobile sont référencé dans le fichier info.php du thème. S'il n'y a rien, les fichiers pour desktop sont chargés.
05/07/13- Amélioration du fichier de première configuration
- Si le module ne renvoit pas de titre pour la balise <title>, la fonction TpltTemplateFill, utilise le titre de la rubrique en cours comme titre de page
- Correction d'un petit bug dans le fichier err.php qui l'empêchait d'utiliser correctement les fichiers d'erreur du thème sélectionné
- Supprimer la liste de contenu d'un module lors de la suppression du module
- Correction d'un bug dans le fichier coreInstall.php qui gère la mise à jour
04/07/13Amélioration du fichier de première configuration
03/07/13Mise en place de fonction javascript pour initialiser un appel AJAX entre module :
ajaxInit : initialise un objet XMLHttpRequest et gère la réponse de retour du module
ajaxCall : créer le lien entre un module et l'objet javascript. Cette fonction charge le fichier moduleAjaxCall.php qui charge le module en mode integration et appelle la fonction modDo
29/06/13- La fonction ModLangSQLLoadIntoForm renvoi le code html avec un menu déroulant permettant de choisir la langue à afficher dans les zones de textes
- Changement de la fonction ModFileLstInit en LibJSGetFileLst
26/06/13Correction de petits bugs dans la configuration et autres
10/06/13- Passage de mysql à mysqli. Modification des fonctions de connexion et de tous les appels à la base de données
base de données minimum : MySQL 4.1
- Possibilité pour les modules de créer un lien vers eux-même avec la fonction PathGetHRef
PathGetHRef($aDo, $aPage='', $aId='', $aMode='r');
$aMode = 'r' => lien pour rubrique
$aMode = 'm' => lien pour module
09/06/13- Correction et finalisation des fonctions d'import / export de table pour les modules multi-langues. Il y avait de nombreux problèmes et des nombreuses limiations à contourner !
- changement de nom des fonctions commencant par Sql en Db :
- SqlConnect -> DbConnect
- SqlDeconnect -> DbDeconnect
- SqlTableExist -> DbTableExist
- etc
Un fichier "funcDbMySql.php" a également été créer afin de regrouper ces fonctions communes MySQL. Le but de ces changement set de donner aux modules des fonctions communes d'accès à la base de données sans en connaître les types. Le travail devra être poursuivi avec les fonctions d'insertion, de suppression, etc.
- changement de nom des fichiers de connexion à la base de données :
- sql.php -> dbConnect.php
- sqlMin.php -> dbConnectMin.php
06/06/13- Création d'un dossier qui contiendra des librairies communes javascript ou autres ainsi que d'une liste de librairies communes :
$gCommonLib = array(
'[JS_JQUERY]'=>'lib/js/jquery.js',
'[JS_CLOUD_ZOOM]'=>'lib/js/cloud-zoom.1.0.2.min.js'
);
Les modules peuvent intégrer ces librairies dans leur liste de fichier défini dans le fichier info.php
$gModInfo['pub']['js'] = array('[JS_CLOUD_ZOOM]', '[JS_JQUERY]');
- Erreur partie publique dans le code html :
<script type="text/javascript" src="0"></script>
- Erreur partie publique dans le code html :
<div id="bloc_user">
<a name="menu1"></a>
<ul>
Array
</ul>
</div>
31/05/13Function ButtonGet : possibilité de définir l'identifiant du bouton :
ButtonGet($aTxt='', $aLink='#', $aCLass='dimX200 btBlanc', $aId='', $aSpacer=1)
30/05/13- Petite modification dans le fichier init.php des modules. l'array du module s'appelle 'mod'
avant : $gModInfo['pub']['obj'] array('file'=>'', 'class'=>'')
maintenant : $gModInfo['pub']['mod'] array('file'=>'', 'class'=>'')
Ceci permet de mieux définir la liste qui défini le module à ouvrir et plus uniquement l'objet.
- Ajout d'une array 'home' dans le fichier init.php des modules.
$gModInfo['priv']['home'] array('file'=>'', 'class'=>'')
Ce fichier est chargé sur le page d'accueil du CMS et la fonction ModInfoIndex est appellé.
Auparavant cette fonction était intégré au fichier défini dans l'array 'mod'. Elle peut être dépacé dans un fichier à part pour alléger le chargement de la page d'accueil.
- Les modules peuvent spécifier si ils peuvent apparaître en page d'accueil ou sur le menu dans le fichier info.php avec les variables showMenu et showHome :
$gModInfo['showMenu'] = 1;
$gModInfo['showHome'] = 1;
22/05/13Ajout de fonctionnalité au fichier info.php des modules. Ajout d'une array 'cron' dans 'priv' pour déterminer le fichier et l'objet cron à instancier
$gModInfo['priv']['cron'] = array('file'=>'', 'class'=>'');
16/05/13- Les modules peuvent utiliser un fichier de chargement : loader.php
Ce fichier est chargée par le système avant de créer les objets public et privé du module.
Ce fichier contient les initialisation des tables. Il peut-être utilisé en mode d'intégration.
Ce fichier est défini dans les informations du modules :
$gModInfo['loader'] = array('file'=>'loader.php', 'class'=>'monLoader');
- Suppression de la fonction ModJsOnLoad de la class module
- Suppression du fichier module.class.php
15/05/13Anglicisation des paramètres (partie 2)
14/05/13- Anglicisation des paramètres (partie 1)
- Correction d'un bug sur le module rubrique
- Erreur d'encodage sur la page des infos d'un modules
09/05/13La fonction FileDelete renvoi 1 en cas de succès, 0 en cas d'échec
08/05/13- Les thèmes peuvent avoir plusieurs gabarit d'affichage. Généralement 1 pour la page d'accueil et un autre pour ls page de contenu.
- Dans le module rubrique il est possible de spécifier quel gabarit utiliser pour chaque rubrique.
25/04/13- Changement de nom pour le fichier init.php des modules. Il s'appelle désormais install.php
- Changement de nom pour certains fonctions :
- ModTableInit -> ModTableInstall
- ModTableLstInit -> ModTableLstInstall
- Ajout de la fonction ModIntegrate. Cette fonction permet à un module d'en intégrer un autre et de mieux communiquer avec lui. La fonction ModIntegrate vérifie si le module est chargé
01/04/13Écriture de la fonction ModFunctionDo($aId(int), $aFunction(string), $aParam(array));
ModFunctionDo permet à un module d'appeler une fonction public d'un autre module. Le système charge le module si nécessaire, vérifie si la fonction existe et l'appelle en passant les paramètres.
29/03/13- Quelques modifications dans le fichier init.php des modules. Réorganisation de l'array, avec création d'une array pour définir l'objet privée et l'objet public
$gModInfo['pub']['obj'] array('file'=>'', 'class'=>'')
$gModInfo['pub']['obj'] array('file'=>'', 'class'=>'')
- Un module est désormais scindé en deux objets. Un objet privé dans le dossier d'administration et un objet public dans le dossier public.
09/01/13Enregistrement de la liste des modules et des contenu en JSON
07/01/13Modification de la variable gContentLst. Elle peut désormais gérer plusieurs listes par module. Ainsi les modules peuvent organiser des listes de contenu plus efficacement.
06/01/13Modèle rubrique changement de la structure de la table pour utiliser le nouveau format de la variable gContentLst
04/01/13Correction de bug sur le fichier "moduleInstall.php" lorsque l'on désinstallait un module.
01/01/13Bonne année
30/12/12Vérifier les sauvegarde de base de données au format UTF-8 correction d'un bug sur le module de sauvegarde de base de données après le passage à l'UTF-8.
25/12/12- Ajout d'un identifiant de site, permettant d'utiliser plusieurs fois le CMS sur un même espace et avec une même base de données
09/12/12- Passage de la base de données UTF-8 + interclassement UTF-8 Bin
- Passage de tous les fichiers PHP en UTF-8.
- personnaliser les erreurs 404 etc possibilité de définir des fichiers 403, 404, 500 dans le thème
03/12/12Création d'un nouveau fichier funcTplt.php qui regroupe les fonctions de gestion de template.
02/12/12Module actu : liens de navigation entre pages sur la partie public.
30/11/12Attention aux espace dans les liste pour avoir :
1- aucune marge ente 2 éléments de liste (<li>element</li><li>element</li>)
2- des éléments de liste qui passent à la ligne (<li>element </li><li>element </li>)
28/11/12Gestion des différentes langues dans la version publique. Un dossier virtuel est crée pour chaque langue.
28/11/12Ajout d'un paramètre de thème : $gTemplate['contentWidth'] indique la largeur de la zone de contenu du thème. Ce paramètre est utilisé pour les modules gérant du contenu.
27/11/12Correction d'un petit bug sur l'affichage des menus : le parent de la rubrique en cours est correctement balisé et le sous menu est correctement affiché
24/11/12Module membre : affiche les comptes inactifs
24/11/12Scindage du fichier moduleGestions.php en module.php et moduleListe.php
24/11/12Uniformisation des certains champs de tables
20/11/12- Ré-intégration du modules newsletters
19/11/12- Possibilité de définir si un module est affiché sur la page d'accueil ou dans la barre de menu directement depuis la liste des modules
16/11/12- Possibilité de définir si un module est affiché sur la page d'accueil directement depuis la page d'accueil
12/11/12Correction d'un bug javascript sur les modules membres et page & formulaire de contact sous internet explorer 8 la ligne parent = document.getElementById("blocProfil"); générait une erreur.
deux solutions :
- Définir la variable avec var (var parent = document.getElementById("blocProfil"); )
- Utiliser un autre nom de variable que parent
09/11/12Tous modules. Ajout de deux nouvelle svariables dans le fichier info.php : 'visibleSurAccueil' et 'visibleSurMenu'. visibleSurAccueil est un boolean qui précise si le module peut être affiché sur la page d'accueil ou pas. visibleSurMenu est un boolean qui précise si le module peut être affiché dans la barre de menu ou pas.
08/11/12-hangement graphique dans l'interface d'administration
02/11/12Les modules renvoient une array à la fin de la fonction modDo : array('txt'=>'', 'titre'=>''). Ceci permet de définir le titre du fichier html en plus
01/11/12Système de log
29/10/12Système pour les mises à jour des fichiers système
22/10/12- tous module : gestion des pages de navigation avec les fonction du fichier funcPageNav.php
20/10/12Module page contact : boutons de suppression des messages, boutons pour supprimer tous les messages lu, boutons pour filtre les messages (messages lu uniquement)
19/10/12Définition de la page d'accueil dans le module rubrique. Une case a coché a été ajouté, elle défini la variable publique gParamUsr['accueilId']
13/10/12- Possibilité de modifier l'ordre des champs dans les profils utilisateurs et des formulaires
- Tous module : possibilité de lier des fichiers javascript hébergés sur un autre domaine. Le CMS vérifie si le nom du fichier javascript débute par http://
10/10/12Module de création de formulaire de contact
10/10/12Tous module : possibilité de définir un élément pour la liste de contenu à l'installation du module
10/10/12- Module membre : ajouter champ nom et prénom par défaut
04/10/12- Personnalisation de tous les fichiers du thème (template, fichiers css et js)
- Personnalisation du fichier index.css dans la partie admin
03/10/12Import du logo
01/10/12- La page d'accueil affiche tous les modules pour les super administrateurs, même s'ils ne sont pas dans la liste des droits du modules
- Petit changement dans le niveau des droits utilisateurs. Auparavant les niveaux commencaient à 0 :
array(0=>'Membre', 1=>'Modérateur', 2=>'Administrateur', 3=>'Super administrateur')
Ils débutent maintenant à 1 :
array(1=>'Membre', 2=>'Modérateur', 3=>'Administrateur', 4=>'Super administrateur')
Ceci permet de gérer le cas d'un utilisateur qui n'est pas enregistré est dont le droit est égal à 0.
Ce qui est le cas pour le module actu qui peut afficher des actualités différentes en fonction du droit de l'utilisateur connecté
- Ajout d'une fonction de comparaison de niveau dans le module membre. Super administrateur > Administrateur > Modérateur > Membre et autres droits personnalisés
29/09/12Le nom de chaques fonctions commence par une majuscule
19/09/12- Possibilités de modifier le fichier template.html du thème sélectionné
- Début du codage du module réseaux sociaux
18/09/12- Possibilité d'utiliser des menus déroulants dans les paramètres d'un module
- Supprimer les paramètres d'un module lors de sa suppression
16/09/12- L'url de serveur pour les mise à jour de module, chargement de thème a été placé dans le fichier 'param.php', hors du dossier root
- Crypter les enregistrement du module sauvegarde bdd Les enregistrements sont automatiquement placés en dehors du dossier root
15/09/12Renommage des variables passées en argument. Les paramètres d'arguments commencent avec la lettre 'a' (ex: $aList)
14/09/12Amélioration de la sécurité en déplacant les fichiers de configuration et de paramètres hors du dossier root
10/09/12- Les variables d'un module sont enregistrées dans la variable global gParamUsr au lieu d'être enregistré dans un fichier php dans le dossier param
- Module membre : fin de la personnalisation des profils. Le profil utilisateur est configurable par langue. Les résultat sont enregistré dans les variables du module
09/09/12- Bug sur l'enregistrement des droits utilisateurs. Un lien vers un fichier js inexistant : <script type="text/javascript" src="js/"></script> provoque un problème dans l'enregistrement des variables
- Suppression du fichier 'param/droit.php' dans la zone admin. Les droits sont désormais intégrés à la variable gParamUsr qui regroupe les paramètres utilisateurs
03/09/12- Module membre : afin de contrer les attaques par brute force, une table a été créer pour enregistrer les échecs de connexion. Si trois échecs pour un même identifiant sont enregistrés en moins d'une heure, la connexion est refusée (pour une heure).
01/09/12- Module membre : début de la personnalisation des profils
- Module membre : nouvelle modification dans l'enregistrement des mots de passe utilisateurs. Les mots de passe sont sécurisé sha512 + Hash et le hash est généré aléatoirement pour chaque membre.
Plus d'info sur la sécurité :
http://crackstation.net/hashing-security.htm
http://www.wikihow.com/Create-a-Secure-Login-Script-in-PHP-and-MySQL
31/08/12- Module membre : réinitialiser le mot de passe
- Possibilité d'utiliser un code html dans la liste des options du module avec 'champType'='html' et 'varType'=>'html'
30/08/12- Template : possibilité d'afficher le sous menu de la rubrique en cours avec le type=>subMenu en précisant l'Id du menu auquel doit se rapporter la rubrique
- Module rubrique : possibilité de changer de zone de menu
- Module rubrique : correction d'un bug. le lien vers le module était perdu en modifiant une rubrique (modification dans le code javascript)
29/08/12- Écriture du système de lien : rubrique,[identifiant de rubrique],[texte de description].html. Au chargement de la page, les liens de la rubrique sont chargé d'après son identifiant. Lors de la génération de la page, quand le système arrive au contenu, le site charge le fichier index.php du module (partie public) et appelle la fonction getContent().
- Création d'une fonction récursive pour afficher les éléments de menu et leurs sous menu. La template peut également utiliser différent mask pour le menu principale et les différents sous menu. les différents niveau sont séparer par deux slash //
25/08/12- Les modules peuvent remplir une liste de contenu "$gContentLst" qui est utilisé par le module rubrique pour lier des rubrique à un élément spécifique d'un module. gContentLst contient une liste d'identifiant (l'identifiant de l'élément que le module peut ouvrir) et un titre (affiché dans la liste des rubriques).
$gContentLst = array();
$gContentLst[3]=array(3=>"Bienvenue", 7=>"Contactez-nous");
explication :
$gContentLst[identifiant_du_module]=array(identifiant_1=>titre_1, identifiant_2=>titre_2);
- Deux fonctions ont été écrite pour ajouter, modifier ou supprimer des éléments dans cette liste : modContenuAjoute et modContenuSup
24/08/12Suppression du paramètre de module lienRubrique
22/08/12- Module rubrique : afficher les rubriques qui ne correspondent à aucune zone de menu
- Ajout d'un nouveau paramètre pour les module : lienRubrique. Ce paramètre permet de spécifier si le module peut générer du contenu qui sera lier aux rubriques.
21/08/12- Supprimer droit utilisateur de la rubrique modules (à intégrer dans modules membres)
- Module membre : mot de passe différent du login obligatoire
- Version mobile générée automatiquement. Le site vérifie si on est sur mobile et bascule automatiquement sur les versions mobiles des fichiers css et javascript et js
18/08/12Module SEO robots.txt : externalisation du code javascript dans un fichier JS
14/08/12- Mise à jour de module. copie par ftp dans un dossier temporaire puis copie du dossier private dans la zone d'administration et le dossier public dans la zone publique
- Importation de module depuis le serveur. copie du dossier modules par ftp. Le dossier contient deux sous dossier private et public. Private est destiné à la zone d'administration et public à la racine du site.
12/08/12Ajout d'un fichier init.php pour les modules. Il contient la description de la ou des table du module
08/08/12- Changement dans la gestion des modules. Les fichiers ne sont plus en vrac dans le dossier modules, mais organisés dans un dossier avec un sous dossier img, css et js. Un fichier 'info.php' contient les info du module (nom, auteur, version, texte d'information, liste des tables)
- Suppression des fonctions de gestion des tables des modules (modTableExist et modTableSup). Ils sont géré directement par le fichier 'moduleGestion.php'
21/07/12Système pour générer un fichier robots.txt : création du module SEO : robots.txt qui enregistre un fichier robots.txt
14/07/12Modification dans l'enregistrement des mots de passe utilisateurs. Ils sont sécurisés MD5 + hash
13/07/12- Le fichier d'initialisation envoi un mail avec l'identifiant du super administrateur et vérifie la longueur du mot de passe du login et que le login soit différent du mot de passe
- Multi langue pour le module rubrique
- Ajout d'un filtre pour afficher les rubrique dans une langue précise
- Import du thème par FTP copie du fichier index.css, des fichiers images dans le dossier 'img/interface/' et des fichiers 'htmlEntete.php' et 'htmlPiedPage.php' dans php/
- Import du thème par FTP. copie du dossier du thème dans le dossier thèmes du destinataire
11/07/12Création d'un fichier d'initialisation du compte d'administration
07/07/12Utilisation de la liste des zones de menu du thème sélectionné pour les rubriques