
CzeœÌ.
DrunkenDuck. Po pierwsze to cieszĂŞ siĂŞ, Âże prowadzisz stronĂŞ dla Polonii. Jak dobrze zrozumiaÂłem, to angielskiej, prawda?. I tak trzymaj!!


TwĂłj problem prawdopodobnie dotyczy nie tylko moduÂłu "
mod_whosonline" czyli "
GoÂścimy", bo jak pisze
wikary, jest on elementem skÂładowym standardowego pakietu instalacyjnego z
Joomla, ale prawdopodobnie teÂż wersji pliku jĂŞzykowego
Joomla "
polish.php". Piszesz, Âże nadpisaÂłeÂś pliki z moduÂłem. Tylko Âże istniejÂą dwie wersje moduÂłu. Ja mam np. starszÂą, ale juÂż w
Joomla 1.12 jest zmodyfikowana wersja, mimo Âże daty sÂą takie same i plik
XML jest identyczny.

ÂŻeby Ci zobrazowaĂŚ, a takÂże innym, w czym leÂży problem, przedstawiĂŞ Ci poniÂżej kod znajdujÂący siĂŞ w pliku "
mod_whosonline.php" w
Joomla 1.07, gdzieÂś koÂło linii 36:
Kod 1a:Kod: |
if ($guest_array != 0 && $user_array==0) {
if ($guest_array==1) {
$content.=_WE_HAVE;
$content.=_GUEST_COUNT;
$content.=_ONLINE;
eval ("\$content = \"$content\";"ĂÂŤĂÂť);
} else {
|
... i jeszcze od linii 60, dla peÂłnego zobrazowania:
Kod: |
} else {
$content.=_WE_HAVE;
$content.=_GUESTS_COUNT;
$content.=_ONLINE;
$content.=_AND;
eval ("\$content = \"$content\";"ĂÂŤĂÂť);
}
|
...i odpowiadajÂące mu staÂłe w pliku "
polish.php"
Joomla 1.07:
Kod 1b:
Kod: |
//** whos_online.php */
DEFINE('_WE_HAVE', 'Odwiedza nas ');
DEFINE('_AND', ' oraz ');
DEFINE('_GUEST_COUNT','$guest_array go¶ĂŚ');
DEFINE('_GUESTS_COUNT','$guest_array go¶ci');
DEFINE('_MEMBER_COUNT','$user_array uÂżytkownik');
DEFINE('_MEMBERS_COUNT','$user_array uÂżytkownikĂłw');
DEFINE('_ONLINE',' Online');
DEFINE('_NONE','Jeste¶ tylko Ty!');
/** modules/mod_stats.php */
|
A teraz "
mod_whosonline.php" w
Joomla 1.12, gdzieÂś koÂło linii 44:
Kod 2a:
Kod: |
if ($guest_array != 0 || $user_array != 0) {
$output .= _WE_HAVE;
// guest count handling
if ($guest_array == 1) {
// 1 guest only
$output .= sprintf( _GUEST_COUNT, $guest_array );
} else if ($guest_array > 1) {
// more than 1 guest
$output .= sprintf( _GUESTS_COUNT, $guest_array );
}
// if there are guests and members online
if ($guest_array != 0 && $user_array != 0) {
$output .= _AND;
}
// member count handling
if ($user_array == 1) {
// 1 member only
$output .= sprintf( _MEMBER_COUNT, $user_array );
} else if ($user_array > 1) {
// more than 1 member
$output .= sprintf( _MEMBERS_COUNT, $user_array );
}
$output .= _ONLINE;
}
|
...i odpowiadajÂące mu zdefiniowane staÂłe w pliku "
polish.php"
Joomla 1.12:
Kod 2b:
Kod: |
/** whos_online.php */
DEFINE('_WE_HAVE', 'Odwiedza nas ');
DEFINE('_AND', ' oraz ');
DEFINE('_GUEST_COUNT','%s go¶ĂŚ');
DEFINE('_GUESTS_COUNT','%s go¶ci');
DEFINE('_MEMBER_COUNT','%s uÂżytkownik');
DEFINE('_MEMBERS_COUNT','%s uÂżytkownikĂłw');
DEFINE('_ONLINE','');
DEFINE('_NONE','Jeste¶ tylko Ty!');
/** modules/mod_banners */
|
...czyli dla starszej wersji moduÂłu uÂżywane sÂą zmienne
$guest_array, ktĂłre to umieszczone sÂą w pliku jĂŞzykowym
Joomla 1.07. Natomiast nowsza wersja moduÂłu uÂżywa juÂż funkcji
sprintf, ktĂłra zamienia sformatowane dane na ÂłaĂącuch znakĂłw. Zmienna
%s - oznacza ÂłaĂącuch tekstowy. I te zmienne
%s umieszczone sÂą pliku jĂŞzyka
Joomla 1.12.
ZwróÌ uwagê na to, ¿e modu³ ten nie ma w³asnego pliku jêzykowego, wiêc pobiera wartoœci do sta³ych np.
_GUEST_COUNT, które akurat tutaj mog¹ mieÌ ró¿ne wartoœci, ze zdefiniowanych sta³ych jêzykowych znajduj¹cych siê w pliku "
polish.php" w katalogu "
./language/", czyli w g³ównym katalogu
Joomla.

A teraz jak wyleczyĂŚ

ciĂŞ z Twojej bolÂączki:
- Pobierz sobie dwa pliczki poniÂżej. Po opisach poznasz, do ktĂłrej wersji Joomla sÂą przynaleÂżne. Jeden jest oznaczony jako 1.0.7plus, bo nie sprawdzaÂłem, od jakiej wersji nastÂąpiÂła zmiana. ByĂŚ moÂże juÂż od 1.11, lub 1.10. Zawsze moÂżna to sprawdziĂŚ studiujÂąc ten post i porĂłwnujÂąc kody 1ab i 2ab.
- JeÂśli posiadasz kod w pliku jĂŞzykowym z Joomla 1.07 i z kodu 1b, nadpisz pliki, po uprzednim rozpakowaniu "mod_whosonline_1.07plus.zip"
- JeÂśli posiadasz kod w pliku jĂŞzykowym z Joomla 1.12 i z kodu 2b, nadpisz pliki, po uprzednim rozpakowaniu "mod_whosonline_1.12.zip"

To tyle. Pozdrawiam.
Jokris.