Skip to content
Marek Vantuch edited this page Sep 23, 2013 · 14 revisions

Základní informace

Postup

Navrhuji rozdělit proces programování do následujících úkolů:

  1. úkol - vytvořit kostru portálu
  2. úkol – vytvořit „levé menu“ – tj. seznam předmětů a oborů
  3. úkol – vytvořit podstránky s obory práva (bez odkazů na zákony v ASPI a bez textů)
  4. úkol – vytvořit podstránky s předměty (bez odkazů na zákony v ASPI a bez textů)
  5. úkol – vytvořit editor pro administraci textů v podstránkách
  6. úkol – vytvořit propojení s ASPI

(tak vytvoříme základ portálu a doplňkové funkce rozplánujeme následně)

Stránky řešení

Struktura

  • rozdělení za pomocí témata vzhledu Omega verze 4
  • využití knihovny Susy a technologie SASS v programovacím jazyce Ruby, překládané do standartního CSS
  • stránka je dynamicky rozdělena na sloupce dle počtu pixelů displaye
  • každý sektor dynamicky zabírá jiný počet sloupců
  • stránka je rozdělena na sektory, každy sektor je poté rozdělen na bloky

Rozdělení stránky

[Tady popsat jak je to přesně rozdělené na subsegmenty v SASS)

Levý postranní panel

Menu

  • umístěno vlevo
  • obsahuje dvě záložky se seznamem odkazů
  • zobrazení záložek pomocí modulu quicktabs

Předměty

  • zdroj dat jsou pouze entity typu předmět vytvořené v systému
  • zobrazení pomocí modulu views
  • řazení dle ročníku, obecnosti zaměření, jména (podle mě není ideální... pokud jich bude hodně, tak se v tom bude hodně špatně hledat)

Obory

  • podobory odsazeny zleva
  • řazení dle systému práva, zřejmě tedy podle váhy
  • nejspíš bude nutno vytvořit stránku pro management oborů

Obsah

Obsah uzlu

Zde bude zobrazen obsah jednotlivých stránek (uzlů). Formát zobrazení: ...

Hlavička

logo

  • vlevo

přihlášení/odhlášení

  • vpravo
  • přihlášení a odhlášení řešeno pomocí modálního okna

Pravý postranní panel

Novinky

Postskript

Umístěn ve spodní části stránky těsně nad patičkou. Obsahuje odkaz pro skrytí celého bloku a tím rozšíření části obsah.

Příběhy

Vždy je zobrazen pouze jeden příběh (jeho krátká část) spolu s odkazem na jeho celý obsah. Dále je zde zahrnut odkaz na seznam všech příběhů.

Vtipy

Vždy je zobrazen pouze jeden vtip v jeho plném znění.

Patička

Návrh

Datové typy

Drupal v základě obsahuje mnoho datových typů využitelných v rámci tohoto projektu

Text

Krátký text zadávatelný v jednom řádku obsahující čistý text bez formátování. Jeho délka může být omezena pro každé pole jinou velikostí.

Dlouhý text se souhrnem

Několika řádkové vstupní pole, které může obsahovat i html kód jako jsou odkazy a podobně. Souhrn je možné zadat buď manuálně, nebo je vytvořen ořezáním obsahu na určenou délku (může se lišit pro každé pole). Potřebné html značky: odkaz

Číselník

Je možno vytvářet neomezené množství číselníků, kde každý z nich může mít další pole pro jakákoliv data.

Logická hodnota

Boolean – ano nebo ne. Dovoluje změnit název hodnot (například zobrazit/schovat)

URL

Specifický typ určený pro nastavení adresy entity.

Odkaz na entitu

Obsahuje odkaz na jakoukoliv entitu (nebo typ dědící z entity)

Číselníky

Stupeň obecnosti

Určuje obecnost entity v rozmezí obecná, úzce zaměřená.

Pole

Váha – číselná hodnota váhy určená k řazení

Hodnoty

Obecný (váha = 0) Středně obecný (váha = 1) Úzce zaměřený (váha = 2)

Ročník

Určuje ročník, ve kterém jsou například vyučovány předměty

Pole

Hodnoty

2012/13 2013/14 2014/15

Entity

V Drupalu je každý prvek systému entitou s vlastním identifikačním číslem. Potomkem tohoto typu je poté Uzel (node), který má svou vlastní adresu v systému a její obsah je zobrazitelný v hlavním sektoru stránky. Pro ukládání polí se využívá polymorfismu a proto je vhodné používat stejná pole skrze co nejvíce entit. Název samotný může pak být odlišný, ale v rámci zachování konzistence je vhodnější jej ponechat stejný a raději vymyslet vhodné jméno pro všechna využití.

Entita - Entity

  • ID – číslo

