)pen Graph tags are tags that are used to grab content by some of the major Social Medial site.
I’ve added code to the themes template.php that will display this .
The main issue here was the 'image' tag which I've cross referenced the database for . These fields will be different for others ; depending on the tables that store your images.
/** * Implements template_preprocess_html() * * @param $vars * An array of variables to pass to the theme template. * The name of the template being rendered ("html" in this case.) */
function theme_preprocess_html(&$vars) {
/* * @ file Open Graph Meta tags - for LinkedIn and Facebook * * The following code writes the relevant metatags required for Open Graph. * check 'open graph' on https://developer.linkedin.com/docs/share-on-linkedin * for more information * There's 2 images in the node that we can add 1. field_image and 2. field_header_image * We'll try field header image first. * Lets get the node id. */ global $base_url;
$og_url = "http://" . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'];
$site_name = variable_get('site_name');
$og_title = $vars['node']->title . ($site_name ? ' | ' . $site_name : '');
$od_dec = $vars['page']['content']['metatags']['node:flexible_article']['description']['#attached']['drupal_add_html_head'][0][0]['#value'];
$page_node_attribute = $vars['attributes_array']['class']['6']; // $page_node_attribute_array = explode('-', $page_node_attribute);
$nid = end($page_node_attribute_array);
drupal_add_html_head(array(
'#tag' => 'meta',
'#attributes' => array(
'property' => 'og:title',
'content' => $og_title,
),
), 'node_' . $nid . '_og_title');
drupal_add_html_head(array(
'#tag' => 'meta',
'#attributes' => array(
'property' => 'og:description',
'content' => $od_dec,
),
), 'node_' . $nid . '_og_description');
drupal_add_html_head(array(
'#tag' => 'meta',
'#attributes' => array(
'property' => 'og:url',
'content' => $og_url,
),
), 'node_' . $nid . '_og_url');
$result = db_query('SELECT fm.filenameFROM {field_data_field_header_image} fhi LEFT JOIN {file_managed} fm ON fhi.field_header_image_fid = fm.fid WHERE fhi.entity_id = :nid LIMIT 1', array(
':nid' => $nid,
));
$image_file = $base_url . '/';
foreach ($result as $record) {
$filename = $record->filename;
$filename_fixed = str_replace(' ', '%20', $filename);
$image_file .= 'sites/default/files/styles/article_header/public/header_images/' . $filename_fixed;
}
if (!isset($filename) && $filename == NULL) {
$result2 = db_query('SELECT fm.filenameFROM {field_data_field_image} fhi LEFT JOIN {file_managed} fm ON fi.field_image_fid = fm.fid WHERE fi.entity_id = :nid LIMIT 1', array(
':nid' => $nid,
));
$image_file = $base_url . '/';
foreach ($result2 as $record) {
$filename = $record->filename;
$filename_fixed = str_replace(' ', '%20', $filename);
$image_file .= 'sites/default/files/styles/article_header/public/header_images/' . $filename_fixed;
}
}
if ($filename != NULL) {
drupal_add_html_head(array(
'#tag' => 'meta',
'#attributes' => array(
'property' => 'og:image',
'content' => $image_file,
),
), 'node_' . $nid . '_og_image');
}
}
This code was inspired by http://kahthong.com/2012/08/add-open-graph-protocol-meta-data-your-drupal-node-page