You are here

function panel_service_links_render in Service links 7.2

Helper function to render the output of the pane.

Parameters

$node: The node on which the links are to be rendered if available, or NULL.

nodelink: The link to the node if available, or FALSE.

$options: The style for rendering the service links, fisheye or not.

$services: An array of services to display.

1 call to panel_service_links_render()
service_links_service_links_content_type_render in plugins/content_types/service_links.inc
Output function for the 'service_links' content type.

File

plugins/content_types/service_links.inc, line 93
Content type enables user to place the selected service links

Code

function panel_service_links_render($node, $nodelink = FALSE, $options = NULL, $services = array()) {
  $links = array(
    'weight' => array(),
    'link' => array(),
  );
  $settings = _service_links_load_settings();
  if (empty($settings['link_show'])) {
    return array();
  }
  if (isset($options)) {
    if (!is_array($options)) {
      $options = array(
        'style' => $options,
      );
    }
    $settings = array_merge($settings, $options);
  }
  _service_links_get_tags($node, $settings);
  foreach ($services as $service_id => $service) {

    // Load the position.
    $links['weight'][] = isset($settings['link_weight'][$service_id]) ? $settings['link_weight'][$service_id] : 0;

    // Render the Service.
    $links['link'] += _service_links_render($service_id, $service, $settings, $nodelink, $node);
  }
  if (!empty($links['link'])) {
    array_multisort($links['weight'], $links['link']);
  }
  return !empty($links['link']) ? $links['link'] : array();
}