Cześć
Wikary.
No problem jest trochę skomplikowany, i widać, że twórcy tego forum,
JoomlaBoard (dawniej
SimpleBoard) nic w celu naprawienia tego poważnego błędu nie zrobili.
Pogrzebałem trochę w skryptach, i zauważyłem, że:
Kod: |
$sbConfig['imageHeight']='499';
$sbConfig['imageWidth']='499';
|
...zmienne te, u mnie ustawione na
499px szerokość, i
499px wysokość, służą tylko w jednym celu. W czasie wpisywania treści postu, i najechania myszką na przycisk dla znacznika
IMG, powoduje wyświetlenie informacji, że wymiary obrazka powinny wynosić:
"
Obraz (foto): [img size=(01-499)]http://www.google.com/images/web_logo_left.gif[/img]"
...czyli szerokość od
1px do
499px. I faktycznie, to koniec znaczenia cytowanych parametrów. Mogę wstawić obrazek do
999px, sprawdzałem. bo już większy nie wyświetla się. Skąd się te
999px bierze, napiszę dalej.
Spróbuję, ale nie w tej chwili dopisać jakieś instrukcje warunkowe, aby zablokować duże obrazki, bo jest to możliwe. Na razie mogę podać ci tylko rozwiązanie pośrednie, ale skuteczne. Oczywiście ma pewne wady.
Co możesz zrobić?.
JoomlaBoard ma
3 pliki prawie identyczne w swej treści, ale wykorzystuje chyba tylko jeden z nich. Są to
2 pliki w ścieżce "
components/com_joomlaboard/": "
bb.js.php", "
smile.class.php", oraz w ścieżce "
administrator/components/com_joomlaboard/" plik "
bb_adm.js". Ja swego czasu próbowałem zmienić napis dla wstawiania kodu z "
Code" na "
Kod" i dokonałem zmian w plikach "
bb.js.php" i "
bb_adm.js", które to prawie niczym się nie różnią, oprócz rozszerzenia. Zmieniłem "
Code" na "
Kod", ale efekt był negatywny. Dopiero niedawno, w wolnej chwili poszperałem ponownie w plikach, i odkryłem, że plik
"smile.class.php", do którego wcześniej nie zaglądałem, odpowiada za wyświetlanie
BBCode, lub dokładniej jego formatowanie. Różni się nieco od dwóch poprzednich, ale większość kodu jest taka sama. Więc zrób tak:
Znajdź w pliku
"smile.class.php" takie linie, licząc od linii
69:
Kod: |
// img
$sb_message_txt = preg_replace("/\[img size=([0-9][0-9][0-9])\](.*?)\[\/img\]/si","<img src=\"$2\" border=\"0\" width=\"$1\" />",$sb_message_txt);
$sb_message_txt = preg_replace("/\[img size=([0-9][0-9])\](.*?)\[\/img\]/si","<img src=\"$2\" border=\"0\" width=\"$1\" />",$sb_message_txt);
$sb_message_txt = preg_replace("/\[img\](.*?)\[\/img\]/si","<img src=\"$1\" border=\"0\" />",$sb_message_txt);
|
Nas interesuje tylko pierwsza linia z góry, bo ona odpowiada za wyświetlanie obrazków o szerokości składającej się z
3 (trzech) cyfr (
[0-9][0-9][0-9]). Stąd te maksymalne
999px. Następny wiersz przeznaczony jest dla obrazków o szerokości od
1px do
99px, i nas nie interesuje. Ostatnia linia odpowiada za parametry obrazków wczytywanych na serwer z opcji "
Dołącz obraz".
Zrób tak, tymczasowo:
Kod: |
// img
$sb_message_txt = preg_replace("/\[img size=([0-9][0-9][0-9])\](.*?)\[\/img\]/si","<img src=\"$2\" border=\"0\" width=\"300\" />",$sb_message_txt);
|
...czyli podstaw w linii
70 pod zmienną
$1 w parametrze szerokości width="
$1" wartość width="
300", co spowoduje, że wszystkie obrazki o wielkości od
100px do
999px zostaną wyświetlone w szerokości
300px. Nawet te z sygnatur.
Pamiętaj o tym!. Ale przynajmniej nie będziesz sam musiał zmniejszać obrazków, jak ja już parę razy musiałem to robić za innych.
To tyle na start. Jak coś poczynisz, daj znać. Przyda się innym. Pozdro.
Jokris.