Commit bf15a194 authored by Administrator's avatar Administrator 💬

feat: add the translations menu on lessons pages

parent 5cff8910
Pipeline #11273 failed with stage
......@@ -355,6 +355,7 @@ class M3P2Plugin extends Plugin
return;
}
$current_lesson_lang = $target_pages[0]->language();
$current_lesson_name = "";
$other_lessons = []; // of slug => ['name' => …, 'slug' => …]
foreach ($target_pages as $target_page) {
......@@ -378,15 +379,53 @@ class M3P2Plugin extends Plugin
}
}
//dd($other_lessons);
$translated_lessons = []; // lang => slug
$translated_lessons_contenders = []; // lang => [ slug => likelihood ]
foreach ($target_pages as $target_page) {
$translated_target_pages = $this->getTranslationsOfPage($target_page);
foreach ($translated_target_pages as $translated_target_page) {
/** @var Page $translated_target_page */
$lang = $translated_target_page->language();
if ($lang == $current_lesson_lang) { continue; }
$page_config = $translated_target_page->header();
if ( ! isset($page_config->lessons) || empty($page_config->lessons)) {
return false;
}
foreach ($page_config->lessons as $lesson) {
if ( ! isset($lesson['slug'])) { continue; }
if ( ! isset($translated_lessons_contenders[$lang])) {
$translated_lessons_contenders[$lang] = [];
}
if ( ! isset($translated_lessons_contenders[$lang][$lesson['slug']])) {
$translated_lessons_contenders[$lang][$lesson['slug']] = 0;
}
$translated_lessons_contenders[$lang][$lesson['slug']] += 1;
}
}
}
foreach ($translated_lessons_contenders as $lang => $slug_to_likelihood) {
$best_likelihood = 0;
foreach ($slug_to_likelihood as $slug => $likelihood) {
if ($likelihood > $best_likelihood) {
$best_likelihood = $likelihood;
$translated_lessons[$lang] = $slug;
}
}
}
// dd($translated_lessons);
$this->grav['twig']->twig()->addGlobal('target_pages', $target_pages);
$this->grav['twig']->twig()->addGlobal('related_lessons', $other_lessons);
$this->grav['twig']->twig()->addGlobal('disable_multilingual', true);
// hotfix until we know how to fetch the appropriate translation
// disabled in template lesson-columns.html.twig
//$this->grav['twig']->twig()->addGlobal('disable_language_selector', true);
$this->grav['twig']->twig()->addGlobal('translated_lessons', $translated_lessons);
$page = new Page();
$page->init(new \SplFileInfo(__DIR__ . '/pages/lesson-columns.md'));
......
......@@ -30,6 +30,11 @@
{# Disable the language selector. #}
{# We also do this procedurally in user/plugins/m3-p2/m3-p2.php #}
{% block header_language_selection %}
{% embed 'partials/language-selector.html.twig' %}
{% block polyglot_language_selector %}{% endblock %}
{% endembed %}
{% if related_lessons %}
<div id="lesson-selector" class="dropdown-selector">
......
......@@ -14,9 +14,12 @@
{% set show_language = true %}
{% if uri.paths and uri.paths(0) == "lesson" %}
{% if uri.paths and uri.paths(0) == "lessons" %}
{% set base_lang_url = base_url_simple ~ grav.language.getLanguageURLPrefix(language) %}
{% set lang_url = base_lang_url ~ uri.path %}
{% set lang_url = base_lang_url ~ "/lessons/" ~ translated_lessons[language] %}
{% if language == language_selector.current %}
{% set show_language = false %}
{% endif %}
{% else %}
{% if language == language_selector.current %}
{% set lang_url = page.url %}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment