Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[PoC] IBX-7097: Training structure #2372

Draft
wants to merge 21 commits into
base: master
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
62 changes: 62 additions & 0 deletions docs/trainings/a_training_topic/a_late_training/000_syllabus.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
---

Check warning on line 1 in docs/trainings/a_training_topic/a_late_training/000_syllabus.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/trainings/a_training_topic/a_late_training/000_syllabus.md#L1

[Ibexa.ReadingLevel] The grade level is 4.99. Aim for 8th grade or lower by using shorter sentences and words.
Raw output
{"message": "[Ibexa.ReadingLevel] The grade level is 4.99. Aim for 8th grade or lower by using shorter sentences and words.", "location": {"path": "docs/trainings/a_training_topic/a_late_training/000_syllabus.md", "range": {"start": {"line": 1, "column": 1}}}, "severity": "WARNING"}
description: Training page template
---

[[% include 'snippets/experience_badge.md' %]] [[% include 'snippets/commerce_badge.md' %]]
# The late training title

## Syllabus

In this training, you learn to… …with HTTP cache…

| Section | Estimated | Description |
|:------------|----------:|:---------------------------------------------------------|
| Lorem ipsum | T minutes | Lorem ipsum dolor sit amet, consectetur adipiscing elit. |

## Requirements

This is what you need to know to set up your training environment.

Check warning on line 18 in docs/trainings/a_training_topic/a_late_training/000_syllabus.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/trainings/a_training_topic/a_late_training/000_syllabus.md#L18

[Ibexa.UnclearAntecedent] Instead of 'This is', try starting this sentence with a specific subject and verb.
Raw output
{"message": "[Ibexa.UnclearAntecedent] Instead of 'This is', try starting this sentence with a specific subject and verb.", "location": {"path": "docs/trainings/a_training_topic/a_late_training/000_syllabus.md", "range": {"start": {"line": 18, "column": 1}}}, "severity": "WARNING"}

### Previous trainings

You should have mastered the following training(s) before starting this *The late training title*:

- [An early training](../an_early_training/000_syllabus.md)

### Ibexa DXP edition

[[= product_name_exp =]] is the minimal edition required by this training.

- [[= product_name_exp =]] [[= latest_tag_4_6 =]]
- [[= product_name_com =]] [[= latest_tag_4_6 =]]

!!! note

