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

Documents pareils