Planet Drupal.hu

A Drupal legkevésbé ismert fontos szolgáltatása

Sűrű nyári elfoglaltságaink közben egy kicsit elmaradtunk a Drupal.hu linkgalériájának karbantartásával, és megint felhalmozódott jó pár engedélyezésre váró tartalom. Elnézést azoktól, akik régóta vártak arra, hogy az általuk beküldött webhely megjelenjen a galériában!

Most gyorsan ledolgoztam az elmaradást – és a beküldött webhelyek HTML forráskódjának ellenőrzése során ismét szembesültem azzal, hogy 10 webhelyből 9 nem használja a CSS és Javascript fájlok optimalizálását. Pedig mellékhatása gyakorlatilag nincs, és nem kerül semmibe – a fejlesztés végén a Teljesítmény (/admin/settings/performance) oldalon be kell tenni két pipát a megfelelő helyre, megnyomni a „Beállítások mentése” gombot, és kész. A webhely reakcióideje pedig érzékelhetően csökken, hiszen a böngészők ezután nem 20-30+ hanem csak 2-3 külső fájlt fognak egyenként lekérni a szerverről.

6.19-es frissítés után szétesik a smink?

A stíluslapokban lévő /* ékezetes megjegyzések */ okozzák. Ezeket egyébként is ajánlott kerülni, mert elhasalhat rajtuk az Internet Explorer.

  1. A Teljesítmény oldalon kapcsoljuk ki a CSS optimalizálást.
  2. A stíluslapokból szedjük ki az ékezetes megjegyzéseket, és mentsük a fájlokat UTF-8 kódolással.
  3. A Teljesítmény oldalon töröljük a gyorstárat.
  4. Kapcsoljuk vissza a CSS optimalizálást.

Advanced Mail Reroute – fejlesztői eszköz email balesetek megelőzésére

A napokban az egyik fejlesztői webhelyen véletlenül elindítottam a cront, mire a Notify modul kiküldte az új tartalmakról szóló értesítőket a feliratkozott felhasználóknak. Állhattam neki kihalászni az adatbázisból a feliratkozottak email címeit, és aztán írhattam az elnézést kérő levelet. Megrendelő sem volt túl boldog. :)

Az ilyen balesetek megelőzésére alkalmas az Advanced Mail Reroute modul, amivel beállíthatjuk, hogy bizonyos emaileket a rendszer ne továbbítson, míg a fejlesztés során szükséges posta (jelszavak, beléptető linkek, stb.) zavartalanul megérkezik hozzánk.

A nap modulja: Triggerunlock

Ma fedeztem fel ezt a kis gyöngyszemet. :) Bekapcsoltam a Simplenews Action modult, ami kifogástalanul működik, csak éppen nem csinál semmit. Fel- és leiratkozás után kellett volna átdobnom a felhasználót egy-egy nyugtázó oldalra, létre is hoztam a system típusú átirányításokat, de a csoda sajnos nem történt meg – a Triggers oldalon ott figyel a Simplenews fül, de nincs egyetlen árva elérhető action se. A Simplenews fórumban ajánlotta valaki a Triggerunlock modult, még sose hallottam róla. Bekapcsolás után az összes action elérhető valamennyi Triggers fülön, egyszerűen nagyszerű.

Kezdők fura dolgokat tudnak így összekattintgatni, használata inkább csak haladóknak ajánlott.

Morzsa kiegészítése

Ügyféligény: a morzsa elején jelenjen meg a „Hol vagyok?” kérdés, a végén pedig legyen ott az aktuális oldal címe „inaktív link”-ként, magyarán sima szövegként. Erre a témára több variáció is szerepel a Drupal.hu kézikönyvben – itt egy újabb.

A nap függvénye: content_view_field()

Ügyféligény: multiple value képmező első képét tegyem ki a tartalom tetejére, a cím alá. Leformázva, Lightbox diavetítéssel, toronyórával-lánccal.

<?php
function modulneve_nodeapi(&$node, $op, $a3 = NULL, $a4 = NULL) {
  if (
$op == 'view') {
    if (
$node->type == 'type') {
     
$field = content_fields('field_image', 'type');
     
// Nincs szükségem a $node->field_image összes értékére, ledarálhatom.
      // Ha szükség van rá, akkor ki lehet tenni a mezőt egy pszeudo-node-ba, és ott darálni (idézet a dokumentációból):
      // „Can be a 'pseudo-node', containing at least 'type', 'nid', 'vid', and the field data.”
     
$node->field_image = array($node->field_image[0]);
     
$lead_picture = content_view_field($field, $node);
     
$node->content['lead_picture'] = array(
        
'#value' => $lead_picture,
        
'#weight' => -1000,
       );
    }
  }
}
?>

Egyetlen elem megjelenítéséhez a content_view_field() helyett használható még a content_format():

<?php
  $lead_picture
= content_format($field, $node->field_image[0], 'format', $node);
?>

Ez smink nélkül nyomtatja ki a mezőt, a „format” az az érték, amit a CCK megjelenítés fülön a legördülőből kiválasztunk.

Frissítés Views 2.7-re

Pár hónapja nyitottam egy ágat a Twitteren, de nem igazán kedveltem meg (lehet, hogy nem vagyok elég öreg hozzá?) – csiripelés helyett csak némi csipogásra futotta az energiámból. A 140 karakteres méretkorlát miatt azt vettem észre, hogy kétszer annyi időt kellene tölteni a csirip megfogalmazásával, mint ameddig egy rövid blogbejegyzés megírása tartana. Viszont hol van az előírva, hogy Drupalon nem lehet mikroblogolni? Ezért úgy döntöttem, inkább nyitok a honlapomon egy-egy „munkanapló”, ill. „olvasónapló” kategóriát, és ide csipogok ezután. Itt senki nem írja elő, hány karakter lehet egy bejegyzés:

Saját megjelenítési módok Node displays modullal

Az új modul bemutatkozó videójának első részében olyan funkciókat ismertet a fejlesztő, amelyek segítségével a template.php preprocess hook-jaiban végzett programozás jó részét kiválthatjuk kattintgatással. HTML+CSS területről érkező, PHP-t nem ismerő sminkelők számára ez nagyon hasznos lehetőség, és még a Contemplate modulnál is kényelmesebb a használata.

A modul másik fő szolgáltatása (a videóban 07:10 táján) viszont már a kóderek számára is érdekes lehet: létrehozhatunk saját megjelenítési módokat (display mode). Ha valaki járt már úgy, hogy a teljes node nézet és a teaser nézet mellett szüksége lett volna további megjelenítési módokra, akkor fogja értékelni ezt a lehetőséget.

Sminkcunami-előrejelzés

Itt már elérhető néhány szép smink, és hamarosan több ezer várható. Jeff Burns portolja Drupalra a legszebb nem GPL-licenc alatt közzétett, de szabadon felhasználható sminkeket.

CCK dátummező dilemma

Ha tartalomtípusunkat dátum mezővel szeretnénk kiegészíteni, a CCK Date csomagja három lehetőséget kínál:

  • Date
  • Datestamp
  • Datetime

Mivel első ránézésre nem volt számomra nyilvánvaló, melyiket is kellene használnom, kicsit utánanéztem a dolognak.

Syndicate content