You can use [`experience-skeleton`'s DDEV feature](ddev_interactive_launcher.md#experience)

For more suggestions about your training environment, see [Training environment](trainings.md#training-environment).

### Cluster elements

This training needs a reverse proxy for HTTP cache. For a local installation, Varnish is recommended.

| Service | Required | Value |
|--------------:|:--------:|:-------------|
| Search engine | No | (Legacy) |
| Cache pool | No | (Filesystem) |
| HTTP cache | **Yes** | Varnish |

### Starting state

To follow this training, you must install code, config and data on top of a fresh installation.

Check warning on line 51 in docs/trainings/a_training_topic/a_late_training/000_syllabus.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/trainings/a_training_topic/a_late_training/000_syllabus.md#L51

[Ibexa.OxfordComma] Use a comma before the last 'and' or 'or' in a list of four or more items.
Raw output
{"message": "[Ibexa.OxfordComma] Use a comma before the last 'and' or 'or' in a list of four or more items.", "location": {"path": "docs/trainings/a_training_topic/a_late_training/000_syllabus.md", "range": {"start": {"line": 51, "column": 1}}}, "severity": "WARNING"}

1. Download the [starting state archive](download/a_late_training.start.zip).
1. Put this archive at the root of your [[= product_name =]] training installation.
1. In a terminal, run the following commands at the root of your [[= product_name =]] training installation:
```bash
unzip a_late_training.start.zip
tail -n+2 config/append_to_services.yaml >> config/services.yaml
rm config/append_to_services.yaml
php bin/console ibexa:migrations:migrate --file=a_late_training_content_types.yml --siteaccess=admin
php bin/console ibexa:migrations:migrate --file=a_late_training_contents.yml --siteaccess=admin
```
Binary file not shown.
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
services:

App\Command\TrainingCommand: ~
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
<?php

namespace App\Command;

use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\OutputInterface;

class TrainingCommand extends Command
{
protected static $defaultName = 'app:training';

protected static $defaultDescription = 'Lorem ipsum dolor sit amet';

public function __construct()
{
parent::__construct();
}

protected function execute(InputInterface $input, OutputInterface $output): int
{
return Command::SUCCESS;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
-
type: content_type
mode: create
metadata:
identifier: training_content_type_container
-
type: content_type
mode: create
metadata:
identifier: training_content_type_item
-
type: content_type
mode: create
metadata:
identifier: training_content_type_resource
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
-
type: content
mode: create
metadata:
contentType: folder
location:
parentLocationId: 2
fields:
-
fieldDefIdentifier: name
languageCode: eng-GB
value: Training
-
type: content
mode: create
metadata:
contentType: training_content_type_container
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{% extends '@ibexadesign/pagelayout.html.twig' %}

{% block content %}
{% endblock %}
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{% extends '@ibexadesign/pagelayout.html.twig' %}

{% block content %}
{% endblock %}
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
<!doctype html>
<html>
<head>
</head>
<body>
{% block content %}{% endblock %}
</body>
</html>
55 changes: 55 additions & 0 deletions docs/trainings/a_training_topic/an_early_training/000_syllabus.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
---

Check warning on line 1 in docs/trainings/a_training_topic/an_early_training/000_syllabus.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/trainings/a_training_topic/an_early_training/000_syllabus.md#L1

[Ibexa.ReadingLevel] The grade level is 2.53. Aim for 8th grade or lower by using shorter sentences and words.
Raw output
{"message": "[Ibexa.ReadingLevel] The grade level is 2.53. Aim for 8th grade or lower by using shorter sentences and words.", "location": {"path": "docs/trainings/a_training_topic/an_early_training/000_syllabus.md", "range": {"start": {"line": 1, "column": 1}}}, "severity": "WARNING"}
description: Training page template
---

# The early training title

## Syllabus

In this training, you learn to…

| Section | Estimated | Description |
|:--------------------------------------------------------|-----------:|:-------------------------------------------------------------------------------------|
| [First chapter](010_first_chapter.md) | 2 minutes | Introduction to … |
| First chapter: [Fist section](011_first_section.md) | 10 minutes | Lorem ipsum dolor sit amet, consectetur adipiscing elit. |
| First chapter: [Second section](012_second_section.md) | 20 minutes | Sed non risus. |
| [Second chapter](020_second_chapter.md) | 3 minutes | Introduction to … |
| Second chapter: [Fist section](021_first_section.md) | 10 minutes | Suspendisse lectus tortor, dignissim sit amet, adipiscing nec, ultricies sed, dolor. |
| Second chapter: [Second section](022_second_section.md) | 45 minutes | Cras elementum ultrices diam. |

## Requirements

This is what you need to know to set up your training environment.

Check warning on line 22 in docs/trainings/a_training_topic/an_early_training/000_syllabus.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/trainings/a_training_topic/an_early_training/000_syllabus.md#L22

[Ibexa.UnclearAntecedent] Instead of 'This is', try starting this sentence with a specific subject and verb.
Raw output
{"message": "[Ibexa.UnclearAntecedent] Instead of 'This is', try starting this sentence with a specific subject and verb.", "location": {"path": "docs/trainings/a_training_topic/an_early_training/000_syllabus.md", "range": {"start": {"line": 22, "column": 1}}}, "severity": "WARNING"}

### Previous trainings

You can start this training right away.

### Ibexa DXP edition

This training can be done on all editions.

- [[= product_name_oss =]] [[= latest_tag_4_6 =]]
- [[= product_name_headless =]] [[= latest_tag_4_6 =]]
- [[= product_name_exp =]] [[= latest_tag_4_6 =]]
- [[= product_name_com =]] [[= latest_tag_4_6 =]]

!!! note

You can use [`oss-skeleton`'s DDEV feature](ddev_interactive_launcher.md#oss)

For more suggestions about your training environment, see [Training environment](trainings.md#training-environment).

### Cluster elements

This training can be done with the minimal installation.

| Service | Required | Value |
|--------------:|:--------:|:-------------|
| Search engine | No | (Legacy) |
| Cache pool | No | (Filesystem) |
| HTTP cache | No | |

### Starting state

The training can be done on a fresh clean installation.
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
description: Training page template
---

# The early training title: First chapter
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
description: Training page template
---

# The early training title: First chapter: First section
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
description: Training page template
---

# The early training title: First chapter: Second section
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
description: Training page template
---

# The early training title: Second chapter
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
description: Training page template
---

# The early training title: Second chapter: First section
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
description: Training page template
---

# The early training title: Second chapter: Second section
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
---

Check warning on line 1 in docs/trainings/a_training_topic/an_early_training/999_conclusion.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/trainings/a_training_topic/an_early_training/999_conclusion.md#L1

[Ibexa.ReadingLevel] The grade level is 4.49. Aim for 8th grade or lower by using shorter sentences and words.
Raw output
{"message": "[Ibexa.ReadingLevel] The grade level is 4.49. Aim for 8th grade or lower by using shorter sentences and words.", "location": {"path": "docs/trainings/a_training_topic/an_early_training/999_conclusion.md", "range": {"start": {"line": 1, "column": 1}}}, "severity": "WARNING"}
description: Training page template
---

# The late training title

## Next training(s)

To go further, you can now take the following trainings:

- [A late training](../a_late_training/000_syllabus.md)
7 changes: 7 additions & 0 deletions docs/trainings/ddev_interactive_launcher.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---

Check warning on line 1 in docs/trainings/ddev_interactive_launcher.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/trainings/ddev_interactive_launcher.md#L1

[Ibexa.ReadingLevel] The grade level is 43.80. Aim for 8th grade or lower by using shorter sentences and words.
Raw output
{"message": "[Ibexa.ReadingLevel] The grade level is 43.80. Aim for 8th grade or lower by using shorter sentences and words.", "location": {"path": "docs/trainings/ddev_interactive_launcher.md", "range": {"start": {"line": 1, "column": 1}}}, "severity": "WARNING"}
description: Easily build a DDEV stack, and run Ibexa DXP
---

# DDEV Interactive launcher

https://github.com/ibexa/website-skeleton/pull/14 documentation
27 changes: 27 additions & 0 deletions docs/trainings/trainings.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
---

Check warning on line 1 in docs/trainings/trainings.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/trainings/trainings.md#L1

[Ibexa.ReadingLevel] The grade level is 8.06. Aim for 8th grade or lower by using shorter sentences and words.
Raw output
{"message": "[Ibexa.ReadingLevel] The grade level is 8.06. Aim for 8th grade or lower by using shorter sentences and words.", "location": {"path": "docs/trainings/trainings.md", "range": {"start": {"line": 1, "column": 1}}}, "severity": "WARNING"}
description: Train yourself on different topics
---

# Trainings

TODO: Introduction to trainings

## Learning path

Each training starts with a list of the trainings you should previously master before going into the selected one.

If you're new to Ibexa DXP, your first training is _[The early training title](docs/trainings/a_training_topic/an_early_training/000_syllabus.md)_.

Check failure on line 13 in docs/trainings/trainings.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/trainings/trainings.md#L13

[Ibexa.VariablesGlobal] Use global variable '[[= product_name_base =]]' instead of 'Ibexa'
Raw output
{"message": "[Ibexa.VariablesGlobal] Use global variable '[[= product_name_base =]]' instead of 'Ibexa'", "location": {"path": "docs/trainings/trainings.md", "range": {"start": {"line": 13, "column": 18}}}, "severity": "ERROR"}

## Training environment

You need a running instance of Ibexa DXP to take a training.

Check failure on line 17 in docs/trainings/trainings.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/trainings/trainings.md#L17

[Ibexa.VariablesGlobal] Use global variable '[[= product_name_base =]]' instead of 'Ibexa'
Raw output
{"message": "[Ibexa.VariablesGlobal] Use global variable '[[= product_name_base =]]' instead of 'Ibexa'", "location": {"path": "docs/trainings/trainings.md", "range": {"start": {"line": 17, "column": 32}}}, "severity": "ERROR"}

Each training starts with its technical requirements.
Some trainings provide some additional set-up (such as code, content, or config) to install before starting the training.

You can use whatever solution that suits you to run an Ibexa DXP in the required edition for your training.

Check failure on line 22 in docs/trainings/trainings.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/trainings/trainings.md#L22

[Ibexa.VariablesGlobal] Use global variable '[[= product_name_base =]]' instead of 'Ibexa'
Raw output
{"message": "[Ibexa.VariablesGlobal] Use global variable '[[= product_name_base =]]' instead of 'Ibexa'", "location": {"path": "docs/trainings/trainings.md", "range": {"start": {"line": 22, "column": 56}}}, "severity": "ERROR"}
You'll need to access the Ibexa DXP code, the servers' configs, and command lines.

Check failure on line 23 in docs/trainings/trainings.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/trainings/trainings.md#L23

[Ibexa.VariablesGlobal] Use global variable '[[= product_name_base =]]' instead of 'Ibexa'
Raw output
{"message": "[Ibexa.VariablesGlobal] Use global variable '[[= product_name_base =]]' instead of 'Ibexa'", "location": {"path": "docs/trainings/trainings.md", "range": {"start": {"line": 23, "column": 27}}}, "severity": "ERROR"}

[DDEV](install_with_ddev.md) can be used to build such training installation.

TODO: Especially with incoming https://github.com/ibexa/website-skeleton/pull/14
14 changes: 14 additions & 0 deletions mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,20 @@ nav:
- 6. Implement settings: tutorials/generic_field_type/6_settings.md
- 7. Add basic validation: tutorials/generic_field_type/7_add_a_validation.md
- 8. Data migration: tutorials/generic_field_type/8_data_migration.md
- Trainings:
- Trainings: trainings/trainings.md
- A training topic:
- An early training:
- Syllabus: trainings/a_training_topic/an_early_training/000_syllabus.md
- 'First chapter: Introduction': trainings/a_training_topic/an_early_training/010_first_chapter.md
- 'First chapter: First section': trainings/a_training_topic/an_early_training/011_first_section.md
- 'First chapter: Second section': trainings/a_training_topic/an_early_training/012_second_section.md
- 'Second chapter: Introduction': trainings/a_training_topic/an_early_training/020_second_chapter.md
- 'Second chapter: First section': trainings/a_training_topic/an_early_training/021_first_section.md
- 'Second chapter: Second section': trainings/a_training_topic/an_early_training/022_second_section.md
- Conclusion: trainings/a_training_topic/an_early_training/999_conclusion.md
- A late training:
- Syllabus: trainings/a_training_topic/a_late_training/000_syllabus.md
- API:
- API: api/api.md
- PHP API: api/php_api/php_api.md
Expand Down
10 changes: 10 additions & 0 deletions tools/trainings.downloads.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
for container in $(find docs/trainings -type d -a -name download); do
for folder in $(find $container -type d -a -mindepth 1 -a -maxdepth 1); do
cd $folder; #pwd;
archive="$(basename $(dirname $container)).$(basename $folder).zip";
rm -f ../$archive;
echo "$archive ← $folder";
zip -r ../$archive ./* ;
cd - > /dev/null;
done;
done;
Loading