Plus qu'un tutoriel vous retrouvez ici le détail du coeur du framework
Dans puzzleApp on parle d'application plutôt que de module ou plugin, car chaque application est indépendante et contient tout le code nécessaire pour qu'elle fonctionne.
Chaque application est constitué :
Chaque application est concue pour apporter du contenu coté front en géneral via le module Front et le controler FronController.
Ce module n'est pas automatiquement implaté par l'ide car votre application ne peut rien avoir à gérer coté front.
Comme par exemple l'application newsletter, celle-ci permet d'envoyer des emails en masse à vos contacts, tout ce fait donc coté Administrateur.
Par contre chaque application contient un module Home car celui-ci est utilisé par l'administration.
Toute la partie administration est en Ajax pure afin d'offrir une meilleur expérince utilisateur.
Lorsque le DashBoard JS lance votre application elle appelle la fonction Load de votre application.
Profitez en alors pour placer ici le code qui initalise les évenements ( comme les click sur vos bouton ...)
exemple : forum.js
/*
* Chargement de l'application
*/
Forum.Load = function(parameter)
{
this.LoadEvent();
};
/*
* Chargement des évenements
*/
Forum.LoadEvent = function()
{
Dashboard.AddEventAppMenu(Forum.Execute, "", "Forum");
Dashboard.AddEventWindowsTool("Forum");
Dashboard.AddEventById("btnNewDiscussion", "click", ForumAction.ShowNewDiscussion);
Dashboard.AddEventById("btnHome", "click", ForumAction.ReturnHome);
};
/*
* Gestion des évenements
*/
ForumAction = fucntion(){};
/*
* Démarre une nouvelle discussion
*/
ForumAction.ShowNewDiscussion()
{
}
/*
* Retourne à la page d'accueil
*/
ForumAction.ReturnHome()
{
}
Toutes les applications peuvent intéragir entre elle via le DashboardManager. Il suffit de les appeller et d'utiliser les méthodes partagées.
Exemple avec l'application de notification Notify. Elle posséde la méthôde suivante
/**
* Ajoute une notification
*
* @param type $userId
* @param type $DestinataireId
* @param type $AppName
* @param type $EntityId
* @param type $Code
*/
public function AddNotify($userId, $code, $destinataireId= "", $AppName = "", $EntityId = "",
$emailSubjet ="" , $emailMessage="")
{
NotifyHelper::AddNotify($this->Core, $userId, $code, $destinataireId, $AppName, $EntityId,
$emailSubjet, $emailMessage);
}
Paramétres :
Cette méthôde ajoute une notification d'un utilisateur vers un destinataire et lui envoie un email.
Exemple d'appel :
//Envoi d'un notification au porteur de projet
$Notify = DashboarManager::GetApp("Notify", $this->Core);
$Notify->AddNotify($this->Core->User->IdEntite, $this->Core->GetCode("EeProjet.NewEmailTesteur"), $projet->UserId->Value, "Projet", $projet->IdEntite, $this->Core->GetCode("Projet.AddEmailLandingPageEmailSubject"), $this->Core->GetCode("Projet.AddEmailLandingPageEmailMessage"));