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 : <?php Dossier : /mods/ Contexte : Un module peut être appelé 1 ou plusieurs fois sur 1 ou plusieurs pages. Utilisation : Cf : L'interface Kweb 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 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 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 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 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 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 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()) 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. 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 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 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 a un utilisateur 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
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