<?php

/**
 * @file
 * Hooks implementations for leaflet_views_ajax_popup.
 */

/**
 * Implements hook_views_api().
 */
function leaflet_views_ajax_popup_views_api() {
  return array('api' => 3);
}

/**
 * Implements hook_menu().
 */
function leaflet_views_ajax_popup_menu() {
  $items = array();

  $items['leaflet-views-ajax-popup/%/%/%'] = array(
    'page callback' => 'leaflet_views_ajax_popup_callback',
    'page arguments' => array(1, 2, 3),
    'access callback' => 'leaflet_views_ajax_popup_access',
    'access arguments' => array(1, 2),
    'delivery callback' => 'drupal_json_output',
  );

  return $items;
}

/**
 * Page callback.
 */
function leaflet_views_ajax_popup_callback($type, $id, $view_mode) {
  $entity = entity_load_single($type, $id);
  if (!$entity) return;
  $build = entity_view($type, array($entity), $view_mode);
  return drupal_render($build);
}

/**
 * Access callback.
 */
function leaflet_views_ajax_popup_access($type, $id) {
  $entity = entity_load_single($type, $id);
  return entity_access('view', $type, $entity);
}

/**
 * Returns markup for AJAX popup.
 */
function leaflet_views_ajax_popup_markup($type, $id, $mode) {
  return '<div class="leaflet-ajax-popup" data-id="' . $id . '" data-type="' . $type . '" data-mode="' . $mode . '"></div>';
}
