{{Message->Title->Value}} |
|
---|---|
{{Message->DateCreated->Value}}
{{Message->GetUser()}} |
{{Message->Message->Value}} |
Réponse |
|
jerome oliva |
Bonjour, bien sur sous quel environnement êtes vous , windows, linux ? |
Charles Loiret |
Je suis sous windows. |
jerome oliva |
Bonjour, avez vous suivi le tutoriel http://puzzleapp.webemyos.com/Mooc/Mooc/Installer-puzzleapp , vous trouverez souvent votre réponse. |
Charles Loiret |
Effectivement je n'avais suis le tutoriel sur cette partie. Merci ça fonctionne |
jerome oliva |
Bonjour, effectivement puzzle App utilise les derniéres fonctionnalités de Php et notamment les namespace et l'autoload. Vous n'avez alors pas besoin de faire des includes.. Dans la déclaration de votre classe il faut déclarer son namespace par exemple le fichier AppsBlogBlog.php namespace AppsBlog; class Blog{ ... Celui-ci correspond donc à l’arborescente de vos répertoires. Par exemple pour un helper qui est dans un dossier plus profond Apps/Blog/Helper son namespace sera namespace AppsBlogHelper; Ensuite lorsque vous en avez besoin dans votre classe il suffit de déclarer le use en début de fichier use AppsBlogHelperBlogHelper; L'appel à cette classe dans votre code la chargera automatiquement par exemple BlogHelper::Update ou en faisant un $blog = new Blog(); |
carl@test.com |
Ok je comprend le principe c'est un peu comme pour le java |
jerome oliva |
Exactement on la déclaration des classes que l'on utilise en début de fichiers et donc plus besoin d'utiliser les require ou include. De plus certains IDE comme NetBean vous propose de les inserer directement |
carl@test.com |
Merci Jérôme, ça ma l'air vraiment pratique en effet, je vais creuser ça. |
jerome oliva |
De rien n'hesite pas si tu a d'autres questions |
jerome oliva |
Bonjour, Je pense que l'application Communique correspondra à votre besoin. Vous pouvez créer des campagnes d'email que vous pouvez envoyer à une ou plusieurs listes. Vous pourrez alors suivre les ouvertures et les destinataires peuvent se désabonner. |
Antoine.Baudry@hotmail.com |
Bonjour merci Jérôme, je vais tester ça . |
jerome oliva |
Bonjour, effectivement pour certains hébergeurs on ne peut pas choisir le dossier racine. Dans ce cas il faut rajouter un fichier .htaccess à la racine qui va tout rediriger vers le dossier Web.
Attention cependant au fichier css et javascript ou il faut rajouter le web . dans les Template il faut changer http://puzzleapp.orgasset/script.css)}} par {{GetPath(Web/asset/script.css .Idem pour les images On doit pouvoir configurer cela aussi dans le .htacess je vais chercher pour trouver cette solution |
wesley.ramet@test.com |
Bonjour, merci jérôme effectivment cette solution fonctionne, tiens moi au courant lorsque tu a trouver l'autre solution |
jerome oliva |
Bonjour Simon, effectivement c'est un plus pour son site, pour prouver son expertise. C'est une application assez simple, elle est en cours de construction notament pour le tutoriel Créer votre premiére application. Je vous préviendrais lorsqu'elle sera disponible
|
Simon Flotat |
Merci jérôme, j'ai hâte de voir ca et de pouvoir l'installer sur mon site.
|
jerome oliva |
Bonjour Nicolas, bien sur, il suffit d'ecrire dans les vues commes dans les classes php. Par exemple {{element->EntiteLie->Value->Name->Value}}
|
jerome oliva |
Bonjour, nous n'avons pas voulut bloqué cette possibilité comme sur certain autres Crm ou il faut comprendre comment il fonctionne pour écrire des requetes complexe. Il suffit d'utiliser l'objet Db du Core et la fonction GetLine ou GetArray . par exemple : $request = 'select * from matable'; $resullt = $this->Core->Db->GetArray($request);
|
Charles Xavier |
Merci Jérome pour cette info, c'est axactement ce que je cherchais |
jerome oliva |
Bonjour, effectivement c'est une bonne idée, nous avions prévu de développer cette application car on la retrouve souvent sur plein de site.
|
jerome oliva |
Bonjour, effectivement il existe un système de traduction. Dans votre code php il faut utiliser la fonction $this->Core->GetCode("MonCode") et dans les template il faut utiliser la fonction MonCode Ces codes sont inserér automatiquement en base de donnée. Pour la traduction il ne vous reste plus qu'a utiliser l'outil de traduction de base.
|
jerome oliva |
Bonjour patrick, effectivement c'est embetant de transmettre une variable juste pour cela . Il existe des fonctions spécifiques dans les template comme 2024/05/17 ou 2024 qui vous retournera la date du jour dans le format souhaité |
jerome oliva |
Bonjour, le framework a été développé dans ce sens pour pouvoir personnalisé son site sans avoir à toucher le code de base. Je vous invite à suivre ce tutoriel qui explique ce cas http://puzzleapp.org/Mooc/Lesson/Personnalisez-votre-site
|
jerome oliva |
Merci Olivier pour cette remarque. Le cms est compris dans le package de base, mais effectivment nous pensons faires des packages plus complets en fonctions des vos besoins.
|
jerome oliva |
Bonjour, malheureusement non pas encore. Mais effectivement c'est une bonne idée presque indispensable pour les sites. Nous vous avertirons lorsque nous l'aurons développer. Mais si vous ne pouvez pas attendre je pense que vous pouvez vous baser sur le router qui fournit les segments de route et devrait vous permettre de développer cela rapidement
|
jerome oliva |
Bonjour eric, c'est bien ce qu'il me semblait on peut le faire grâce au Router J'ai crée l'application BreadCrumb pour un projet, par contre celui-ci contient un système de réseau et sous réseau ,je l'ai donc adapter pour lui, mais je la modifirais dans la prochaine release.
|
eric palut |
Salut, merci jérome, je vais traiter d'autres points en attendant .
Merci |
jerome oliva |
Bonjour, la question est interessante et elle revient souvent. La meilleurs solution est de créer une fonction dans l'entité elle même qui va se charger de faire ce calcul. Vous pouvez ensuite appeller cette fonction dans la vue directement
par exemple : {{entity->GetCount()}}
et dans l'entité
function GetCount(){ return 12; }
|
jerome oliva |
Bonjour, effectivement vous pouvez accéder au information de la masterView via la fonction
$this->Core->MasterView->Set("Title", "Le framework qui vous permet de tout faire sans coder"); Je vous conseil de faire cela dans le controller de votre application.Ainsi vous avez une visibilité de toutes vos pages .
|
jerome oliva |
Bonjour, oui bien sur il faut utiliser les dialog standard Dans le fichier js de votre appilicaiton vous pouvez appeler cette fonction Dialog.open("", {title:"Ressource", app:'Coopere', class:"Dialog" , method :"EditRessource", params:ressourceId, height : 450}); Celle ci appellera la class DialogController et la fonction EditRessource de votre application 'Coopere' qui doit etre dans le dossier 'Module' pour le rendu html. Puis le javascript appellera la fonction EditRessource du fichier DialogController.js afin d'initialiser les différents évenements. P Dashboard.AddEventById("BtnSaveRessource", "click" , function(e){ })
|
jerome oliva |
Bonjour Yannick, Oui bien sur les extends sont prévu pour cela. Je vous conseil de :
Et le tour et jouer. Pour la petite explication le framework regarde d'abord si il existe une classes dans ce dossier ayant la même arborescence. Dans notre cas c'est une entité mais on aura pu le faire avec un control ( Extend > Control > TextBox > TextBox.php) Il utilise alors celle-ci au lieu de celle du framework. |
jerome oliva |
Bonjour, bien sur il existe un système de fichier de traduction pour les applications standard. Ce sont des fichiers JSON. Les principales applications Blog, Cms possédent ces fichiers en francais et Anglais. Il suffit de les télécharger et de les ajouter depuis l'application Mes appications depuis votre espace Administrateur |
jerome oliva |
Bonjour, non par pour l'instant mais c'est une bonne suggestion. Nous allons rajouter cela dès que nous pourrons . Merci |
jerome oliva |
Bonjour, alros vous avez deux possibilités. Si cela concerne uniquement les vues. Il suffit de surcharger les templates en créant de nouveaux fichiers par exemple dans View/Agenda/Module/Front/View/event.tpl c'est ce nouveau fichier qui sera utilisé plutot que le votre.
Ou vous créer une nouvelle application qui étend de la votre . Par exemple class CoopereAgenda extends Agenda. Il suffit alors de réécrire les fonctions que vous souhaitez adapter . |
Marion Barral |
Merci Jérôme pour cette explication, je vais tester ca . |
Marion Barral |
Bonjour, ca y est l'application BreadCrumb a été implémenté. Elle affiche bien un fil d'ariane avec les l'arborsence. |
Fabrice Dumontel |
Le gros point qui manque dans l'ide selon moi. C'est la possibilité de modififer les entités et la base de donnée.
Par exemple si j'ai besoin d'ajouter une colonne. Cela devrait créer un script d'update de la table et modifier l'entité |
jerome oliva |
Bonjour, merci effectivement nous voulons faire un framework simple d'utilisation mais puissant.
Voici un exemple de request Ajax Complet . Cela devrait vous aider.
var data = "Class=Coopere&Methode=DeleteActualite&App=Coopere";
Il suffit de definir l'application, la classe et la fonction qui va repondre a l'appel cote serveur ainsi que les bons parametres |
jerome oliva |
Bonjour, merci Boris, superbe idée. Je vais mettre ça dans la RoadMap |
jerome oliva |
Bonjour pierre , Oui bien sur il faut spécifier le type de dialog exemple :
Dialog.open('', {"title": Dashboard.GetCode("CarnetDeVoyage.AddItineraireMaille"),
"app": "Planificateur",
"class": "DialogPlanificateur",
"method": "ShowAddItineraireMaille",
"params": "",
"type": "left"});
|
Pierre Pharm |
Ok impeccable, merci.
Il me reste plus qu'a faire un peu de css |
jerome oliva |
Bonjour gontran, il y a l'application Task Je pense qu'elle peut te servir de base. |
jerome oliva |
Bonjour, effectivement cet partei était manquaunte . Elle sera ajouté dans la prochaine version. |