Łamanie linii w znaczniku [PHP] w MyBB

No i znowu piszę o MyBB, jak widać, coś ostatnio natchnęło mnie na rozgrzebanie kilku rzeczy w tym skrypcie. Jedną z nich jest automatyczne łamanie linii np. w cytatach. Właśnie gdy używamy znaczników bbcode/mycode “quote” lub też “code” i wewnątrz nich umieścimy obszerne linijki, zostaną one automatycznie złamane i tekst nie “rozwali” nam posta, nie będzie również tworzył scroolbara w poziomie. Niestety to samo nie dotyczy już znacznika do umieszczania i kolorowania kodu php, który został zawarty w MyBB. Swoją drogą, ciekawe po co w ogóle wyposażyli skrypt forum dyskusyjnego standardowo w coś takiego, na większości for będzie to zupełnie nieprzydatne…

Dobra, mniejsza z tym, przejdźmy do analizy problemu i rozwiązania. Po rzuceniu okiem na klasę zajmującą się parsowaniem wiadomości możemy zobaczyć, że za kolorowanie i “problem” odpowiada wbudowana w PHP funkcja highlight_string odpowiedzialna jak sama nazwa mówi właśnie za kolorowanie tego kodu. Ma ona to do siebie, że wszelkie spacje, odstępy itp. zostają zamienione na spacje twarde, niełamliwe czyli “ ”. Da się to jednak przeskoczyć poprzez dodanie funkcji, która będzie zamieniała takie pojedyncze betonowe mury na zwykłe odstępy. Edytujemy więc plik inc/class_parser.php, odnajdujemy na samym końcu fragment:

i dodajemy przed nim:

następnie odszukujemy fragment (ok. linii 826):

i dodajemy przed nim taki fragment:

I to już wszystko, zapisujemy plik i umieszczamy na serwerze. Od tej chwili kod zawarty w znacznikach php również będzie łamany, przez co unikniemy bloków z ogromnymi rozmiarami oraz przewijania w poziomie. Oczywiście ma to pewną wadę: takie złamanie linii wiąże się w niektórych wypadkach z utratą oryginalnego formatowania tzn. coś, co było w jednej linii, może nam zjechać i utworzyć niższą. Rzecz jasna nie będzie to powodowało nieprawidłowego działania, bowiem występuje gdy utworzenie spacji lub łamania linii jest możliwe i dozwolone.

Subskrypcja MSDN AA, a rozdawanie licencji

Na forum SafeGroup pojawiła się ostatnio osoba, która za różne “przysługi” rozdawała innym osobom klucze licencyjne do różnego typu oprogramowania, w tym również do produktów firmy Microsoft. Wydało mi się to niezbyt legalne – raz, że przecież nawet pożyczanie nośnika z ich aplikacjami (nawet bez klucza) nie jest legalne, no chyba, że osoba której pożyczamy również ma ważną licencję, ale np. jej nośnik uległ zniszczeniu; dwa, że przecież wszystkie te licencje, zarówno na systemy Windows, pakiety Office i wszelkie inne narzędzia są przypisane chyba do danego konta studenta. Continue reading “Subskrypcja MSDN AA, a rozdawanie licencji”

Recenzja Acer Aspire 5741G

Od dłuższego czasu zaczęły się pojawiać problemy z notebookiem, ale nie moim, lecz mojej siostry. Używała ona NTT Corrino 696SR – dosyć okazyjnie kupiony, wyposażony w kartę GeForce 8600 GS, która bardzo się przydawała, ponieważ od czasu do czasu siostra jednak jakieś gry uruchamia (a przynajmniej tak było przy zakupie). Właśnie ta karta chyba zawiniła, ponieważ laptop albo się zawieszał, albo w ogóle nie działał, albo nie pokazywał obrazu. Dużo czasu poświęciłem na diagnozę i dodatkowym bublem okazały się sterowniki do karty wifi, no ale ostatnie problemy praktycznie uniemożliwiły używanie sprzętu – znane już i nagłośnione problemy z BGA. Zdecydowaliśmy się więc na zakup nowego, oczywiście czegoś w granicach rozsądku.
Continue reading “Recenzja Acer Aspire 5741G”

MySQL i sortowanie z polskimi znakami

Dzisiaj podczas wysyłania próśb do autorów zaprzyjaźnionych blogów dotyczących zmiany anchora mojego linku natrafiłem (a raczej natrafiliśmy razem z Marcinem Łuniewskim) na problem natury technicznej. Otóż okazało się, że WordPress tak pięknie obecnie wspierający UTF8 i domyślnie korzystający z takiego właśnie kodowania znaków, nie sortuje wcale umieszczonych linków alfabetycznie, choć o takim sposobie nas informuje. Linki zawierające na początku polskie znaki zostają umieszczone na samym końcu, co też oznacza, że “wyrzuca” je poza znany mu alfabet. Skoro wszystko jest kodowane w UTF8 to sprawa wydawała się bardzo dziwna, dopóki nie przyjrzałem się strukturze tabeli oraz samej bazy WP – domyślna metoda porównywania napisów to utf8_general_ci, a niestety okazuje się, że general wcale nie oznacza wszystkie, a poza tym właśnie w collocation zawarte są dane dotyczące alfabetu używanego do sortowania. Zgodnie z przewidywaniami, zmiana metody chociażby na tylko jednym polu od nazwy na utf8_polish_ci problem zupełnie rozwiązała. Dobrze będzie wiedzieć na przyszłość, ponieważ takie sortowania wykonuje się jednak dosyć często, a dane na polskich stronach mogą przecież zawierać nasze znaki narodowe.

Konfiguracja Comodo Sandbox – Piaskownica

Na przełomie grudnia i listopada 2009 roku opisywałem względnie dokładnie konfigurację całego pakietu Comodo Internet Security, z którego sam korzystam od dłuższego czasu. Opis co prawda dotyczył wersji 3, ale jest w pełni “kompatybilny” z wersją 4.0 zaprezentowaną na początku bieżącego roku, oraz odświeżonym i znacznie poprawionym wydaniem CIS 4.1 opublikowanym w tym miesiącu. Brakuje tam jednak opisu nowego, a bardzo ważnego i znacznie poprawiającego automatyzację bezpieczeństwa elementu: sandboxa. Brak ten słusznie zauważył w jednym z ostatnich komentarzy CMP, postanowiłem więc nareszcie uzupełnić poradnik. Continue reading “Konfiguracja Comodo Sandbox – Piaskownica”