Jak vytvořit vlastní layout pro modul Panels

Modul Panels patří mezi rodinné stříbro Drupalu a umožňuje využití různých efektivních rozvržení textů, obrázků a dalších prvků jak pro stránky s výpisy typu frontpage, tak i osobitější práci s výpisy jednotlivých nodů. Už základní modul obsahuje velké množství layoutů, které jde navíc ještě obměnit tak, že některý z podregionů necháte prázdný. Nicméně dostanete od grafika návrh designu, na který žádný ze stávajících nenapasujete a tak nastane potřeba vytvořit si layout vlastní. Jak na to?

Modul Panels (verzi 6.3) nainstalujte. Navštivte pak samotnou složku modulu a v adresáři Plugins -> Layouts si vyberte jeden z layoutů a překopírujte kompletně do složky "layouts", kterou si vytvoříte v hlavním adresáři vašeho tématu. Složku se soubory layoutu pak jednoznačně pojmenujte (pochopitelně strojově, např. fourcol), stejný název pak ponesou i jednotlivé soubory uvnitř, zajištující funkčnost layoutu v panelech.

Základními čtyřmi soubory layoutu jsou šablona (.tpl.php), konfigurační nastavení (.inc), kaskádové styly (.css) a schematický náhled rozmístění sloupců layoutu (.png), který pomůže ke snadnější orientaci v administraci panelů.

Prvním krokem je vytvoření konfiguračního souboru .inc. Jeho konfigurace je snadno odvoditelná selským rozumem z jiného/jiných layoutu/ů, nicméně podrobněji si ho tu rozpitváme. Začíná značkou &lt?php a pokračuje nepovinným souborovým infem, páteří mu pak je pole proměnné $plugin.

&lt?php
// $Id: fourcol.inc,v 1.1.0 2011/04/03 15:00:00 teenageriot Exp $

$plugin = array(
  'title' => t('Four Column'),
  'category' => t('Columns: 4'),
  'icon' => 'fourcol.png',
  'theme' => 'fourcol',
  'css' => 'fourcol.css',
  'panels' => array(
    'top' => t('Top'),
    'firstcol' => t('First column'),
    'secondcol' => t('Second column'),
    'thirdcol' => t('Third column'),
    'fourthcol' => t('Fourth column')
   ),
); 

jednotlivé řádky podrobněji:

  • title - logicky slouží pro pojmenování vašeho layoutu
  • category - layouty jsou seřazeny podle počtu sloupců, zadejte ve tvaru "Columns: číselný počet sloupců"
  • icon - jméno náhled rozmístění sloupců layoutu (jmenolayoutu.png)
  • theme - strojový název layoutu (shoduje se s názvem složky, ve které je umístěn)
  • css - jméno souboru s kaskádovými styly, opět ve tvaru strojový název layoutu s příponou css
  • panels - klíčový soubor, ve kterém definujete jednotlivé regiony layoutu, ve tvaru 'strojovy_nazev' => t('Název určený uživatelům')

Celý layout panelu se zobrazí v šablonách page.tpl.php, node.tpl.php a dalších při vypsání klasické proměnné pro obsah $content. Do nejvyššího, obalovacího divu přidejte podmínku &ltphp if (!empty($css_id)) { print "id=\"$css_id\""; } ?&gt, která umožní vypsat na dané stránce jednoznačné id, které je možné zadat v administraci panelů. To ulehčí následné stylování jedné, či skupiny stránek používajících daný panel. Jednotlivé regiony se pak v příslušném místě html kostry vypisují takto: &gt?php print $content['strojove_jmeno_regionu']; ?&gt. Definice vlastností (rozměry, pozicování a podobně) pak logicky patří do souboru s kaskádovými styly.

Po vyčištění cache by se měl nový layout zobrazit v administraci Panels. Stačí jej pro některou stránku vybrat a naplnit jeho jednotlivé součásti požadovaným obsahem.

Jak vytvořit vlastní layout pro modul Panels
Verze drupalu: