Pirmas

Temos kūrimo pagrindai

Iš tikrūjų nėra sudėtinga padaryti gerą drupal temą. Drupal temą sudaro keletas PHP failų ir vienas CSS failas. Siūlyčiau paimti jau padaryta temą ir ją susikonfigūruoti pagal savo poreikius.

Šis gidas padarytas Drupal 5.0 versijai.

Taigi, nueikite i savo /themes direktoriją. Jūs turėtumėte turėti temą, kuri vadinasi /bluemarine. Mes naudosime šią tema kaip pavyzdį.
Štai failų sąrašas, Bluemarine temoje.

Failų aprašymas

page.tpl.php - Pagrindinis temos failas, kuriame yra saugomi pagrindiniai puslapio nustatymai ir konfigūracijos

style.css - Tai CSS failas, kuris nustato pagrinines CSS temos taisykles

node.tpl.php - šis failas saugo žinučių rašymo nustatymus

block.tpl.php - Failas, kuriame yra pagrindinės blokų savybės

logo.png - Jūsų puslapio logotipas, jeigu tokį naudojate

screenshot.png - Tai jūsų temos nuotrauka, kuri rodoma administratoriaus lange arba vartotojai gali matyti šią nuotrauką, jeigu Jūs esate aktyvavę daugiau negu vieną temą ir leidžiate vartotojams pasirinkti ją

box.tpl.php - Galite aktyvuoti apvadą savo komentarams http://drupal.org/node/11814

page.tpl.php ir style.css

page.tpl.php ir style.css yra pagrindiniai Jūsų temos failai. page.tpl.php yra parašytas sujungiant HTML ir PHP programavimo kalbas. Tai yra padaryta labai paprastai. Pavyzdžiui, kad ir šis fragmentas iš failo page.tpl.php Įterpia į Jūsų temą puslapio antraštę.

<br />
<head><br />
  <title><?php print $head_title ?></title><br />
  <?php print $head ?><br />
  <?php print $styles ?><br />
  <?php print $scripts ?></p>
<script type="text/javascript"><?php /* Needed to avoid Flash of Unstyle Content in IE */ ?> </script><p></head>

Sekantis pavyzdys iš Bluemarine page.tpl.php failo rodo PHP "if" funkcijas, kurios išveda puslapio informaciją. Tokią kaip pagrindinės nuorodos, antrinės nuorodos ar puslapio prierašas (slogan). Šio kodo pagalba Jūs galite kontroliuoti, ką rodyti, o ko ne. Bluemarine tema naudoja lenteles, bet Jūs lengvai galite pašalinti tas lenteles ir visais 100% išnaudoti CSS galimybes.

</p>
<table border="0" cellpadding="0" cellspacing="0" id="header">
<tr>
<td id="logo">
      <?php if ($logo) { ?><a href="<?php print $base_path ?>" title="<?php print t('Home') ?>"><img src="<?php print $logo ?>" alt="<?php print t('Home') ?>" /></a><?php } ?><br />
      <?php if ($site_name) { ?><br />
<h1 class='site-name'><a href="<?php print $base_path ?>" title="<?php print t('Home') ?>"><?php print $site_name ?></a></h1>
<p><?php } ?><br />
      <?php if ($site_slogan) { ?><br />
<div class='site-slogan'><?php print $site_slogan ?></div>
<p><?php } ?>
    </td>
<td id="menu">
      <?php if (isset($secondary_links)) { ?><?php print theme('links', $secondary_links, array('class' =>'links', 'id' => 'subnavlist')) ?><?php } ?><br />
      <?php if (isset($primary_links)) { ?><?php print theme('links', $primary_links, array('class' =>'links', 'id' => 'navlist')) ?><?php } ?><br />
      <?php print $search_box ?>
    </td>
</tr>
<tr>
<td colspan="2">
<div><?php print $header ?></div>
</td>
</tr>
</table>
<p>

style.css

style.css nėra sudėtingas failas, kaip gali susidaryti iš pirmo žvilgsnio. Aš rekomenduoju jį redaguoti šiuo Mozilla Firefox papildymu (plug-in) Firefox Web Developer Toolbar. Apie šį tikrai unikalų produktą bus mano sekantis gidas. Tikrai labai daug pagelbstintis dalykas, kurį pats išbandžiau ir rekomenduoju pasinaudoti.

Kiti Drupal temos failai

