Lekce 1 - CMS v Nette - Co je CMS a k čemu slouží
Zdravím všechny nadšené programátory v kurzu vytvoření vlastního CMS v PHP frameworku Nette. Předtím než začneme, se seznámíme s CMS, k čemu slouží, jaké jsou jeho výhody a tak dále.
CMS
CMS je složitou webovou aplikací. Zkratka CMS pochází z anglického termínu Content Management System a označují se tak různé systémy pro správu obsahu. CMS je nástroj, který umožňuje každému uživateli vytvářet webový obsah, aniž by měl jakékoli znalosti HTML či skriptovacích jazyků (PHP, JavaScript, …). Jako synonyma k CMS se používají i termíny redakční systém a publikační systém.
Mezi jeho základní funkce patří přidávání novinek, publikování článků a jejich dodatečná editace, sdílení souborů, zobrazování fotografií, přidávání a zobrazování událostí v kalendáři, přístupová oprávnění, správa uživatelských účtů a statistika přístupů. Velkou výhodou CMS je, že většinu velmi kvalitních a propracovaných najdeme na internetu zdarma.

Obvyklé součásti CMS
Mezi základní součásti redakčního systému patří indexování, vyhledávání, načítání a správa obsahu, správa revize. Tyto části se mohou lišit a jsou závislé na implementaci. Mezi další oblíbené součásti patří:
- SEO friendly URL,
- podpora šablon,
- admin panel,
- minimální požadavky na server,
- správa rolí a
- vestavěná podpora.
Proč používat CMS
Jak jsme již naznačili, uživatelé redakčního systému se stanou v jisté míře nezávislými na vývojářích.
Nesporné výhody CMS jsou zřejmé, neboť je využívá více než 54 % všech webových stránek na světě. Mezi mnohé známe CMS systémy patří WordPress, Joomla nebo Drupal. A jaké výhody to tedy jsou?
Jednoduchost ovládání
Redakční systémy zpravidla nabízejí velmi přehledné administrativní rozhraní, v němž lze jednoduše vytvářet stránky prostřednictvím WYSIWYG editoru, který slouží k editaci dokumentů.
User friendly & mobile friendly řešení
Mnoho CMS disponuje šablonami pro responzivní design, čímž umožňuje zobrazovat obsah na mobilních zařízeních.
Pokročilá personalizace
V případě, že CMS podporuje doplňky, je jeho další výhodou schopnost rozšířit webové stránky o celou řadu přídavných funkcí. Uživatel tak může mít na svém webu přesně ty funkcionality, které požaduje, nikoliv pouze ty základní.
SEO
CMS nabízí funkce sloužící k optimalizaci stránek pro internetové vyhledávače. Tím se zajistí, že se k obsahu internetoví uživatelé skutečně dostanou, neboť jejich chování při vyhledávání je specifické a rozhodně nebudou procházet všechny výsledky vyhledávání.
Co budeme potřebovat
Lekce budou mít za úkol seznámit vás se systémem Nette a ukázat, jakým způsobem lze vytvořit vlastní CMS. Budu se snažit detailně vysvětlit postup při vývoji. Budeme potřebovat:
- znalost OOP v PHP
- základní znalost práce se SQL databázemi
- instalaci Apache, MySQL a PHP (minimálně verzi 7.1)
- Composer
Pozor, dodržuj přesné verze komponent/frameworku! Pokročilé projekty jako tento jsou složené z komponent. Možná by tě napadlo použít nejnovější verzi nějaké komponenty, co zrovna včera vyšla. Projekt ti pak ale bez odborné úpravy pravděpodobně nebude fungovat! U verzí komponent neplatí jako např. u aktualizace Windows, že chceme každý den používat tu nejnovější. Neustálé aktualizace všeho by totiž vyžadovaly každodenní a komplexní změny kódu projektu a reálně se tak neprovádějí. Ze stejného důvodu i my aktualizujeme kurzy v pravidelných intervalech a nové verze k sobě pak sladíme tak, aby vše fungovalo.
Pro získaní znalosti PHP, můžeme využít E-learning kurzy PHP, pro znalost SQL zase E-learning kurzy SQL. V těchto kurzech se také naučíme
nainstalovat Apache, MySQL a PHP. Apache, MySQL a PHP můžeme
nainstalovat podle návodu
instalace XAMPPu nebo WAMPu, věřím ale, že tyto nástroje už každý
nainstalované má
Jestliže jsme instalovali XAMPP, tak po správném nainstalování uvidíme po zobrazení localhostu základní obrazovku XAMPPu.

Instalace nástroje Composer
Composer instalujeme až po úspěšném nainstalovaní Apache, MySQL a PHP. Začněme tím, že si stáhneme Composer. Můžeme využít Windows instalátoru, který nám ulehčí instalaci Composeru na našem počítači. Po stáhnutí spustíme aplikaci Composer-Setup.exe. Při kroku, kde Composer ověřuje verzi PHP, najdeme cestu ke spustitelnému souboru PHP.exe:

Po nainstalovaní Composeru můžeme ověřit správnou instalaci
otevřením konzole a zadáním příkazu composer help
. Při
úspěšné instalaci uvidíme výstup:

Co bude naše CMS obsahovat
CMS budeme vytvářet od základu a jednotlivé funkcionality budeme přidávat postupně. Mezi funkcionality patří:
- přihlašovaní uživatele
- správa kategorií (vytváření, úprava, mazání)
- správa článků (vytváření, úprava, mazání)
- správa uživatelů (vytváření, úprava)
- kontaktní formulář
- frontendová část našeho CMS
Toto CMS v Nette vytvořil Michal
Farnik a pojmenoval ho ArgoMi, za to mu děkujeme
Pro lepší představu si ještě ukažme alespoň 2 screenshoty z hotového systému:
Pohled
na frontendovou část aplikace
Pohled na
administrační rozhraní
Pro dnešní díl to bude vše, příště se už vrhneme na konkrétní
věci pro tvorbu redakčního systému v Nette
V další lekci, CMS v Nette - Vytvoření projektu a napojení databáze, si nainstalujeme Nette Framework. Poté si vytvoříme a napojíme databázi, poté první tabulku a zobrazíme si data v naší aplikaci.