NOVINKA! E-learningové kurzy umělé inteligence. Nyní AI za nejlepší ceny. Zjisti více:
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!

Diskuze: Přiřazení dat do kalendáře.

V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
Patrik Endršt:28.3.2016 19:36

Zdravím Vás všechny.
Potřeboval bych poradit s vytvářením kalendáře, resp. s pracováním uvnitř něho.

Našel jsem spousty způsobů, jak vytvořit kalendář, to problém není. Každopádně, já bych potřeboval využívat kalendář pro více uživatelů na základě přihlášení. Vždy by měl web podle id uživatele najít jeho databázi a označit červeně dny v kalendáři pro které má v databázi zanešená data (Den, kdy byl v práci a co udělal). U dnů, kde nebyl aby bylo možné kliknout na daný den, a to datum přenést na další stránku (add.php), kde se podle získaného ID uživatele a data z kalendáře z předešlé stránky jen zadají data a uloží se do databáze.

Nemůžu přijít na řešení. Všude nacházím kalendáře s akcemi (eventy) a to je něco, co moc nepotřebuji.
Máte někdo nějaké zkušenosti nebo rady? Byl bych vděčný za každou pomoc. Děkuji

 
Odpovědět
28.3.2016 19:36
Avatar
Pavel Parma
Člen
Avatar
Pavel Parma:30.3.2016 15:24

Nepřijde mi to složité.

  1. Uživatel se mi přihlásí, takže vím jeho id podle session.
  2. Před vykreslením si v aplikační vrstvě vyhledám popisky daného uživatele k danému měsíci.
  3. Přijde mi pole (pokud již nemáš nějakou logiku nad DB), které si wrapnu do nějaké kolekce. Tato kolekce ponese objektu reprezentující dané záznamy (bude se ti pak lépe pracovat).
  4. Při vykreslení musím znát dny k danému měsíci, které obstará jiná část aplikační vrstvy.
  5. Při vykreslení budu iterovat dny v měsíci, na každý den se zeptám kolekce přes funkce contains('date', $date), zda neobsahuje daný měsíc. Kolekce aktuálně reprezentuje popisky prací. Funkce bude jednoduše iterovat objekty uvnitř a dívat si na daný klíč, zda neobsahuje danou hodnotu.
  6. Pokud se mi vrátí true, tak vykreslám css třídu pro odpracované dny. Pokud false, tak odkaz na stránku, kde se to vyplní
  7. Pokud neparsuješ url, tak doporučuji pro předání dnu pro zapsání použít form, který bude mít hidden input se datem. Ten si pošleš postem do aplikace, která vykreslá formulář. ID uživatele víš ze session
  8. Po vyplnení formuláře data uložíš do db a přesměruješ se zpět na kalendář, nebo cokoli potřebuješ.

Pokud jsem správně pochopil zadání, přijde mi tohle jako dobré řešení, které je i celkem škálovatelné.

 
Nahoru Odpovědět
30.3.2016 15:24
Avatar
Odpovídá na Pavel Parma
Patrik Endršt:1.4.2016 23:54

Už mám DB ve které mám mám ID, den, mesic, vlozeno, .. a dál už je to k další praci s výpočty.
Den je myšleno 1-31 v měsíci a měsíc je 1-12 podle měsíce. Myslel jsem, že pak jen při vypisování kalendáře budu vedět, že je měsíc 3 (březen) a podle dnů se mi přiřadí hodnoty. Když vlozeno 0, tak je v kalendáři den jako odkaz a když je tam 1, tak je označen a nelze na něj kliknout.

Nevím ale v jaké části kalendáře bych měl dělat kontrolu dat aby se mi den vypsal správně s hodnotou.

 
Nahoru Odpovědět
1.4.2016 23:54
Avatar
Pavel Parma
Člen
Avatar
Pavel Parma:2.4.2016 0:04

Předpokládám, že záznamy uživatele k danému měsíci ukládáš do db průběžně, takže si prostě k danému měšsíci (který vykresluji) seberu vše z db, projedu si dny k danému měsci, který mi vygeneruje systém a jen se dívám, zda daný den není v v tom seznamu, který jsem si vytáhl. Co tam vidíš za problém. Ona ta kolonka vlozeno je pekna, ale samotny zaznam ti rika, ze k danemu dni je vlozeno, takze zbytecna. Pokud ovsem nemas predgenerovane dny mesicu v db, v takovem pripade by to bylo zbytecne narocne na pamet.

 
Nahoru Odpovědět
2.4.2016 0:04
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 4 zpráv z 4.