sruupl / batflat

Lightweight, fast and easy CMS for free. Bootstrap ready. https://batflat.org
MIT License
135 stars 54 forks source link

Kiedy Batflat w wersji MySQL? #85

Closed Mezir closed 2 years ago

Mezir commented 4 years ago

Hej, bardzo mi brakuje Batflata w wersji MySQL. Czy będzie dostępny?

Mezir commented 4 years ago

@sruupl

Mezir commented 4 years ago

@michu2k czy ty zajmujesz się batflatem?

michu2k commented 4 years ago

Cześć @Mezir Wydaje mi się, że w Batflacie była możliwość podpięcia MySQL zamiast SQLite. Spróbuje potestować i dam ci znać.

michu2k commented 4 years ago

@Mezir Przetestowałem i BF faktycznie da się odpalić na MySQL, jednak, żeby to zrobić trzeba się trochę natrudzić. Niestety schema SQLite nie jest w pełni kompatybilna z MySQL, to znaczy, że będziesz musiał zmieniać niektóre pola typu AUTOINCREMENT => AUTO_INCREMENT. Udało mi się uruchomić Batflata, jednak nadal było dużo błędów od strony modułów. W każdym module są jakieś zapytania do DB, więc będzie trzeba przejrzeć wszystkie pliki i poprawić tak, aby nie wywalało żadnych błędów.

A odpowiadając na twoje pierwsze pytanie, to prawdopodobnie nie.

Mezir commented 4 years ago

@michu2k też próbowałem przerobić i po części się udało lecz puki co jest problem podczas dodawania nowej pozycji do menu.

Fatal error: Uncaught PDOException: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '"order") VALUES('pl_polski','fddf',0,'blog','',0,'1',3)' at line 1 in /home/xoxo/websites/domena.pl/inc/core/lib/QueryBuilder.php:882 Stack trace: #0 /home/xoxo/websites/domena.pl/inc/core/lib/QueryBuilder.php(882): PDOStatement->execute() #1 /home/xoxo/websites/domena.pl/inc/core/lib/QueryBuilder.php(861): Inc\Core\Lib\QueryBuilder->_query('INSERT INTO nav...') #2 /home/xoxo/websites/domena.pl/inc/core/lib/QueryBuilder.php(537): Inc\Core\Lib\QueryBuilder->_build() #3 /home/xoxo/websites/domena.pl/inc/modules/navigation/Admin.php(165): Inc\Core\Lib\QueryBuilder->save(Array) #4 [internal function]: Inc\Modules\Navigation\Admin->postSaveLink() #5 /home/xoxo/websites/domena.pl/inc/core/Admin.php(117): call_user_func_array(Array, Array) #6 /home/xoxo/websites/ts.podlasie. in /home/xoxo/websites/domena.pl/inc/core/lib/QueryBuilder.php on line 882

Jesteś mi w stanie pomóc?

michu2k commented 4 years ago

@Mezir Musisz zmienić nazwe tabeli, gdyż order jest nazwą zarezerwowaną. Dodatkowo też musisz usunąć " z funkcji, np. desc('column') zamiast desc('"column"').

Mezir commented 4 years ago

@michu2k zmieniłem i działa dodawanie ale jest kolejny problem bo na stronie głównej dubluje menu i nie wiem dlaczego. Screen: https://i.imgur.com/RgEdX0i.png

michu2k commented 4 years ago

Zobacz, czy zmieniłeś order również w pliku Site.php. Zawsze jak będzie jakiś grubszy problem z zapytaniem to możesz zastosować funkcję exec() i napisać całe zapytanie (więcej w dokumentacji).

Mezir commented 4 years ago

@michu2k wpisałem zapytanie ręcznie w phpmyadmin SELECT navs_items.*,pages.slug FROM navs_items LEFT JOIN pages ON pages.id = navs_items.page WHERE navs_items.nav = 1 AND navs_items.lang = "pl_polski" ORDER BYsortingASC

Otrzymałem taki wynik: https://i.imgur.com/tZvg4VG.png Nie wiem dlaczego wyświetliło kilka razy.

michu2k commented 4 years ago

Pewnie jakiś wcześniejszy błąd przy dodawaniu, chociaż i tak dziwne, że IDki są takie same 🤔 . Wyczyść tabelę, pododawaj linki na nowo i zobacz czy się dublują przy dodawaniu. Dobrze, żebyś ogarnął poprawne wrzucanie do bazy i usuwanie z niej. Wyświetlanie rekordów zostaw sobie na koniec, bo z tym powinno być najmniej problemów.

Mezir commented 4 years ago

@michu2k w bazie danych jest wszystko dobrze. https://i.imgur.com/oRaWdC6.png

Mezir commented 4 years ago

Dobra, rozwiązałem problem. Do modułu pages zapomniałem dodać AUTO INCREMENT podczas tworzenia struktury do bazy danych.

Mezir commented 4 years ago

@michu2k W bazie danych mam polskie znaki ale gdy pobieram dane z bazy danych przez BatFlat'a to polskie znaki nie są poprawnie wyświetlane. Bo domyślnie batflat wpisy z polskimi znakami dodaje do bazy danych w następującej formie: PoczÄ…tek dla słowa Początek Ale ja mam też dodatkową tabelę w bazie danych, do której są zapisywane dane przez bota z polskimi znakami i teraz gdy BatFlat odczytuje dane z mojej dodatkowej tabeli to zamiast polskich znaków tworzą się "krzaki" Na przykład: M??czyzna zamiast Mężczyzna, Przyjaci�? zamiast Przyjaciół Wiesz jak naprawić ten problem?