Skocz do zawartości

Przesunięty czas automatycznego zamykania tematów.


Rekomendowane odpowiedzi

Opublikowano

Tym razem mam problem z błędnym czasem zamykania tematów.

Do rzeczy. Na forum, zarówno dla zalogowanych jak i gości czas na formowym zegarku zgadza się z rzeczywistością. Tu wydaje się być OK. Publikowane posty i tematy również datowane są poprawnie. Schody zaczynają się w przypadku gdy zechcemy aby dany post zamknął się automatycznie danego dnia o np. godzinie 10:00 . Tworzymy nowy temat, wpisujemy godzinę zamknięcia się tematu, a temat zamyka się i owszem danego dnia ale równe dwie godziny później. Z tego co widzę do bazy trafia wpis zamknięcia tematu ale przesunięty o dwie godziny do przodu. Jednocześnie czas utworzenia tematu natomiast jest OK.

Obecne ustawienia na zapleczu to:

Native Server Time Zone: GMT+1

Server Time Adjustment: -60

W profile użytkownika: GMT+1

Manipulacje ustawieniami czasu na zapleczu jak i w profilu użytkownika nic nie dają – czas jest przesunięty o dwie godziny.

Najchętniej odjął bym te dwie godziny w kodzie przed wysłaniem daty zamknięcia postu do bazy (chyba, że jest jakieś banalne rozwiązanie).

Na marginesie. Forum ma już trochę lat i miało sporo adminów więc nie wykluczam również ingerencji poprzedników w kod i stąd wadliwe działanie zamykania tematów.

IP.Board Version v2.3.6

  • Manager
Opublikowano

Dziś popołudniu lub wieczorem zajrzę w kod i zobaczę, jak to tam wygląda. :)

Teraz tylko taka informacja byś nie czuł, że nikt się nie będzie starać. Potrzeba tylko trochę cierpliwości. :)

intermedia - profesjonalne rozwiązania Invision Power Board

---

Chcesz uzyskać szybko i sprawnie pomoc? Uzupełnij wersję i adres w profilu.

  • Manager
Opublikowano

Spróbuj tak (nie testowane)..

Otwórz plik: sources/classes/post/class_post.php

Znajdź:

				$this->times['close'] = $this->ipsclass->convert_local_date_to_unix( array( 'month'  => intval($month),
																						'day'    => intval($day),
																						'year'   => intval($year),
																						'hour'   => intval($hour),
																						'minute' => intval($minute) ) );

Zamień na:

				$this->times['close'] = $this->ipsclass->convert_local_date_to_unix( array( 'month'  => intval($month),
																						'day'    => intval($day),
																						'year'   => intval($year),
																						'hour'   => intval($hour)-2,
																						'minute' => intval($minute) ) );

Lub (co bardziej prawdopodobne:

				$this->times['close'] = $this->ipsclass->convert_local_date_to_unix( array( 'month'  => intval($month),
																						'day'    => intval($day),
																						'year'   => intval($year),
																						'hour'   => intval($hour)-3600,
																						'minute' => intval($minute) ) );

Zapisz i wyślij.

intermedia - profesjonalne rozwiązania Invision Power Board

---

Chcesz uzyskać szybko i sprawnie pomoc? Uzupełnij wersję i adres w profilu.

Opublikowano

No OK. Działa ta wersja z

'hour' => intval($hour)-2,

Do bazy zapisywana jest właściwy czas zamknięcia postu. Pojawił się jednak drugi problem. Przy próbie edycji tego postu w okienku czas zamknięcia pojawia się czas zmniejszony o kolejne dwie godziny. Np. tworze temat i ustawiam czas zamknięcia na godz 09:00 wcześniej zapisywało do bazy 11:00 teraz zapisuje 09:00 (czyli OK). Teraz edytuje post. Dobry czas zostaje zmniejszony o dwie godziny (pokazuje się 07:00 zamiast 09:00). Po zapisaniu w bazie jest 07:00.

  • Manager
Opublikowano

Trochę to dziwne, że wcześniej nie działało, ale OK. Próbujmy.

Otwórz plik: sources/classes/post/class_post_edit.php

Znajdź:

$this->convert_open_close_times();

Zamień na:

//$this->convert_open_close_times();

Zapisz i wyślij.

intermedia - profesjonalne rozwiązania Invision Power Board

---

Chcesz uzyskać szybko i sprawnie pomoc? Uzupełnij wersję i adres w profilu.

  • Manager
Opublikowano

A jakbyś otworzył plik: sources/ipsclass.php

Znalazł:

return $time - $offset;

Zamienił na:

    	if ( ! $time['dp23check'] )
   	{
   		return $time - $offset;
   	}
   	else
   	{
		return $time;
	}

Zapisał.

Potem otworzył plik sources/classes/post/class_post.php

Znalazł:

'minute' => intval($minute) ) );

Zamienił na:

'minute' => intval($minute),
																					   dp23check => 1 ) );

Zapisał.

Oczywiście tę wyższą edycję przywróć, bo jest bzdurna. :)

intermedia - profesjonalne rozwiązania Invision Power Board

---

Chcesz uzyskać szybko i sprawnie pomoc? Uzupełnij wersję i adres w profilu.

Opublikowano

Tego

'minute' => intval($minute) ) );

w tym pliku już nie ma.

Damy sobie chwilowo spokój. Z tego co widzę pliki były edytowane pod zmianę daty (widziałem tu gdzieś taki watek).

Przywróciłem starą kopię ipsclass.php i pojawiły się takie krzaczki - "Aktualny czas: %PM, %20 0 %2009 - %23:%Oct"

Poszperam trochę w wolnym czasie i może po woli dojdę gdzie skopano sprawę. W tej chwili nie mam już na to siły.

Mimo wszystko serdeczne dzięki za poświęcony czas i pomoc.

Opublikowano (edytowane)

Psułem, psułem i popsułem.. Ech... coś czułem, że muszę sobie na razie w tym temacie odpuścić. Ale do rzeczy.

Tak szukałem i tak. W pliku sources/classes/post/class_post.php nie mam w ogóle frazy $minute .

Fakt tutaj źle napisałem zamiast "nie ma w: sources/classes/post/class_post.php" powinno być " nie ma w: sources/classes/post/class_post_edit.php

Fraza :

minute' => intval($minute) ) );

jest ale właśnie w sources/classes/post/class_post.php a nie tak jak sugerowałeś powyżej w sources/classes/post/class_post_edit.php

Dodałem sugerowane zmiany i nie działa.

Edit: jutro jeszcze raz sprawdzę czy czegoś nie pominąłem.

Edytowane przez marrom
  • Manager
Opublikowano

Tak, to ja się pomyliłem. Miał byś plik class_post.php. :P

Pole o nazwie pinned warunkuje czy temat jest podpięty czy nie. Szczerze to przydałaby się informacja, co tam kombinowałeś. Może się da to odkręcić, ale nie chcę wyrokować smutnych informacji, że się nie będzie dało.

intermedia - profesjonalne rozwiązania Invision Power Board

---

Chcesz uzyskać szybko i sprawnie pomoc? Uzupełnij wersję i adres w profilu.

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę.