diff --git a/service_links.module b/service_links.module index 615a77f..f8ceb34 100644 --- a/service_links.module +++ b/service_links.module @@ -698,7 +698,7 @@ function _service_links_get_tags($node, &$settings) { // The query shouldn't follow the front_page alias but point the original page. $query = drupal_get_normal_path($_GET['q']); - + $teaser = ''; $nid = NULL; } @@ -707,6 +707,30 @@ function _service_links_get_tags($node, &$settings) { $long_url = $url; + /** Add "available value" for the first image in field_image **/ + $pinit = ''; + if (property_exists($node, 'field_image') && $node->field_image['und'][0]['uri']) { + $uri = $node->field_image['und'][0]['uri']; + $pinit = file_create_url($uri); + } + else { + // Locate all image fields on this content type. + $relevnat_fields = array(); + $all_fields = field_info_fields(); + foreach ($all_fields as $field) { + if (in_array('node', $field['bundles']) && in_array($node->type, $field['bundles']['node']) && $field['type'] == 'image') { + $relevnat_fields[] = $field; + } + } + // Loop through relevant fields until you find an image. + foreach ($relevnat_fields as $name => $field) { + if (property_exists($node, $name) && $node->{$name}['und'][0]['uri']) { + $uri = $node->{$name}['und'][0]['uri']; + $pinit = file_create_url($uri); + } + } + } + $front_page = url('', array('absolute' => TRUE)); if ((variable_get('clean_url', 0) == 0) && (strpos($front_page, '?q=') === FALSE)) { $front_page .= '?q='; @@ -753,6 +777,7 @@ function _service_links_get_tags($node, &$settings) { 'url' => '', 'title' => '', 'front-page' => '<front-page>', + 'pinit' => '<pinit>', ); $settings['subst'] = array( //'raw-encoded-title' => rawurlencode($title), @@ -793,6 +818,7 @@ function _service_links_get_tags($node, &$settings) { 'url' => $url, 'title' => $title, 'front-page' => $front_page, + 'pinit' => $pinit, ); } diff --git a/services/general_services.module b/services/general_services.module index 6645b69..fcba359 100644 --- a/services/general_services.module +++ b/services/general_services.module @@ -140,6 +140,11 @@ function general_services_service_links() { 'description' => t('Post on Diigo'), 'link' => 'http://www.diigo.com/post?url=<encoded-url>&title=<encoded-title>&desc=<encoded-teaser>', ); + $links['pinterest'] = array( + 'name' => 'Pinterest', + 'description' => t('Pin it on Pinterest'), + 'link' => 'http://pinterest.com/pin/create/bookmarklet?media=<pinit>&url=<encoded-url>&title=<encoded-title>&is_video=false&description=<encoded-teaser>', + ); $links['viadeo'] = array( 'name' => 'Viadeo', 'link' => 'http://www.viadeo.com/shareit/share/?url=<encoded-url>&title=<encoded-title>',