Autor Zpráva
Soles
Profil *
Ahoj,
prosím o radu. Jak byste řešili situaci, když potřebujete v pravidelných periodách publikovat určitý text.
Např. mám 15 textů, a každý pracovní den se zobrazí nový (následující), takže perioda zobrazení je 21 dní.
Státní svátky bych si už nějak ošetřil, texty budu tahat buď z xml nebo jen z externího souboru.
Lze to efektivně řešit nějakou funkcí nebo máte nápad na hezký algoritmus?
Díky moc za postřehy.
laijk
Profil
malo by sa to dať cronom, ale ešte som s tým nepracoval.
shaggy
Profil
Soles:
Alebo to zbytočne nekomplikovať a urobiť to úplne jednoducho.
Máš tam nejaký vlastný systém? Kde tie články chceš "publikovať"?
Ono vlastne stačí k tomu článku uložiť dátum (a prípadne čas) od ktorého má byť viditeľný a pri výpise článkov ho iba porovnávať s aktuálnym dátumom.

Pre lepšie pochopenie jednoduchá ukážka:
Máš index.php, ktorý vypisuje zoznam článkov. 18.6. si ho otvorí človek a uvidí všetky články, ktorých dátum bude menší/rovný ako 18.6.
Soles
Profil *
laijk: v cronu bych musel mít pro každý text vlastní záznam, to se mi moc nechce, protože jich je o dost víc než 15 :-)

shaggy: to můj problém asi taky neřeší, nebo jsem to nepochopil. Potřebuji aby Test1 byl "vidět" pouze (dle příkladu) 1. den, 22. den, 43. den .. a Text2 2. den, 23. den, 44. den ...
laijk
Profil
ešte by sa to dalo podmienkou, ale keď ich máš o dosť viac ako 15 tak by to bolo tiež zložité.
petr 6
Profil
Počítat pracovní dny od referenčního data.
Pokud vyčerpáš všechny texty, vynulovat čítač.
Pokud je čítač roven nule, stanovit referenční datum.

(Hodnotu čítače nebo referenční datum ukládat třeba do souboru)
Soles
Profil *
Podmínkou to zatím taky řeším, a říkám si, že to musí jít jednodušeji, ale nevím jak :-)

if (is_int (($date - $date15)/$cyklus)) // kontrolujeme, zda je výsledek celé číslo
{
include "text15.php"; // pokud ano vypíšeme text 15
}

---

$date = aktuální den v roce
$date15 = např patnáctý den v roce
$cyklus = požadovaný cyklus zobrazování
okolojdouci
Profil *
Soles:
laijk: v cronu bych musel mít pro každý text vlastní záznam, to se mi moc nechce, protože jich je o dost víc než 15 :-)

Sice nevím, co tím chceš říct, ale není to pravda. Cronem můžeš spouštět jakoukoliv akci. Nějaké texty a záznamy s tím nesouvisí.
Z tvého posledního příspěvku soudím, že tvoje postupy jsou poměrně bizarní.
Soles
Profil *
S php a obecne s programováním začínám. Děkuji za upozornění, ale že moje postupy nejsou ideální si jsem bezpečně vědom.
YoSarin
Profil
Soles:
Co takhle:
$count = 15; // počet textů které máš
$day = floor(time() / (24 * 3600)); // zjistime unikatni id tohoto dne
$article = ($day % $count) + 1; // cislo clanku ktery chceme zobrazovat (rozsah 1 až $count)

$filename = 'text' . $article . '.php';

if (file_exists($filename)) {
  include $filename;
}

edit:
Nereflektuje to požadavek pracovních dnů, pravda, ale s tím se dá taky pracovat (detekce soboty/neděle a následné přičtení/odečtení 1 nebo 2)
Soles
Profil *
Díky moc, vypadá to, že je to možná to co potřebuji.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0