Kweb V 6 - Caruelle
Transcription
Kweb V 6 - Caruelle
Kweb V 6 Dossier du Développeur KWEB Nouvelle arborescence des fichiers et dossiers : Rouge : Indispensable au moteur. Vert : Configurable et indispensable au moteur. Bleu : Entièrement modifiable − home (dossier contenant les uploads des administrateurs) − app − config (Chemin de l'application / Accés base de données) − kwinnov (kernel du moteur) − libraries (librairies secondaires du moteur) − mods (modules pour le site web) − views (contient l'ensemble des thèmes possibles) − share (Indispensable au moteur, partage d'éléments à tous les thèmes) − kweb (Indispensable au moteur, permet la creation et l'administration des pages contenues dans les différents thèmes Librairie PHP : Dossier : /apps/libraries Contexte : Une librairie PHP peut être utilisé par n'importe quel module. Utilisation : L'appel d'une librairie dans un module se fait par son nom de classe ex : $fpdf = new FPDF(); Il est nul besoin de faire un «require sur le fichier » Création : La création d'une librairie nécessite le respect d'une règle : La création d'un dossier du nom de la librairie, une classe du même nom (extension du fichier .class.php) ex : mkdir /lib/Malib touch Malib.class.php Contenu de Malib.class.php : <?php class Malib { // Votre contenu } ?> Il est important de respecter le même nom pour le dossier, le fichier et le nom de classe. Modules PHP : Dossier : /mods/ Contexte : Un module peut être appelé 1 ou plusieurs fois sur 1 ou plusieurs pages. Utilisation : Cf : L'interface Kweb <?php Création (ex de création de MonMod) : La création d'un module nécessite le respect de plusieurs régles : La création d'un dossier du nom du module dans /mods/MonMod/ La création d'une classe dans ce dossier du type : MonMod.class.php L'ajout dans la table kweb_module de ce module. Le respect de règles au sein de la classe MonMod.class.php : class MonMod { var $tpl_front ='nom_module/tpl/'; var $tpl_back ='nom_module/tpl/backoffice/'; function __construct() { $this->tpl_front = MODSPATH.$this->tpl_front; $this->tpl_back = MODSPATH.$this->tpl_back; } function MaFonc() { // On assigne une valeur a la variable smarty 'key' $this->TPL->Tassign('key','value'); // On récupére le contenu de notre template $html = $this->TPL->Tfetch('nom_fichier.tpl'); } // on retourne le contenu du fichier template return $html; function configure_module($module_rows) { $module_option = unserialize($module_rows['pmoption']); $this->TPL->Tassign('module_option',$module_option); $opt_tpl_back = $this->List_dir_option($module_option['tpl_affich_update'], $this->tpl_back,array('tpl'=>1)); $opt_tpl_front = $this->List_dir_option($module_option['tpl_affich'],$this>tpl_front,array('tpl'=>1)) ; $this->TPL->Tassign('opt_tpl_back',$opt_tpl_back); $this->TPL->Tassign('opt_tpl_front',$opt_tpl_front); if(file_exists('targetFile.tpl')) $html = $this->TPL->Tfetch('targetFile.tpl'); else $html = 'Fichier de configuration inexistant : targetFile.tpl'; } return $html; // Actions effectué sur la suppression d'une liaison module / page function OnDelete($rows,$module_page_id) { return true; } // Actions effectué sur la Mise à jour d'une liaison module / page function OnUpdate($post,$module_page_id) { return $post['module_option']; } }; ?> // Actions effectué sur l'ajout d'une liaison module / page function OnAdd($post,$rows,$module_page_id) { return $post; } Librairies partagées graphique : Dossier : /views/share/lib/ Contexte : Une librairie graphique peut être utilisé par n'importe quel module. Utilisation : L'appel d'une librairie graphique dans un module se fait par son nom ex au sein d'un module : $this->Component->Get_lib('ckeditor','lib_content_itfc'); On appel la librairie ckeditor et on lui dit de s'afficher dans la variable Smarty 'lib_content_itfc' elle même situé dans le fichier header.tpl au sein de votre thème. Différentes options: prototype : Get_lib($lib,$target,$var_tpl=null,$tpl_name=null,$recharged=false) la fonction prend deux paramètres obligatoires, ainsi que trois facultatifs, -$lib(obligatoire) : la librairie a charger -$target(obligatoire) : la variable servant a afficher le composant graphique -$var_tpl(facultatif) : tableau de valeur a envoyé en smarty(vide par défaut) -$tpl_name(facultatif) : nom du fichier template contenant l'affichage du module(vide par défaut, dans ce cas le template serait de la forme comp_ckeditor.tpl) -$recharged(facultatif) : booléen spécifiant s'il faut recharger la librairie ou non. Création (ex de création de Malib) : La création d'une librairie graphique nécessite le respect de plusieurs régles : La création d'un dossier du nom de la librairie dans /views/share/lib/Malib/ La création d'un composant Smarty dans ce dossier. Nomage : comp_Malib.tpl Le reste des éléments contenu dans le dossier de la librairie et le contenu du fichier tpl est a définir par vous même. !important : la variable 'already_charged' nous indique si la librairie en question a déjà été chargée. Le Kernel : Voici la liste des classes du Kernel et leur méthodes : Component.class.php Définition : La classe Component Méthodes : function Get_lib : Charge une librairie (nécessaire pour pouvoir utiliser celle ci) function AddPageForm : Ajoute un formulaire (bouton submit...) Controller.class.php Définition : La classe Controller Méthodes : function LoadModule : Charge un module (nécessaire pour pouvoir utiliser celui ci) function List_dir_option : Ajoute une liste de fichier template a une liste déroulante function Assoc_File : Upload de fichiers simple function Assoc_Image : Upload d'images simple function Assoc_Flv : Upload de FLV simple function Assoc_Files : Upload & Ajout de multiples fichiers function Assoc_Images : Upload & Ajout de multiples images function Assoc_Flvs : Upload & Ajout de multiples Flvs function Get_Assoc_Image : Récupére les infos sur une image function Get_Assoc_Images : Récupére les infos sur toutes les images function Del_Assoc_Image : Supprime une association Image Exceptions.class.php Définition : La classe Exceptions Méthodes : function Php_Fatal_errors : Information D'erreur fatale + avertissement par mail function Php_errors : Gestion des codes d'erreurs. Forms.class.php Définition : La classe Forms Méthodes : function CreateForm : Crée l'entête ainsi que le pied du formulaire function AddSubmit : Ajoute un bouton de validation au formulaire Framework.class.php Définition : La classe Framework Méthodes : function KillWord : Suppression des caractères spéciaux de word.. en cours function Ckeditor_Img : − function Resize_dyn_Img : − function shorten : − function supp_htmltag : Supprime les TAG Html d'un texte function WithoutSsDir : Supprime les chemin relatifs function GestDate : Gestion des dates function MakeVarForUrl : Transforme un texte, en une variable d'url valide function MakeUrlGmaps : Retourne une url encodée et utilisable par GoogleMap function url_as_array : Gestion de l'url function calc_age : Calcul un âge en fonction d'une date. function NameAlea : Génére une chaine de caractére aléatoire function CleanAppleDouble : Envoi les Numeros de page ainsi que page precedente et page suivante dans les listes Lang.class.php Définition : La classe Lang Méthodes : function GetLang : Récupère la langue de l'application function AssignText : − function GetText : Récupère le texte relatif au nom de label ainsi qu'à la langue function Ext_Get_Lbl : Récupère le texte relatif un module ainsi qu'à la langue function Ext_Get_Lbls : Récupère la liste des textes relatifs à la langue function Ext_Update_Lbl : −Modifie le texte relatif un module ainsi qu'à la langue function Ext_Delete_Lbl : Supprime le texte relatif un module ainsi qu'à la langue function Ext_Insert_Lbl : −Ajoute un texte relatif un module ainsi qu'à la langue Page.class.php Définition : La classe Page (contient les définitions des variables smarty, ex: {$images_dir} dans la méthode GetPage()) Méthodes : function ParseUri : Mise en forme de la requete HTTP function SecureGlobalArray : Sécurisation des tableaux de données globaux function PageRedirect : Redirection de page function GetPage : Demande d'envoi de page + Initialisation des variables Smarty function InitTpl : −Initialisation des paramètres Smarty function SendTAssign : Initialisation des variables Smarty function OutputPage : Affiche la page function DefaultPage : Envoi sur la page par défaut function LoadModules : Charges tous les modules function LoadModule : Charge un module function GetModule : Récupère les méthodes d'un module function Maintenance : Informe que le site est en maintenance function SecureForm : − Sécurité pour éviter les floods de formulaire function LoadCssFile : − Charge les CSS function LoadJsFile : − Charge les JS function IncRecursive : − Charge dynamiquement les fichiers function GetCondition : Gestion d'une condition function GetHeader : function GetFooter : - PdoE.class.php Définition : La classe PdoE permet de gérer l'accès à la base de données. Méthodes : function __construct : Définit les parametres de connexion a la base de données function exec : Exécute une requête sql function query : Execute une requête sql et récupère le résultat(requête de type select) function ExitSql : Quitte sql et en informe par mail function GetRow : Retourne l'entrée courrante function GetRows : Retourne un tableau de valeur correspondant au résultat d'une requête function Paginate : Retourne un tableau contenant des informations sur la pagination des résultats d'une requête en fonction de paramètres(nombre d'éléments par pages...) Template.class.php Définition : La classe Template Méthodes : function configure_smarty_tpl_dir : Définit le repertoire des templates function configure_smarty_cpl_dir : Définit le repertoire des templates compilés function configure_smarty_cfg_dir : Définit le repertoire des fichiers de config des templates function configure_smarty_plg_dir : −Définit le repertoire des plugins Smarty function configure_smarty_cach_dir : Définit le repertoire de cache des templates function Tcache : function Tdisplay : Affiche un template function Tfetch : Parcours un template function register_func : Enregistre une fonction au fonctionnement de smarty function Tassign : Assigne une variable php Users.class.php Définition : La classe Users Méthodes : function TestUser : Test si l'utilisateur est connecté function Connect : Gere la connexion d'un utilisateur à son espace function Get_user_group : Récupére les groupes dont a acces l'utilisateur function Get_user_access : Resort les interface et pages et autres dont les utilisateurs ont accès function Get_Group_Access : Resort les interface et pages et autres dont les groupes ont accès function LogoutUser : Déconnecter l'utilisateur function Ext_Add_user : Ajoute un utilisateur dans la bdd function Ext_Edit_user : Modifie les informations relatives function Ext_Del_user : Supprime un utilisateur function Ext_create_login_alea : Génère un login aléatoire function Ext_test_login_exists : Test si le login existe dans la bdd function Ext_Get_User : Récupère un nom utilisateur a un utilisateur Astuces / FAQ : Comment créer un fichier PHP en « dur » sans lancer la gestion des urls, mais avoir accès aux fonctionnalités du moteur ? Rien de plus simple, lors de l'instanciation du moteur une variable permet de ne pas gérer l'url ex : => withoutPageBdd.php Mais comment le moteur fonctionne à la base pour gérer les Urls ? Un fichier .htaccess renvoi toutes les requêtes qui ne peuvent aboutir (404) vers le fichier index.php à la base du site. Base de données : Dossier : / Contexte : Une requête auprès de la BDD peut-être effectuée dans n'importe quel module. Utilisation : On utilise les méthodes de la classe PdoE pour effectuer une requête : ex au sein d'un module : $this->DB->exec('requête'); Inutile d'instancier la classe PdoE(appel a 'new'), en effet elle l'aura été lors de l'initialisation du moteur. Les tables : Il existe deux types de tables: - tables nécessaires au fonctionnement du moteur (préfixé par 'kweb_') kweb_config : Configuration du moteur (variables globales) kweb_files_assoc : Association entre fichiers kweb_historique : Historique des actions effectuées sur le site (ajout, suppression...) kweb_interface : Liste des interfaces kweb_languages : Liste des textes selon les langues kweb_lang_dispo : Liste des langues disponibles supportées kweb_link_module : Permet de lier les modules aux interfaces ainsi qu'aux pages kweb_moderate : Informations relatives aux validations par modérateur kweb_module : Liste des modules utilisables sur le site kweb_page : Liste des pages utilisables sur le site kweb_page_interface : Informations relatives aux pages et leurs interfaces kweb_page_redirection : Informations de redirection des pages kweb_user : Informations relatives aux utilisateurs kweb_user_access : Informations relatives aux accès utilisateurs kweb_user_group : Informations relatives aux groupes - tables relatives à un module en particulier (préfixé par 'mod_') mods_formulaires_form : Liste des formulaires crées + informations relatives (titre, sujet...) mods_forumulaires_question : Contient les informations relatives aux types ainsi qu'aux labels des différents champs. mods_gmap_complex : Liste des markers + coordonnées mods_gmaps_geocodes : Liste des adresses répertoriées + coordonnées mods_liste_element : Liste des éléments du module liste_element mods_menu : Liste des menus mods_menu_item : Liste des élément de chaque menu mods_texte_contenu : Liste des textes du module d'affichage de contenu Variables Smarty utilisable : 'page_titre' : titre de la page 'page_descr' : description de la page 'share_lib' : chemin des librairies partagées 'lang_dispo' : liste des langues disponibles 'nb_lang_dispo' : nombre de langue disponibles 'lang_admin_default' : langue de la zone administrative par défaut 'css_commun' : css partagé 'js_commun' : js partagé 'header' : en-tête de page 'footer' : pied de page 'this_mod_dir' : repertoire du module courant 'flux_rss' : flux rss 'interface' : nom de l'interface courante 'base_path' : répertoire racine 'theme' : thème courant 'page' : page courante 'page_full_url' : url de la page 'images_dir' : répertoire des images 'page_master_tpl' : template principal d'affichage 'doctype_1' : doctype modèle numéro 1 'doctype_2' : doctype modèle numéro 2 'meta_favicon' : favicon du site