Kiti Drupal temos failai yra block.tpl.php, box.tpl.php, comment.tpl.php ir node.tpl.php. Kiekvienas iš šių failų saugoja atskiras temos dalis ir fragmentus. Pavyzdžiui comment.tpl.php saugoja visą komentarų struktūrą ir jų rodymą puslapyje.

</p>
<div class="comment<?php if ($comment->status == COMMENT_NOT_PUBLISHED) print ' comment-unpublished'; ?>"><br />
    <?php if ($picture) {<br />
    print
$picture;<br />
  }
?>
</p>
<h3 class="title"><?php print $title; ?></h3>
<p><?php if ($new != '') { ?><span class="new"><?php print $new; ?></span><?php } ?></p>
<div class="submitted"><?php print $submitted; ?></div>
<div class="content"><?php print $content; ?></div>
<div class="links">» <?php print $links; ?></div>
</div>
<p>

Pirmoji Jūsų Drupal tema

Nusikopijuokite Bluemarine tema, ją išsaugokite kitu pavadinimu kataloge /themes ir ją aktyvuokite. Mokėdami HTML ir PHP kalbas galite labai lenvai redaguoti page.tpl.php failą. Jeigu naudojatės Linux aplinka rekomenduoju naudotis Quanta Plus programa (deja tik KDE aplinkai). Su šia programa galite iš karto nueiti į Jūsų talpinimo serverį, /themes direktoriją ir iš karto atidaryti failą. Kai tik Jūss išsaugosite šį failą, jis iš karto bus atnaujinamas serveryje. Kitiems Linux vartotojams naudojantiems GNOME aplinka rekomenduoju naudoti "Jedit" programą. Na, o Windows vartotojams rekomenduočiau Macromedia Dreamweaver. Pastaroji padės kurti temą daugiau vizualiniais metodais negu programiškai. Nepamirškite padarytą temą nufotografuoti (Printscreen) ir pakeisti nuotraukos dydį į 150x90. Tą nuotrauką reikia išsaugoti screenshot.png faile.

Mano rekomendacijos

Nepatyrusiems programuotojams rekomenduoju pasiimti norimą temą ir ją redaguoti. Taip bus daug paprasčiau. Norintiems daryti temą nuo nulio, bus tikrai sudetinga, nes reikės laikytis nemažai Drupal temų kūrimo taisyklių ir principų. Pats branduolys turi būti vistiek tas pats visoms temoms. Norėdami sužinoti daugiau apie temų kūrimą galite aplankyti šias nuorodas.

Drupal Theme Developer's Guide
PHPTemplate theme engine documentation

Keletas pastebėjimų: *

Keletas pastebėjimų:

* Niekada nenaudokite Dreamweaverio, nebent mokate jį susikonfiguruoti. Kodinant Drupalui nepatartina naudotis Dreamweaveriu del jo automatizacijos ir programavimo palengvinimo, kad dažniausiai sukelia problemų galutiniame rezultate. Kaip pvz tabuliacija ir pan dalykai.

* Visada reiktų tūrėti test sistemą savo kompiuteryje ( dėl stabilumo ir greičio ir dėl viso pikto ), web serverį, duomenų bazės serverį ir t.t. Šitam tinka "viskas viename" paketai tokie kaip "EasyPHP', "WOS - http://www.chsoftware.net/en/useware/wos/wos.htm" (beje WOS galime pasirinkti komplektaciją su Drupal sistema iš karto) - windows sistemoms. Mac sistemoms tinka MAMP - MAMPPRO, linux "LAMP".

* Nepatyrusiems patarčiau pirma gilintis į CSS/HTML ir PHP žinias, nes teminant puslapį tai bene svarbiausias faktorius kuris lemia sėkmę. Žiūrint i jau padarytus darbus ir nežinant teorijos kaip veikia CSS arba kokie XHTML standartai - nelabai duos naudos, kainuos tik daugiau nervų ir nevalidų kodą.

* Naudoti 100% CSS temą patarčiau tik kai jau esate HTML guru, kuomet galite bet ką padaryti ( sutvarkyti lentelių išdėstymą, lankstumą ) vien tik HTML pagalba.. nors HTML naudotinas tik duomenų atvaizdavimui.. tačiau jis vis dar naudojamas pagrindams kurti ir mažiau problemų duodantis kuriant išvaizdą. Beje reikia nemažai laiko ir praktikos kad padaryti gerą, validų, 100% CSS pagrindu puslapį.

Surinktas turinys