Łatanie po aktualizacji

Posted
Comments None

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!

Author
Categories

Comments

There are currently no comments on this article.

Comment

Enter your comment below. Fields marked * are required. You must preview your comment before submitting it.





← Older Newer →