2012/09/13

Block beágyazása - de elegánsan ám!

Amikor blockot kell kódból beágyazni, nem is lehet elegánsabb a sminkfüggvényen kívül előállítani a block html kódját. Íme egy saját "hook_". :)

function hook_rendered_block($modul, $block_id) {
  $block = block_load($modul, $block_id);
  $block_rendered = 
_block_get_renderable_array(_block_render_blocks(array($block)));
  $html_block = drupal_render($block_rendered);
  return $html_block;
}


Ezután a smink függvényben, tpl-ben, akárhol, csak meg kell hívni és visszaadja ami a megjelenítésbe kell. A block_load függvény rafinált, mert $bid-t vár, de sokszor nem egyértelmű, hogy mi a 'bid' értéke. Ha a block szerkesztés oldalon megnézed a block url-t, akkor megtalálsz benne mindent, amire szükséged lehet.

admin/structure/block/manage/$module/$block_id/configure

Persze a block objektumból ki is tudod puskázni, hogy pontosan mi a 'bid' értéke, és akkor azt is megadhatod. A félreértések elkerülése végett a $bid az eredeti paraméter neve a block_load függvénynek. Én azért hívom $blokk_id -nek, mert a tid, nid, bid -ről nekem mindig szám jut eszembe, ami itt elég pontatlan lenne.

Közben CsG kollégámtól jött egy újabb ötlet, az elegancia fokozására...

Mivel a .tpl fájlokban nem illik függvényeket hívogatni, D8-ban - ha minden igaz - a valóságban is így lesz (a mostani render() állapothoz képest), így a fenti függvény hívását áttettük a template.php-be, az adott preprocess függvénybe. Mivel a $variables értékén nem csak változtatni tudunk, de hozzáadni is, így ez már gyerekjáték...

 $variables['blokk_neve'] = hook_rendered_block($modul, $block_id);

Ezután nincs más dolgunk mint a .tpl fájlban kiprintelni a tartalmat. A .tpl fájlhoz a $variables indexei kerülnek át egyszerűen meghívható változóként. Tehát a kiíratás a következőképpen fog történni...

print $blokk_neve;

Köszönet a segítségért!

2012/07/30

jelszómódosítás nélkül sehova barátocskám

Eddig nem volt olyan site, ahol ne lett volna probléma, hogy regisztráció után nem olvasta el a látogató az utasításokat és persze nem írta be a jelszavát, így mikor kilépett és újra be akart lépni nem tudta mivel lépjen be. És jött, hogy szar az egész rendszer...


Itt van sok okosság, de tid még egy olyat is, hogy a userhez hozzáköti, hogy a következő belépéskor kötelező jelszavat változtatnia... mindezt úgy valósítja meg, hogy bárhova kattint az okos, csak a sajt profil szerkesztése oldalt tölti mindig vissza.

2012/07/21

többnyelvűsítés

ha blokk és fordítható, akkor (admin/config/regional/i18n/strings) add hozzá a beviteli formát a fordítható típusokhoz...

2012/07/20

amibe soha többet nem szeretnék belefutni

egy oszlopnév ne legyen 'change', mert az istennek sem fog lefutni rajta a db_insert - time goes by :(
köszönet CsG-nek a türelemért :)

adatbázis furfang

ha lekérdezem egy tábla abcde oszlopaiból az abc oszlopait, akkor simán
$query = db_select('tabla', 't');
->fields('t', array('a', 'b', 'c'));

ám, ha az összes oszlop kell, és mert meglevő kódot egészítek ki, nem járható út a tömb feltöltése az összes oszloppal, helyesen tehát így néz ki
$query = db_select(tabla', 't');
->fields('t');

2012/02/05

Hiába, Ő csak Ő ...

na most az van, hogy van Ő, már sok sok éve. Aztán tudod, hogy van olyan patak amibe nem kívánsz többször bele lépni, mert már sokszor olyan friss volt a vize, hogy beledermedt az egész tested. Szóval Ő olyan, akit tudatosan akként kezelsz, amiként egy barátot - ugyan kedves, de szimplán egy barátot. És ez így könnyű és látszólag működik...
Aztán mikor találkoztok akkor történik valami, ami ezt kisüti az agyadból és csak az marad, ami a jelen. Egy olyan élmény, ami mással sosem történik meg.
...
No hiszen. Nem tudom. Megtörténik a csoda. Van átrohanás. De mégis, nem tudatosul, mégis a konvenciók győznek.
- Ez nem mehet így tovább. Két lehetőség van.
Vagy szembenézünk a jelenséggel, vagy soha többet nem találkozunk.
Áh, miért ilyen nehéz!

2012/01/19

rombolás

"béna kacsa" - Uramisten mi van itt... ha tetszik, ha nem - a köztársasági elnökről beszél a munkahelyén... nem kocsmában a haveroknak. Minden ilyen megmozdulással magunkat minősítjük. Ez nem tűnik fel?! Az nem probléma, hogy az ország egyik legjelentősebb Egyetemének hitelességét kérdőjelezzük meg? Arról nem is beszélve, hogy akik elbírálták, még egy rakás ember dolgozatán szerepel a kézjegyük... sajtószabadság - HVG, mivan?! Az érvek pont annyira tényszerűtlenek, mint az ellenérvek. (de a magyar tudja (vagy csak hiszi), hogy csak úgy érvényelsülhet, ha lezúzza egy társát - szolidaritás csuhaj) Ebben az országban bárkiről leírhatnak bármit - és meg is teszik... Aztán Strasszburgban olyanok mondják meg a tutit, akiknek halvány lila gőze sincs a valóságról. Tárgyi tévedések tömkelege. XY mond valamit, aztán a szegény "megcenzorált" bérfirkász leír valami teljesen mást, amiből bummot remél. Aztán a bullshit terjed, tovább torzul... Aztán érdekfüggők kezében fegyverré válik - amiből parttalan vita keletkezik. És ez megy napról napra, hétről hétre, hónapról hónapra.
Érdekes volt tegnap azokat is hallani, akik mellettünk állnak, ja nem mellettünk, mert mi sem állunk magunk mellett. Szóval a mellett állnak, hogy nem kéne mindent szó nélkül lenyelni amit a nagytestvér mindnyájunk elé vet (eléjük, elénk - a másodhegedűsök elé). (stb. stb. mémek, kapu portálok, kamu híradók... stb, stb.)

- Nem tudom, de az jutott eszembe, a mocskolódás helyett inkább megfogadhatnánk egy demokratikusnak ítélt állam által kitermelt szállóigét: "Ne azt kérdezd, mit tehet érted a haza, hanem azt, hogy te mit tehetsz a hazáért".

... tényleg ez a legjobb, ami tőlünk telik?