Attention : vous consultez actuellement la documentation dédiée aux versions 1.x de Moodle. La documentation pour les versions 2.x de Moodle est consultable ici : FAQ de développement, celle pour les versions 3.x de Moodle est consultable ici : FAQ de développement et celle pour Moodle 4.x est consultable là : FAQ de développement.

« FAQ de développement » : différence entre les versions

De MoodleDocs
Aller à :navigation, rechercher
 
(12 versions intermédiaires par 4 utilisateurs non affichées)
Ligne 4 : Ligne 4 :
== Aide pour les nouveaux développeurs ==
== Aide pour les nouveaux développeurs ==


=== Où les ''nouveaux''peuvent-ils obtenir de l'aide ? ===
=== Où les ''nouveaux'' peuvent-ils obtenir de l'aide ? ===


Dans le forum [http://moodle.org/mod/forum/view.php?f=33 General developer forum] (en anglais) ! N'hésitez pas à poser des questions, qu'elle soit basique ou avancée. De nombreuses personnes posent des questions de tous niveaux chaque jour, et habituellement la communauté les accueille et y répond rapidement.
Dans le forum [http://moodle.org/mod/forum/view.php?f=33 General developer forum] (en anglais) ou dans l'espace [http://moodle.org/course/view.php?id=20 Moodle en français] ! N'hésitez pas à poser des questions, qu'elles soit basiques ou avancées. De nombreuses personnes posent des questions de tous niveaux chaque jour, et habituellement la communauté les accueille et y répond rapidement.


== Base de données de Moodle ==
== Base de données de Moodle ==


===Where can I see a schema for the structure of the Moodle database?===
=== Où puis-je trouver un schéma de la structure base de données de Moodle ? ===


When installing Moodle, the database tables are generated and updated by various db-handling scripts located in various places. There is no canonical schema representation, although the [[Coding#Database_structures | coding guidelines for database structure]] give an outline of the general approach.
Lors de l'installation de Moodle, les tables de la base de données sont générées et mises à jour par les divers scripts de gestion de la base de données situés à divers endroits. Il n'y a pas de schéma canonique, bien que [[:en:Coding#Database_structures | les recommandations pour les structures de base de données]] donnent une esquisse de l'approche générale.


The reason that the database information isn't stored in one place is because of Moodle's '''modular structure'''. Each activity module, for example, comes as a folder with script files inside. If the module needs to store information in the database, it must include scripts in a "db" subfolder which define and update the database structure.
La raison pour laquelle l'information sur la base de données n'est pas stockée à un seul endroit est la  '''structure modulaire''' de Moodle. Chaque module d'activité, par exemple, est livré dans un dossier contenant des fichiers php. Si le module a besoin de stocker des informations dans la base de données, il doit contenir dans un sous-dossier ''db'' les scripts php qui définissent et mettent à jour la structure de la base de données.


==How to get/set information when writing new Moodle code==
== Comment obtenir/donner des informations en écrivant du code Moodle ==


===How do I find out the currently-logged-on user?===
=== Comment trouver l'utilisateur connecté ? ===


The global object $USER, which contains the numeric $USER->id among other things.
The global object $USER, which contains the numeric $USER->id among other things.


===How do I find out the current course?===
=== Comment trouver le cours actuel ? ===


...
The global object $COURSE, which contains the numeric $COURSE->id


===How do I insert/retrieve records in the database, without creating my own database connections?===
===Comment puis-je insérer/retirer des enregistrements dans une base de données, sans créer ma propre connexion à la base de données ?===


Always use the "datalib" functions, such as insert_record() or get_record(). This helps with database abstraction (e.g. running on either MySQL or Postgres) as well as maintaining a single database connection. Moodle uses ADODB for database abstraction.
Utiliser toujours les fonctions "datalib", par exemple ''insert_record()'' ou ''get_record()''. Cela permet de conserver l'abstraction de base de données (par exemple pour faire fonctionner votre code indifféremment sous MySQL ou Postgres) aussi bien que de maintenir une seule connexion à la fois à la base de données. Moodle utilise ADODB pour l'abstraction de base de données.


Look at [http://moodle.sourceforge.net/dhawes-phpdoc/moodlecore/_lib_datalib_php.html the documentation for datalib.php] for the list of functions and details of use.
Consultez  [http://xref.moodle.org/nav.html?lib/datalib.php.html la documentation de la librairie datalib.php] pour une liste des fonctions et leurs détails d'utilisation.


===How do I get/set configuration settings?===
=== Comment obtenir/définir des paramètres de configuration ? ===


To get config values you would typically access the global $CFG object directly, which is automatically created by the core Moodle scripts. To set these "main" config values use set_config($name, $value). The values are stored in the Moodle "config" database table, but these functions take care of cacheing on your behalf, so you should always use these rather than fetching the records directly.
To get config values you would typically access the global $CFG object directly, which is automatically created by the core Moodle scripts. To set these "main" config values use set_config($name, $value). The values are stored in the Moodle "config" database table, but these functions take care of cacheing on your behalf, so you should always use these rather than fetching the records directly.
Ligne 38 : Ligne 38 :
There is also a second table of config settings specifically for plugins ("config_plugin"). These are not automatically loaded into the $CFG object, so to fetch these you would use get_config($plugin, $name). To set them use set_config($name, $value, $plugin).
There is also a second table of config settings specifically for plugins ("config_plugin"). These are not automatically loaded into the $CFG object, so to fetch these you would use get_config($plugin, $name). To set them use set_config($name, $value, $plugin).


{{Ébauche}}


[[Category: Développeur]]
 
[[Category: FAQ]]
[[Catégorie: Développeur]]
[[Catégorie: FAQ]]
 
[[en:Development:Developer_FAQ]]

Dernière version du 7 avril 2010 à 14:57


Remarque : la traduction de cet article n'est pas terminée. N'hésitez pas à traduire tout ou partie de cette page ou à la compléter. Vous pouvez aussi utiliser la page de discussion pour vos recommandations et suggestions d'améliorations.


Aide pour les nouveaux développeurs

Où les nouveaux peuvent-ils obtenir de l'aide ?

Dans le forum General developer forum (en anglais) ou dans l'espace Moodle en français ! N'hésitez pas à poser des questions, qu'elles soit basiques ou avancées. De nombreuses personnes posent des questions de tous niveaux chaque jour, et habituellement la communauté les accueille et y répond rapidement.

Base de données de Moodle

Où puis-je trouver un schéma de la structure base de données de Moodle ?

Lors de l'installation de Moodle, les tables de la base de données sont générées et mises à jour par les divers scripts de gestion de la base de données situés à divers endroits. Il n'y a pas de schéma canonique, bien que les recommandations pour les structures de base de données donnent une esquisse de l'approche générale.

La raison pour laquelle l'information sur la base de données n'est pas stockée à un seul endroit est la structure modulaire de Moodle. Chaque module d'activité, par exemple, est livré dans un dossier contenant des fichiers php. Si le module a besoin de stocker des informations dans la base de données, il doit contenir dans un sous-dossier db les scripts php qui définissent et mettent à jour la structure de la base de données.

Comment obtenir/donner des informations en écrivant du code Moodle

Comment trouver l'utilisateur connecté ?

The global object $USER, which contains the numeric $USER->id among other things.

Comment trouver le cours actuel ?

The global object $COURSE, which contains the numeric $COURSE->id

Comment puis-je insérer/retirer des enregistrements dans une base de données, sans créer ma propre connexion à la base de données ?

Utiliser toujours les fonctions "datalib", par exemple insert_record() ou get_record(). Cela permet de conserver l'abstraction de base de données (par exemple pour faire fonctionner votre code indifféremment sous MySQL ou Postgres) aussi bien que de maintenir une seule connexion à la fois à la base de données. Moodle utilise ADODB pour l'abstraction de base de données.

Consultez la documentation de la librairie datalib.php pour une liste des fonctions et leurs détails d'utilisation.

Comment obtenir/définir des paramètres de configuration ?

To get config values you would typically access the global $CFG object directly, which is automatically created by the core Moodle scripts. To set these "main" config values use set_config($name, $value). The values are stored in the Moodle "config" database table, but these functions take care of cacheing on your behalf, so you should always use these rather than fetching the records directly.

There is also a second table of config settings specifically for plugins ("config_plugin"). These are not automatically loaded into the $CFG object, so to fetch these you would use get_config($plugin, $name). To set them use set_config($name, $value, $plugin).