Webboard

Pełna wersja: Dodanie tekstu w zależności od ilości elementów.
Aktualnie przeglądasz uproszczoną wersję forum. Kliknij tutaj, by zobaczyć wersję z pełnym formatowaniem.
Adres forum:
lokalnie


Wersja silnika:
1.8.14


Opis problemu:
Potrzebuję dopisać w forumbit_depth2_forum za ilością wpisów/wątków tekst w zależności od ilości tychże wpisów/wątków.
Cytat:wpis/wątek

2, 3, 4,
22, 23, 24,
32, 33, 34,
42, 43, 44,
52, 53, 54, ... wpisy/wątki

reszta wpisów/wątków
{$posts}/{$threads} pozwala na pobranie ilości, ale nazw dla języka polskiego w zależności od ilości - nie. Chciałbym dowiedzieć się, jak to dodać, żeby nie zrobić bałaganu. Najłatwiejsze rozwiązanie, jakie mi przychodzi do głowy, to pobranie tej ilości przez JS i dopisanie tekstu w zależności od ilości, ale wolałbym tego nie robić.

Wystarczą wskazówki. Proszę wybaczyć, jeśli wybrałem nieodpowiedni dział.

Jakoś sobie poradziłem. Zamieszczam rozwiązanie, gdyby ktoś potrzebował.

1. Uruchom plik inc/functions_forumlist.php i poszukaj:
Kod:
$posts = my_number_format($forum['posts']);
$threads = my_number_format($forum['threads']);

2. Podmień na:
Kod:
$posts = my_number_format($forum['posts']);
$threads = my_number_format($forum['threads']);
$posts_string = pstring_format($forum['posts']);
$threads_string = tstring_format($forum['threads']);

3. Uruchom plik inc/functions.php i dopisz na samym końcu:
Kod:
function pstring_format($amount) {
    global $lang;
    $last_digit = substr($amount, -1);
    $last_2digits = substr($amount, -2);
    if($amount == 1)
        return $lang->pstring_1;
    else if(($last_digit == 2 || $last_digit == 3 || $last_digit == 4) && !($last_2digits == 12 || $last_2digits == 13 || $last_2digits == 14))
        return $lang->pstring_2;
    else
        return $lang->pstring_3;
}

function tstring_format($amount) {
    global $lang;
    $last_digit = substr($amount, -1);
    $last_2digits = substr($amount, -2);
    if($amount == 1)
        return $lang->tstring_1;
    else if(($last_digit == 2 || $last_digit == 3 || $last_digit == 4) && !($last_2digits == 12 || $last_2digits == 13 || $last_2digits == 14))
        return $lang->tstring_2;
    else
        return $lang->tstring_3;
}

4. Uruchom plik inc/languages/english/global.lang.php i dopisz na samym końcu:
Kod:
$l['pstring_1'] = 'post';
$l['pstring_2'] = 'posts';
$l['pstring_3'] = 'posts';
$l['tstring_1'] = 'thread';
$l['tstring_2'] = 'threads';
$l['tstring_3'] = 'threads';

5. Uruchom plik inc/languages/polish/global.lang.php i dopisz na samym końcu:
Kod:
$l['pstring_1'] = 'wpis';
$l['pstring_2'] = 'wpisy';
$l['pstring_3'] = 'wpisów';
$l['tstring_1'] = 'wątek';
$l['tstring_2'] = 'wątki';
$l['tstring_3'] = 'wątków';

6. Uruchom forumbit_depth2_forum i dopisz w odpowiednim miejscu:
Kod:
{$posts_string}
oraz
Kod:
{$threads_string}

7. U mnie wygląda to w ten sposób:
Cytat:<tr>
    <td class="{$bgcolor}" align="center" width="1"><span class="forum_status forum_{$lightbulb['folder']} ajax_mark_read" title="{$lightbulb['altonoff']}" id="mark_read_{$forum['fid']}"></span></td>
    <td class="{$bgcolor}"><strong><a href="{$forum_url}">{$forum['name']}</a></strong>{$forum_viewers_text}<div class="smalltext">{$forum['description']}{$modlist}{$subforums}</div></td>
    <td class="{$bgcolor}" align="center" style="white-space: nowrap">{$threads}{$unapproved['unapproved_threads']} {$threads_string}</td>
    <td class="{$bgcolor}" align="center" style="white-space: nowrap">{$posts}{$unapproved['unapproved_posts']} {$posts_string}</td>
    <td class="{$bgcolor}" align="right" style="white-space: nowrap">{$lastpost}</td>
</tr>