Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Jak zrobić szablon z samoaktualizującą się stopką
Forum PHP.pl > Forum > PHP
AboutMe
Witam,

Czy ktoś ma jakiś ciekawy pomysł na samoaktualizującą się stopkę w szablonie? Najprościej jest dać bezpośredni readfile, ale to głupi pomysł.
tehaha
a co to jest samo aktualizująca się stopka?
AboutMe
Samoaktualizująca to taka która zaktualizuje co jakiś czas treść w stopce. Treść będzie pobrana i zapisana (np.) raz w tygodniu z określonego URLa.
tehaha
no to pobieraj tą treść z bazy danych, a aktualizacji tej treści dokonuj ustawiając crona np. żeby raz w tygodniu to aktualizował
sebastiankozub
zapisz w tabeli x rekordow, wybirej losowy, jak chcesz uzaleznic rekord np: od dnia tygodnia to wyciagasz rekord o numerze (x modulo 7) + 1 ...musisz z servera zczytac jaki jest dzien tygodnia i porownac
sniver
a co ty byś do tej stopki chciał wkleić? Licznik? Czytnik RSS? Cyklicznie możesz ustawić zadanie w cron'ie raz na tydzień i po sprawie...

A czy wynik działania zadania z crona zapiszesz do bazy czy do pliku to w tym wypadku zostawiam twojej własnej ingerencji twórczej...
quality
Ja napisalem sobie wlasna klase losujaca w zaleznosci od adresu url:

  1. class Admin_File_Random{
  2.  
  3. private $x;
  4. private $max;
  5. private $g=75;
  6. private $n=65537;
  7.  
  8. public function __construct($seed,$max){
  9. $seed = hexdec(substr(md5($seed),0,5));
  10. $this->x=bcmod($seed,$this->n);
  11. $this->max=$max;
  12.  
  13. }
  14.  
  15. public function rand(){
  16. $y=$this->g*$this->x;
  17. $this->x=bcmod($y,$this->n);
  18. return floor($this->max*$this->x/$this->n);
  19. }
  20.  
  21. public function randHow($ile){
  22. if($ile>$this->max)
  23. {
  24. throw new Exception('Liczba wylosowanych liczb przekracza liczbe maksymalna');
  25. }
  26. $tabRand = array();
  27. $d = "0";
  28. for($i="1"; $i<=$ile; $i++)
  29. {
  30. $y[$i]=($this->g+$i*10)*$this->x;
  31. $this->x=bcmod($y[$i],$this->n);
  32. $number = floor($this->max*$this->x/$this->n);
  33.  
  34. if(in_array($number, $tabRand))
  35. {
  36. $i--;
  37. $this->g = $this->g + 1;
  38. $this->n = $this->n + 3;
  39. } else {
  40. $tabRand[] = $number;
  41. }
  42. }
  43. return $tabRand;
  44. }
  45. }


W konstruktorze $seed - adres url, $max - maxymalna wylosowana liczba.
Nastepnie wywolujesz metode rand() - zwraca jedna liczbe, albo randHow() - zwraca tablice wysolosowanych wartosci, jako parametr ilosc liczb do wylosowania.

Funkcja ta jest o tyle dobra ze dla kazdego adresu generuje te same liczby. Takze tutaj rozwiazany problem z google smile.gif Na konkretnym adresie mamy te same linki, na kazdej podstronie inne.
Jesli jakies pytania prosze pytac.

Pozdrawiam Adrian
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.