# MOODLE API FORMATION EMY

## API Moodle

### Informations de Connexion API

- **Utilisateur API (Administrateur)** : `api_moodle`
- **Mot de passe** : `2D2wBTZQmnHYR1%x@jSm`
- **Email** : `<api@moodle.fr>`
- **Token** : `8301db85d11b9665b30060ce79231296`

![API Moodle](media/image1.png)

---

### Fonctions Activées pour l'API


```
| Fonction | Description |
|----------|-------------|
| `core_competency_search_competencies` | Search a list of a competencies. |
| `core_course_get_contents` | Get course contents |
| `core_course_get_courses` | Return course details |
| `core_course_get_module` | Returns html with one activity module on course page |
| `core_course_search_courses` | Search courses by (name, module, block, tag) |
| `core_enrol_get_users_courses` | Get the list of courses where a user is enrolled in |
| `core_search_get_results` | Get search results. |
| `core_user_get_users` | search for users matching the parameters |
| `core_webservice_get_site_info` | Return some site info / user info / list web service functions |
| `mod_glossary_get_categories` | Get the categories. |
| `mod_glossary_get_entries_by_category` | Browse entries by category. |
| `mod_glossary_get_entries_by_letter` | Browse entries by letter. |
| `mod_glossary_get_entries_by_search` | Browse entries by search query. |
| `mod_glossary_get_entries_by_term` | Browse entries by term (concept or alias). |
| `mod_glossary_get_glossaries_by_courses` | Retrieve a list of glossaries from several courses. |
| `mod_page_get_pages_by_courses` | Returns a list of pages in a provided list of courses, if no list is provided all pages that the user can view will be returned. |
| `mod_resource_get_resources_by_courses` | Returns a list of files in a provided list of courses, if no list is provided all files that the user can view will be returned. |
| `mod_wiki_get_page_contents` | Returns the contents of a page. |

```

---

## Bibliothèque FTP

### Création d'un Dossier de Stockage

Création d'un dossier de stockage pour les images / vidéos :

- **Chemin** : `/moodledata2/repository/cours_medias`

### Configuration du Dépôt

- **Administration du site → Plugins → Dépôts → Gérer les dépôts**

![Gestion des dépôts](media/image2.png)

---

## Gestion des Cours et Activités

### Création d'un Cours

- Création d'un cours **Recherche Flux Atoo Next**

### Ajout d'une Activité

- Ajout d'une activité **Base de données**

### Dépôt dans le Cours

- Création d'un dépôt dans le cours **Flux Atoo**

![Dépôt du cours Flux Atoo](media/image3.png)

---

## Entités Principales

### 1. Fonctionnalité
- Exemple : *"Export Article > Catégories > À partir du catalogue produits"*

### 2. ERP
- Exemple : Sage 50, EBP...

### 3. Plateforme e-commerce
- Exemples : PrestaShop, WooCommerce, Shopify

### 4. Exemple Concret
- Le contenu réel que vous voulez créer

---

## Module "Base de Données" Moodle

### Champs du Module

- **Fonctionnalité** (texte ou liste)
- **ERP** (liste)
- **Boutique** (liste)
- **Description**
- **Exemple concret**
- **Fichier** (XML, capture, etc.)
- **Notes techniques**

### Organisation des Fichiers

```
/ERP-Connecteurs/
/Features/
/Export_Article_Categories/
/Sage50/
/Prestashop/
exemple.xml
screenshot.png
/Shopify/
/EBP/
```

### Nommage des Features

- `F001_Export_Article_Categories`
- `F002_Export_Clients_Code`

### Base de Données : Flux Atoo-Sync GesCom

![Flux Atoo-Sync GesCom](media/image4.png)

---

## Fonctions pour Lire dans le Module Base de Données

- `mod_data_get_entries`
- `mod_data_get_entry`
- `mod_data_search_entries`

---

## Création d'un Module Personnalisé

### Structure des Dossiers

Création du dossier pour le plugin personnalisé :

```
moodle/
└── local/
└── search_bdd/ # Ton plugin personnalisé
```

### Création des Fichiers

```
local/search_bdd/
├── version.php
├── externallib.php
```

### Installation du Plugin

1. Aller dans **Administration → Notifications**
2. Moodle détecte le plugin et installe la base de données

![Installation du plugin](media/image5.png)

---

## Ajout de la Fonctionnalité à l'API

Ajouter la fonctionnalité `local_search_bdd_get_entries` à l'API Moodle

![Ajout fonctionnalité API](media/image6.png)

### Résultat Final

![Résultat final de l'API](media/image7.png)

---

## Fonctions Activées pour l'API Moodle

```
| Fonction | Description |
|----------|-------------|
| `mod_data_get_entries` | Récupère les entrées d'une base de données |
| `mod_data_get_entry` | Récupère une entrée spécifique d'une base de données |
| `mod_data_search_entries` | Recherche des entrées dans une base de données |
| `local_search_bdd_get_entries` | Fonction personnalisée pour lire dans la base de données (module search_bdd) |
```
---

> **Note :** Ce document récapitule l'ensemble de la configuration de l'API Moodle, les fonctionnalités activées, la gestion des dépôts FTP, la création de cours et activités, ainsi que l'implémentation d'un module personnalisé pour interagir avec la base de données.

---