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.