Webboard

Pełna wersja: Zamiana 'Mniej niż minutę temu' na 'x sekund temu'
Aktualnie przeglądasz uproszczoną wersję forum. Kliknij tutaj, by zobaczyć wersję z pełnym formatowaniem.

1 Modyfikacja pliku



Zaloguj się na swój serwer i otwórz:
FTP -> /inc/functions.php

Znajdź:
Kod PHP:
if($diff <= 60)
{
// Less than a minute
$relative['prefix'] = $lang->rel_less_than;

zamień na:
Kod PHP:
if($diff <= 60)
{
// sekund temu
if($diff <= && $diff != 1)
{
 return 
$diff ' sekundy temu';
}
if(
$diff == 23) {
 return 
$diff ' sekundy temu';
}
if(
$diff == 22) {
 return 
$diff ' sekundy temu';
}
if(
$diff == 24) {
 return 
$diff ' sekundy temu';
}
if(
$diff == 32) {
 return 
$diff ' sekundy temu';
}
if(
$diff == 33) {
 return 
$diff ' sekundy temu';
}
if(
$diff == 34) {
 return 
$diff ' sekundy temu';
}
if(
$diff == 42) {
 return 
$diff ' sekundy temu';
}
if(
$diff == 43) {
 return 
$diff ' sekundy temu';
}
if(
$diff == 44) {
 return 
$diff ' sekundy temu';
}
if(
$diff == 52) {
 return 
$diff ' sekundy temu';
}
if(
$diff == 53) {
 return 
$diff ' sekundy temu';
}
if(
$diff == 54) {
 return 
$diff ' sekundy temu';
}
if(
$diff == 1) {
 return 
$diff ' sekundę temu';
}
 
 
   return $diff ' sekund temu';


Efekt:  [attachment=10774] 
Zródło: https://community.mybb.com/thread-182376.html
Dopisz do skryptu zależności - dla lepszego wizerunku.

Obecnie masz tak:
- 2 sekund temu
- 10 sekund temu
- 1 sekund temu

Trochę to się nie kryje z prawdą. Zrób to normalnie, a myślę, że ludzie będą wdzięczni :)
Co dopisać? xD
Działa jak należy, po co zmieniać? :P
Chodzi mi o zależności tj. 2 sekundy temu, 1 sekunda(ę) temu. Rozumiesz?
(08.10.2016, 14:50)Snake_ napisał(a): [ -> ]Chodzi mi o zależności tj. 2 sekundy temu, 1 sekunda(ę) temu. Rozumiesz?
Tak, rozumiem.

Poprawione.
Łap poprawkę, mniej kodu:
Kod PHP:
if($diff <= && $diff != 1
{
    return 
$diff ' sekundy temu';
}
if(
$diff == 1) {
    return 
$diff ' sekundę temu';


Dodatkowo taka sama sytuacja, gdy np.

22, 33, 52, ale to już mniej rażące. Jak chcesz, to też możesz popracować.
No to w sumie trzymaj 
Kod PHP:
$diff  %= 100;
 if(
$diff  == || ($diff  >=&& $diff  <=21)){
 return 
$diff ' sekund temu';
 }
 if(
$diff  == 1){
 return 
$diff ' sekundę temu';
 }
 if(
$diff  && $diff  5){
 return 
$diff ' sekundy temu';
 }
 
$diff  %= 10;
 if(
$diff  && $diff  5){
 return 
$diff ' sekundy temu';
 } 
(08.10.2016, 17:27)Majcon napisał(a): [ -> ]No to w sumie trzymaj
Kod PHP:
$diff  %= 100;
 if(
$diff  == || ($diff  >=&& $diff  <=21)){
 return 
$diff ' sekund temu';
 }
 if(
$diff  == 1){
 return 
$diff ' sekundę temu';
 }
 if(
$diff  && $diff  5){
 return 
$diff ' sekundy temu';
 }
 
$diff  %= 10;
 if(
$diff  && $diff  5){
 return 
$diff ' sekundy temu';
 } 
22 sekundy -> 2 sekundy

Poprawione, dużo kodu ale działa :d
To co teraz jest słabo wygląda.

Jeśli poprawiając 'a chcesz uniknąć typowej matematyki, to wystarczy wklepać cyfry do tablicy i potem sprawdzić, czy one są w $diff.
Kod PHP:
in_array(array('sekundy'$diff)) 
i po problemie. :)




Popraw to, bo naprawdę strasznie wygląda. :P