Aktualizacja Drooplera 1.4 do wersji 2.0
Niedawno ukazała się wersja 2.0 Drooplera, która przyniosła wiele nowości. Zdecydowaliśmy się na kilka poważnych zmian usprawniających pracę edytorską, dlatego też aktualizacja z wcześniejszej wersji 1.4 to proces złożony i wymagający uwagi programisty.
Opiszę tu wszystkie kroki potrzebne do migracji do Drooplera 2.0. Poradnik ten podzielę na dwie części, w zależności od sposobu instalacji. Przyda się zarówno osobom korzystającym z Composera, jak i preferującym paczki z dystrybucjami ze strony drupal.org.
Skrót przedstawionych tu informacji znajdziecie w dokumentacji. Pamiętajcie o wykonaniu kopii zapasowej przed podjęciem jakichkolwiek działań.
Droopler instalowany za pomocą Composera
Od początku istnienia Drooplera preferowanym sposobem jego instalacji było użycie Composera. Strony zainstalowane według naszych zaleceń mają w głównym katalogu następującą strukturę:
Pobranie wersji 2.0 wraz z modułami zależnymi
Pierwszym, najważniejszym krokiem jest pobranie nowej wersji Drooplera (wraz z towarzyszącymi modułami) za pomocą komendy:
composer update droptica/droopler --with-all-dependencies
1) Aktualizacja skórki droopler_subtheme
Drugim krokiem będzie przystosowanie dotychczasowej skórki droopler_subtheme do działania w nowej wersji. Najpierw upewnij się, czy lista regionów w pliku droopler_subtheme.info.yml jest identyczna, jak poniżej:
regions:
header: Header
secondary_menu: 'Secondary menu'
primary_menu: 'Primary menu'
lang_menu: 'Language menu'
page_top_content: 'Page top'
page_top: 'Page top'
page_bottom: 'Page bottom'
page_bottom_content: 'Page bottom'
highlighted: Highlighted
featured_top: 'Featured top'
breadcrumb: Breadcrumb
admin_tabs: 'Admin tabs'
content: Content
facets_top: 'Facets top'
facets_left_top: 'Facets left top'
facets_left: 'Facets left'
sidebar_left: 'Sidebar left'
sidebar_right: 'Sidebar right'
featured_bottom_first: 'Featured bottom first'
featured_bottom_second: 'Featured bottom second'
featured_bottom_third: 'Featured bottom third'
footer_first: 'Footer first'
footer_second: 'Footer second'
footer_third: 'Footer third'
footer_fourth: 'Footer fourth'
footer_fifth: 'Footer fifth'
footer_sixth: 'Footer sixth'
footer_main: 'Footer Main'
Następnie wejdź na stronę repozytorium droopler_project i zastąp następujące pliki w Twojej skórce nowszymi wersjami - uważając przy tym, aby nie usunąć własnych modyfikacji:
- gulpfiles.js
- package.json
Usuń plik package-json.lock i wywołaj następujące komendy:
- npm install w katalogu profiles/contrib/droopler/themes/custom/droopler_theme,
- gulp compile w katalogu profiles/contrib/droopler/themes/custom/droopler_theme.
- npm install w katalogu themes/custom/droopler_subtheme,
- gulp compile w katalogu themes/custom/droopler_subtheme.
2) Przywrócenie starego schematu kolorów
Wersja 2.0 posiada nowy schemat kolorów, kolor niebieski został zamieniony na ciemnoczerwony. Jeśli chcesz powrócić do poprzedniej kolorystyki, zlokalizuj następujący plik:
themes/custom/droopler_theme/scss/config/_old_color_scheme.scss
Skopiuj jego zawartość do pliku _colors.scss w Twojej skórce droopler_subtheme.
3) Przeprowadzenie migracji szablonu Composer
Wraz z wydaniem Drupala 8.8 został udostępniony oficjalny szablon Composer, nieco inny od poprzedniego, używanego również w Drooplerze 1.4. Jeśli preferujesz najnowocześniejsze rozwiązania, uaktualnij swój plik composer.json do postaci dostępnej w repozytorium droopler_project. Jeśli Twoja wersja nie ma zmian w stosunku do oryginału, możesz po prostu podmienić ten plik na nowszą wersję. Po dokonaniu zmian usuń katalogi scripts/composer oraz drush.
4) Zaktualizowanie bazy danych
Proces aktualizacji bazy danych przedstawię na końcu artykułu, jest on bowiem wspólny dla wszystkich rodzajów instalacji.
Droopler instalowany z Drupal.org
Instalacja Drooplera z paczki na portalu drupal.org jest bardzo prosta, jednakże proces aktualizacji wymaga wykonania kilku dodatkowych, trudniejszych kroków. Stopień trudności będzie się różnił w zależności od tego, czy Drupal i zewnętrzne moduły były aktualizowane po instalacji wersji 1.4.
Na początek pobierz ze strony https://www.drupal.org/project/droopler najnowszą wersję Drooplera 2.0.
1) Zaktualizowanie Drupala do nowej wersji
Zaczniemy od uaktualnienia samego Drupala. Podmień katalogi core i vendor na te pochodzące ze ściągniętego właśnie pliku. Pobierz wersję 1.6 modułu Pathauto (z tego adresu) i zastąp istniejącą wersję tego modułu z katalogu modules/contrib/pathauto (będzie jeszcze czas na uaktualnienie go do najnowszej wersji) Uruchom skrypt aktualizujący /update.php.
2) Zaktualizowanie modułów do nowej wersji
Teraz pora na moduły. Usuń wszystkie katalogi oprócz menu_link_attributes z katalogu modules/contrib i zastąp je modułami z paczki z drupal.org, z katalogu profiles/droopler/modules/contrib. Następnie uruchom skrypt /update.php.
Jeśli otrzymasz błąd w module Paragraph, usuń z pliku modules/contrib/paragraphs/paragraphs.install funkcję paragraphs_update_8017() i wywołaj ponownie skrypt /update.php
3) Usunięcie starych modułów i profilów
Pierwszym krokiem do aktualizacji Drooplera będzie usunięcie starego kodu:
- Z głównego katalogu usuń katalogi: drupal_config, drush, libraries, profiles, scripts oraz wszystkie pliki. Pozostaw katalogi modules, sites i themes. Zwróć uwagę, aby nie usunąć plików i katalogów dodanych przez Ciebie.
- Z katalogu modules/contrib usuń moduły: admin_toolbar, better_exposed_filters, checklistapi, colorbox, config_update, contact_formatter, ctools, entity_reference_revisions, facets, features, field_group, geysir, google_analytics, google_tag, link_attributes, linkit, metatag, paragraphs, pathauto, redirect, search_api, simple_sitemap, smtp, svg_image, token, tvi. Pozostaw moduł menu_link_attributes (możesz przy okazji zaktualizować go do nowej wersji ze strony https://www.drupal.org/project/menu_link_attributes).
4) Wgranie plików wersji 2.0
Wgraj pozostałe pliki z paczki Drooplera 2.0 z drupal.org do swojej strony. Uważaj, aby nie nadpisać katalogów core, modules, sites, themes i vendor.
5) Zaktualizowanie bazy danych
Przejdź na koniec artykułu, aby dowiedzieć się więcej na ten temat.
Jeśli napotkasz błąd spowodowany brakującą skórką droopler_theme, wykonaj w bazie danych (np. przez phpMyAdmin) zapytanie przebudowujące ścieżki w systemie (to samo zrobi funkcja drupal_flush_all_caches()):
SELECT * FROM `key_value` WHERE `name` LIKE 'system.profile.files'
6) Dostosowanie skórki
Jeśli używana przez Ciebie skórka droopler_subtheme nie zawiera żadnych modyfikacji w stosunku do oryginału, możesz ją zmienić na Droopler Theme 8.x-2.0 (kliknij na Wygląd/Appearance w górnym menu).
Jeśli Twoja skórka droopler_subtheme zawiera modyfikacje, uaktualnij ją do wersji 2.0. Jeśli wykorzystujesz SCSS, zajrzyj na początek tego artykułu, gdzie opisaliśmy procedurę migracji skórki dla instalacji z Composerem. Jest ona niemal identyczna dla instalacji z drupal.org.
Jeśli Twoje modyfikacje są niewielkie i nie chcesz tracić czasu na uaktualnianie skórki, zbuduj ją od nowa. W katalogu profiles/droopler/themes/custom/droopler_theme znajdziesz podkatalogi STARTERKIT_SCSS i STARTERKIT_SCSS zawierające odpowiednio szablony skórek dla użytkowników korzystających i niekorzystających z kompilatora SCSS. Każdy z szablonów zawiera plik README.md z instrukcją.
Aktualizacja bazy danych
Droopler 2.0 zawiera kompletną ścieżkę aktualizacji z wersji 1.4. Obejmuje ona m.in:
- Włączenie nowych paragrafów
- Uporządkowanie i wzbogacenie istniejących paragrafów o nowe pola
- Zamianę wszystkich obrazków na Media
- Konfigurację MegaMenu
- Zabiegi optymalizacyjne
Aktualizację uruchomisz za pośrednictwem skryptu /update.php lub wywołując komendę
drush updb
Po dokonaniu aktualizacji zobaczysz następujący komunikat:
Oznacza on, że nie wszystkie operacje mogły być dokonane automatycznie. Przejrzyj checklistę w poszukiwaniu niezaznaczonych elementów. Aby samodzielnie przeprowadzić daną aktualizację, podążaj za instrukcjami na liście.
Podsumowanie
Patrząc na liczbę powyższych kroków, aktualizacja do wersji 2.0 jest procesem dość złożonym. W razie jakichkolwiek problemów zachęcamy do zgłoszenia ticketu na stronie Drooplera na drupal.org. Zespół programistów oraz powiązana z nimi społeczność działają bardzo prężnie, żadne pytanie nie pozostanie więc bez odpowiedzi.