Přihlásit

Blog

Vývojářský deníček #2

Date 2011-05-04 18:33:15 | napsal Martin Pernica

Další díl našeho vývojářského deníčku je tady. V tomto díle se podíváme na další věco okolo šablonovacího jazyku, rozebereme si novou strukturu adresářů a také nahlédneme na používaní cache.



Bloky a regulární výrazy v podmínkách

Nejdříve bych začal s tím co to vlastně ty "bloky" jsou ve VisionCMS. Pokud jste používali starší verze VisionCMS tak jste se určitě setkali s tím že systém uměl rozmísťovat komponenty do tří bloků - left, right, bottom a top. Což bylo značně omezené a nebyla možnost si vytvořit vlastní bloky do kterých jste následně umísťovali Vaše moduly. Nyní jsme se rozhodli pro přístup abychom Vám uživatelům či webdesignerům dali volnou ruku a každá šablona může mít neomezený počet bloků s vlastními označeními do kterých lze následně vkládat moduly.

<block id="RightPanel"> </block>

<block id="MainContent"> </block>

<block id="LeftPanel"> </block> 

Další věcí, která byla implementována je podpora regulárních výrazů v podmínce. Například když v proměnná name bude obsahovat text martin zobrazí se daný obsah.

<if condition="username regex /martin/i">

<p>Proměnná username obsahuje text martin bez ohledu na velikost písmen!</p>

</if> 


Používání cache

Při různých výkonově či pamětově náročných operacích je vhodné použít cache. Například načítání RSS zdroje a jeho následného výpisu v modulu. Při vlastním cachování stačí použít již vytvořený objekt třídy V_Cache, zeptat se na data zda jsou ještě platné (či vůbec existují) a pokud nejsou platné vykonáme celý kód znova a uložíme na Vámi definovanou dobu (v tomto případě 1 hodina).

$cache = $this->application->getCache();

$this->output = $cache->get("Articles-homepage", 3600);  
  
if($this->output === false)  
{
    $this->output = "Toto bude uloženo do cache!";
    $cache->set("Articles-homepage", $this->output);  
}


Nová struktura složek a souborů

S novou verzí příchází i kompletně nová struktura složek a souborů.

- administration ............ složka s admin aplikací

- cache ...................... složka obsahující cache data

- components .............. obsahuje hlavní část systému - controller dané stránky podle routeru
 | - Articles .................. obsahuje controller pro články a jejich obsluhu
      | - Backend ............ soubory potřebné pro správu článku přes admina
           | - Articles.php (stejný název jako složka) "bootovací" soubor komponenty pro administraci
      | - Languages ......... soubory s překlady dané komponenty v .INI formátu
          | - Frontend ....... překlady pro frontend část komponenty
          | - Backend ........ překlady pro backend část kompomenty - administrace 
   - Router.php .............. soubor pro routování dané komponenty
   - Articles.php ............. (stejný název jako složka) "bootovací" soubor komponenty pro frontend
   - Info.xml ................. informační XML soubor s daty jako jsou autor, verze apod.
      | - další možné složky Helpers, Models, Controllers, Views (šablony)
 | - další možné komponenty Users, Search, Page ... apod.

- modules ..................... složka obsahuje moduly - což jsou malé části webu jako je políčko pro vyhledávání, login formulář apod.
 | - Search .................... obsahuje logiku pro modul, který vypíše vyhledávací pole a data odešle komponentě Search
      | - Backend ............ soubory potřebné pro úpravu nastavení modulu
           | - Search.php (stejný název jako složka) "bootovací" soubor modulu pro administraci
      | - Languages ......... soubory s překlady daného modulu v .INI formátu
          | - Frontend ....... překlady pro frontend část modulu
          | - Backend ........ překlady pro backend část modulu - administrace
   - Search.php ............. (stejný název jako složka) "bootovací" soubor modulu pro frontend
   - Info.xml ................. informační XML soubor s daty jako jsou autor, verze apod.
   | - Views (šablony)
 | - další možné moduly Login, Footer, Pool ... apod.

- libraries ..................... knihovny celého systému
 | - CMS ....................... složka obsahující logiku redakčního systému
 | - VFramework ............. framework nad kterým běží CMS logika
 | - VDatabase ............... knihovna pro přístup k databázovým datům (MySQL, PostgreSQL, SQLite, MS SQL, Oracle)

- watchers ..................... složka obsahuje třídy, které navazují permanentně na nějakou systémovou událost

- public ...................... veřejné data pro uživatele, zde mohou být obrázky ke článkům, avatary či jiné data komponent a webmastera

- temp ....................... složka pro dočasné data, například pro rozbalení instalačního balíčku komponenty

- templates ................. obsahuje šablony webu
 | - Default .................. základní šablona systému dodávaná v balíčku
      - Default.php ............ soubor pro základní strukturu webu
      - Info.xml ................. informační XML soubor s daty jako jsou autor šablony, verze apod.
     | - styles ................. styly šablony
     | - images ................ obrázky šablony
     | - components ......... složka pro úpravu Views dané komponenty
          | - Articles
               - singleArticle.phtml .. systém při výpisu jednoho článku použije tuto šablonu namísto základní šablony ve složce komponenty

Drobnosti v struktuře se ještě mohou změnit!


Váš názor je pro nás směrodatný!

Nebojte se a napište nám Váš názor na naše fórum!

I Vaše nápady se mohou promítnout v nové verzi VisionCMS!

Sdílejte na: