ShoutBox 1.2
Prezentuję kolejną wersję ShoutBox 1.2. Wizualnie w zasadzie nic się nie zmieniło. Główne zmiany dotyczą poprawienia funkcjonalności i łatwości użycia.
Prezentuję kolejną wersję ShoutBox 1.2. Wizualnie w zasadzie nic się nie zmieniło. Główne zmiany dotyczą poprawienia funkcjonalności i łatwości użycia.
Przedstawię tu faq odnośnie php. Niby dużo tego jest w sieci, jednak przeglądając fora i zadawane pytania, śmiem twierdzić, że za mało... albo ta nasza "młodzież" zaleniwa jest by do nich zaglądać... tak czy siak "dobrego" faq nigdy za duzo
Po dość długim okresie milczenia wrzucam nową wersję Pagera. Wnosi ona parę drobnych poprawek.
Dołączam dodatkowo klasę EPager, która dziedziczy po Pager i rozszerza go o parę ciekawych rzeczy:
Co nam to daje? Ano to, że nie musimy się już martwić o budowanie zapytania które będzie stronicowało, które będzie sortowało. Wszystko to zostania samo utworzone na podstawie podstawowego zapytania i podaniu nazw kolumn po których będzie można sortować.
Czyli zamiast tworzyć takie zapytanie na podstawie różnych czynników:
select * from tabela order by pole asc limit 10,5
to tworzymy tylko takie:
select * from tabela
i o nic już się nie martwimy
Klasa dostępna w paczce 2.5.1 w katalogu epager.
ps: Przykład korzystać będzie z bazy danych. Niezbędne zapytania dostępne są w pliku epager.sql w katalogu epager.
Dzięki testom użytkownika fomicza wyszło na jaw, że ShoutBox od wersji 1.0 wzwyż ma błąd. Wynikiem tego błędu jest ciągłe odwoływanie się do bazy danych po nowe wiadomości, nawet gdy tych nie ma. Założeniem ShoutBoxa było, by odwoływać się do bazy tylko wtedy, gdy pojawią się nowe wiadomości, a tu taki bug...
Wszystkie wersje od 1.0 wzwyż są już na serwerze w wersji poprawionej. Błąd można poprawić również samemu. W tym celu należy edytować plik ShoutBox.class.php i znaleźć tam funkcję Read a w niej następujący kod:
<?php
if (is_null($_lastId) || $_lastId >= $this->_idMsg){
?>
i zamienić ją na:
<?php
if (is_null($_lastId) || $_lastId > $this->_idMsg){
?>
Jak zapewne zauważyliście, znalazł się o jeden znak za dużo (=).
Pisząc wszelkiego rodzaju wyszukiwarki korzystamy z formularzy, w których wprowadzamy warunki wyszukiwania. Sprawa komplikuje się trochę, gdy użyjemy stronicowania znalezionych wyników. Przechodząc na kolejną stronę znalezionych wyników, tracimy warunki wyszukiwania (dane z formularza). Aby temu zapobiec, należy zapamiętać stan wyszukiwania. Można to zrobić na dwa sposoby:
Przeglądając różne fora widzę, iż użytkownicy często pytają o te same rzeczy. Podawać tu będę rozwiązania na większość z nich. Artykuł stopniowo będzie uzupełniany o kolejne rzeczy.
Wraz z pojawieniem się ShoutBox 1.1.1 możliwe stało się łatwe przypisywanie własnych akcji dla nowych wiadomości. Jedną z takich akcji może być sygnał dźwiękowy, informujący nas o tym, że właśnie ktoś coś napisał.
Liczenie ile minęło dni między jedną datą a drugą to dość częsty "problem" piszących w php. Samo policzenie dni bez rozróżniania na dni robocze jest banalnie proste:
<?php
echo (strtotime('2005-03-30 GMT')-strtotime('2005-03-01 GMT'))/86400;
?>
Jednak wyliczenie dni roboczych to już większa sprawa. By ułatwić sobie i Wam życie, napisałem funkcję, która wylicza liczbę dni roboczych. Pierwotnie funkcja nie uwzględniała świąt ruchomych jednak użytkownik kajko84 dopisał do tego i święta ruchome. Ja to trochę zoptymalizowałem i mamy w pełni funkcjonalną funkcję do wyliczania liczby roboczych.
Prezentuję kolejną wersję ShoutBox. Wszystkie główne zmiany zmiany zaszły w kodzie js. Kody php pozostały w zasadzie nie naruszone. Oto lista nowych rzeczy:
Niedawno potrzebowałem zliczyć w MySQL liczbę wystąpień danego znaku w jednym z pól tekstowych. No to biegniem do manuala a tam.... kiszka. Nie ma czegoś takiego W php to jest substr_count() i po bólu. Trzeba było więc wymyślić własne cudo.