drupal_set_html_head és a facebook

gerisz képe

Üdv!

Egy kis "megosztási" probléma megoldásához szeretném segítségeteket kérni.

Faceboook-nál ha megszeretnénk adni, hogy mit is "osszon" meg az emberke aki rákattint pl.: a "like" gombra, akkor azt a meta adatoknál előre megszabhatjuk.

<meta property="og:title" content="title"/>
<meta property="og:site_name" content="site_name"/>
<meta property="og:image" content="thumbnail_image"/>
<meta property="og:description" content="description"/>

stb..

A head részhez szeretném ezeket a meta adatokat hozzácsapni(természetesen nem külön beírni, minden egyes "laphoz").

Ehhez kell a drupal_set_html_head.

A template-ben preprocess használatával el is jutottam eddig:

function MYTHEME_preprocess_page(&$vars, $hook)
{
    drupal_set_html_head('<meta property="og:title" content="'.   check_plain($node->title) .'"/>');
 
    drupal_set_html_head('<meta property="og:site_name" content="'. check_plain(variable_get('site_name', '')) .'"/>');
 
    $vars['head'] = drupal_get_html_head();  
}

És most jön a kérdés: -hogyan kell(lehet) a képet és a leírást megadni, ha a kép és a leírás is egy-egy cck mező amelyek tartalma nodonként változik?

Segítséget, ötleteket előre is köszönöm.

Drupal verzió: 
csg képe

Ott van a $vars tömbben minden változó, amit használhatsz. Irasd ki, és meglátod.

De valószínűnek tartom, hogy nem csak abba az egy tartalomtípusba tartozik minden oldala a honlapodnak, amelyiknél ott vannak ezek a cck mezők, úgyhogy inkább a template_preprocess_node() függvényt használd, és ott szintén a $vars tömbben lesznek a mezők, de vizsgáld a tartalomtípust is, vagy írd a node-[típus].tpl.php-ba, és ott a $node objektumot tudod használni.
(A node-oknál még arra kell figyelni, hogy full nézetben jelennek-e meg, mert ha csak egy listában, akkor ott nem akarod betenni az összes listaelem képét és leírását a fejlécbe.)

0
0

--
Csonka Gergely
http://cheppers.com

gerisz képe

Köszönöm a gyors útmutatást.

A tömböket kinyerni gyerekjáték, meg cck-nál "egyértelmű".

A listás rész az jó gondolat, eszembe sem jutott volna és csak pislognék ha megjelenne 10-20db meta jelző.(Ezt majd legutoljára, mert erre most még ötletem sincs hogyan.)

Módosítottam egy picit az előbbi kódon, csak szépen lassan.

function mytheme_preprocess_page(&$vars) {
 
 
if (!empty($vars['node']) && in_array($vars['node']->type, array('mynode')))
 
   {
    drupal_set_html_head('<meta property="og:title" content="'. check_plain($node->title) .'"/>');
    drupal_set_html_head('<meta property="og:site_name" content="'. check_plain(variable_get('site_name', '')) .'"/>');
    drupal_set_html_head('<meta property="og:image" content="'.imagecache_create_url('field_myfield', $image['filepath']).'"/>');
    $vars['head'] = drupal_get_html_head();
  }
}

Így most "nézem" a tartalmamat is.

Az előzőhöz képest beraktam még az "image-részt" is. De itt nem csak egyszerűen kell kiíratni a mezőmet. Ha nem a mezőm URL-jét kell visszaadnom. Az imagecache által. de nem akarja az igazságot.

a teljes útvonal helyet csak egy részletet ad vissza: .../sites/defaul/files/imagecache/field_myfield

(természetesen ahol a my... megnevezések vannak ott mindenhol az én "megnevezésem" van.)

0
0