Tę instancję Textpattern instalowałem z “gotowca” z Installatron – skoro można, to po co kombinować? Tylko że jeśli najnowszej wersji aplikacji Installatron dalej nie ma, to nic się nie zaktualizuje. No ale że wreszcie się doczekałem – backup, update, próbujemy.
Natychmiast nastąpiła rozsypka. Wszystkie polskie litery diabli wzięli. Niby kodowanie UTF8 jest, ale zamiast literek mamy krzaki. Nie będę się bawić w ręczne poprawianie wszystkich znaków we wszystkich artykułach, więc trzeba poszukać informacji o podobnych problemach. Dodanie w .htaccess linii
AddDefaultCharset utf-8
nie pomogło, ale przy okazji przeszukiwania Sieci znalazłem coś ciekawego. Otóż podobno trzeba w aplikacji poprawić plik textpattern\lib\txplib_db.php i wyciąć z niego kilka linii. Tylko których? Chwila dłubania – bo przecież podane numery linii raczej nie będą identyczne w pliku z nowszej wersji, więc trzeba się zorientować, co trzeba wyciąć – i już wiem: do wycięcia jest sprawdzenie, czy nie używamy czasem pewnych wersji bazy danych, z którymi są problemy. Tylko że kod sprawdzający wersję MySQL (w wymaganiach oficjalnych Textpattern widzimy “MySQL 5.0.3+ (version 5.5+ recommended)”) narobi nam bigosu, kiedy Textpattern uruchomimy na MariaDB 10 (u mnie: 10.3.22-MariaDB-cll-lve). Potrzebna jest zatem łatka (diff) na plik txplib_db.php robiąca coś takiego:
256,266c256,257
< // Be backwards compatible.
< if ($this->charset && (version_compare($version, '5') >= 0 || preg_match('#^4\.[1-9]#', $version))) {
< mysqli_query($this->link, "SET NAMES ".$this->charset);
< $this->table_options['charset'] = $this->charset;
<
< if ($this->charset == 'utf8mb4') {
< $this->table_options['collate'] = "utf8mb4_unicode_ci";
< } elseif ($this->charset == 'utf8') {
< $this->table_options['collate'] = "utf8_general_ci";
< }
< }
---
> // Be backwards compatible.
> // (removed DB feature detection that doesn't work with my MariaDB 10)
Łatka pasuje do Textpattern 4.8.1 – robimy update aplikacji, po czym łatamy i wgrywamy poprawiony plik txplib_db.php (oraz pamiętamy, że diagnostyka Textpattern będzie marudzić na tę ręczną zmianę). A po tym: jeśli temat sitemap załatwiało nam rozszerzenie rah_sitemap w tak starej wersji jak 1.3.0, to należałoby zdecydować, czy teraz zrobić mapę witryny ręcznie, w ogóle bez rozszerzenia (a podobno już się tak da), czy po prostu uaktualnić rozszerzenie. Wolałem uaktualnić, ściągnąłem bieżącą wersję rah_sitemap i wgrałem, całość “gra i buczy”. Można już z powrotem skupić się na pisaniu!
Comments
Commenting is closed for this article.