Theming i Drupal 7

Nu har vi på NodeOne gått igenom några av de förändringar inom theming som kommer till Drupal 7.

Under gårdagen gick vi igenom lite förändringar inom theming i Drupal 7. Här kommer några av de punkter vi uppmärksammade under dagen.

  1. Dessa hooks finns tillgängliga i temaninvå för att förändra innehåll
  1. Block har fått tydligare CSS id:n. block-user-0 har t.ex. nu fått det mer tydliga namnet block-user-login

  2. primary_links och secondary_links har bytt namn till main_menu och secondary_menu.

  3. CSS-klassen “clear-block” som tidigare kunde blandas ihop drupals block heter nu istället “clearfix”.

  4. I Drupal 7 finns nu en region som heter “content”. I denna ligger som standard “Main page content”. Nu kan man alltså lägga block man tidigare lagt i content_top eller content_bottom under eller över “Main page content” i regionen content.

  5. $closure har bytt namn till page_bottom och page_top. Regioner kan vara dolda i regionöversikten (detta ställs in i temats info fil). T.ex: regions[some_block] = Some block regions_hidden[] = some_block

  6. render() och hide(), show() har tillkomit. Man kan skriva ut delar av $content och även dölja delar av $content. T.ex. kan man printa ut $content utan kommentarer och länkar så här

    hide($content[‘comments’]); hide($content[‘links’]); print render($content); och efter detta skriva ut bara länkarna ur $content så här: <?php print render($content['links']); ?>

  7. RDFa stöd finns inbyggt i Drupal 7. HTML-taggar kan ha egenskaper som beskriver vad för innehåll det är. RDF är även något som Google anammar vid indexering av sajter http://rdfa.info/2009/05/12/google-announces-support-for-rdfa/ . T.ex. spottas detta ut då en kommentar lagts in:

    <div class="comment comment-by-node-author comment-by-viewer odd" about="/?q=comment/2#comment-2" typeof="sioc:Post"> <div class="clearfix"> <span class="submitted"><span property="dc:date dc:created" content="2010-01-12T16:47:00+01:00" datatype="xsd:dateTime">Tue, 01/12/2010 - 16:47</span> — <span rel="sioc:has_creator"><a href="/?q=user/1" title="View user profile." class="username" about="/?q=user/1" typeof="sioc:User" property="foaf:name">admin</a></span></span> <h3 property="dc:title" datatype=""><a href="/?q=comment/2#comment-2">En första kommentar</a></h3> <div class="content" property="content:encoded"> <span rel="sioc:reply_of" resource="/?q=node/6" class="rdf-meta"></span><p>Detta är den första kommentaren på denna sajt!</p> </div> </div>

  8. $footer_message och $mission är numera ett minne blott. Nu lägger man själv in block för detta i passande regioner. Sajter som uppgraderas ska få möjlighet att migrera till block.

  9. Det finns nu stöd i alla teman att lägga till klasser på olika noder etc. Detta fanns tidgare stöd för i Zen. Ett exempel: <?phpfunction mytheme_preprocess_node(&$vars) {  // Add a striping class.  $vars['classes_array'][] = 'node-' . $vars['zebra'];}?>

  10. funktioner i stil med phptemplate_ har utgått och måste istället påbörjas med temanamnet.

  11. Style.css och script.js måste nu inkluderas i temats .info-fil.

  12. Variabeln och css-klassen $picture heter numera $user_picture

  13. Två systemklaser har tillkommit .element-hidden och .element-invisible. Element-hidden kan användas då ett element inte ska visas direkt utan kanske tas fram efter en knapptryckning. När man gör en meny är det bra att inleda elementet med en kort titel som beskriver vad menyn innehåller. Element-invisible gömmer en sådan titel men gör den läsbar för användare som ställt in att de vill se den för att öka tillgängligheten.

  14. PHPtemplate tillåter numera ett wilcard i filnamnet. T.ex. kan en .tpl.php fil heta page-user-%.tpl.php där % är ett heltal.

  15. $search_box är borta från temat och ligger nu i block istället.

Kommentarer

Skriv ny kommentar

  • Webbadresser och e-postadresser görs automatiskt till länkar.
  • Lägger till typografiska justeringar.
  • Tillåtna HTML-taggar: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Rader och stycken bryts automatiskt.
  • Du kan skriva kod med <code>...</code> (generiska) eller <?php ... ?> (markerade PHP) taggar
Innehållet i detta fält är privat och kommer inte att visas publikt.
CAPTCHA
Frågan kontrollerar om du är en människa och används för att hindra spam-robotar.
Bild-CAPTCHA
Skriv in de tecken som visas i bilden.