Uzel – Node (entita)

  • Název – text (255)
  • URL – adresa
  • Status – logická hodnota (vydáno/nevydáno)

Předmět – School Subject (uzel)

  • Kód – text (32)
  • Ročník – Číselník (Ročník) – 1 až více
  • Obecnost – Číselník (Stupeň obecnosti) – pouze 1
  • Popis – dlouhý text se souhrnem
  • Obory – seznam oborů ve kterých se předmět vyučuje

Obor – Legal Subject (uzel)

  • Kód – text (32)
  • Váha – text
  • Popis – dlouhý text se souhrnem
  • Předměty – seznam odkazů na předměty, které se vyučují v daném oboru

Předmět vůči Obor – School Subject to Legal Subect (entita)

Propojení mezi předmětem a oborem.

  • Předmět – odkaz na entitu
  • Obor – odkaz na entitu

Příběh (uzel)

Příběh je zobrazován v Postskript části stránky

  • Popis (obsah) – dlouhý text se souhrnem

Vtip (uzel)

Vtipy jsou zobrazovány v Postskript části stránky a to vždy po jednom a v plné znění. Popis (obsah) – dlouhý text se souhrnem, ten však nejspíše nebude potřeba

Novinka (uzel)

Popis (obsah) – dlouhý text se souhrnem

Pohledy

Pro zobrazení ruzného obsahu specifickým způsobem je v Drupalu využíván modul Views (Pohledy). Každý pohled umožňuje nastavit typ obsahu, který se bude zobrazovat, způsob jeho zobrazení a detaily zobrazovaných informací. Nejlépe je možné si pohledy představit jako SQL views, poskytující nám možnost nahlédnout na data v databázi. V tomto případě se však jedná na jednotlivé entity obsažené v našem systému.

Každý pohled může být zobrazen více způsoby – buď jako stránka, blok, případně další způsoby poskytnuté rozšiřujícími moduly. Obsah pak může být formátován buď v tabulce, jako list, ...

Novinky

Pro zobrazování novinek je všeobecně využit pouze jejich nadpis a zkrácený obsah spolu s odkazem na detail. Jsou zobrazeny pouze vydané novinky.

Stránka

Na stránce s novinkami je zobrazen výčet všech novinek seřazený dle data jejich výdání. Obsah je zkrácen na maximální délku 300 znaků, za kterými následují tři tečky a poté odkaz na samotnou stránku s novinkou. Novinky jsou rozděleny do stránek po deseti a ve spodní části je zobrazen stránkovač, umožňující uživateli se mezi stránkami pohybovat.

Blok

V bloku je zobrazeno pouze pět nejaktuálnějších novinek a jejich obsah je zkrácen pouze na 150 znaků. Pokud byla novinka již přečtena, není zobrazena (to by mě zajímalo jak to udělám...)

Předměty

Předměty jsou zde zobrazeny pouze jako odkazy pro použití v menu v levé části stránky. Není vytvořena ani stránka ani blok.

Obory práva

Obory práva jsou zde zobrazeny pouze jako odkazy pro použití v menu v levé části stránky. Není vytvořena ani stránka ani blok.

Příběhy

Pro zobrazování odkazů na příběhy je využit jejich nadpis a zkrácený obsah spolu s odkazem na hlavní stránku příběhu. Jsou zobrazeny pouze vydané příběhy.

Stránka

Na stránce s příběhy je zobrazen výčet všech příběhů seřazený dle jejich jména. Obsah je zkrácen na maximální délku 300 znaků, za kterými následují tři tečky a poté odkaz na samotnou stránku s příběhem. Zobrazení je rozděleno na stránky po deseti a ve spodní části je zobrazen stránkovač, umožňující uživateli se mezi stránkami pohybovat.

Blok

V bloku se zobrazuje pouze jeden příběh, zkrácený na délku 1000 znaků a následovaný třemi tečkami a odkazem na samotnou stránku příběhu.

Vtipy

Stránka se všemi vtipy není dostupná, zobrazuje se vždy jen jeden náhodný vtip z archivu.

Blok

Blok s vtipy obsahuje jeden náhodně zvolený vtip ze všech dostupných

Obory vyučující předmět

Na stránce předmětu je nutno zobrazit všechny obory, ve kterých je daný předmět vyučován. K zachycení této informace slouží entita “Předmět vůči Oboru”

TODO

  • Weight field for the Legal Subject

Administrace

V rámci projektu bude potřeba vytvořit kompletní administraci obsahu specifického pro tento projekt.

Předměty

Tabulka se seznamem předmětů a možností upravovat několik z nich najednou (Views Bulk Operations)

Obory

Klasická stránka drupalu povolující “Drag & Drop” úpravu váhy jeddnotlivých oborů. Jsou zobrazeny následující pole:

Clone this wiki locally