source: extensions/rv_gmaps/trunk/mapl.php @ 3501

Last change on this file since 3501 was 3447, checked in by rvelices, 15 years ago
  • added RV Map & Earth extension
  • Property svn:eol-style set to LF
  • Property svn:keywords set to Author Date Id Revision
File size: 5.1 KB
Line 
1<?php
2if ( !defined('PHPWG_ROOT_PATH') )
3  define('PHPWG_ROOT_PATH','../../');
4
5include_once( PHPWG_ROOT_PATH.'include/common.inc.php' );
6include_once( dirname(__FILE__) .'/include/functions.php');
7include_once( dirname(__FILE__) .'/include/functions_map.php');
8
9check_status(ACCESS_GUEST);
10if (!isset($rvm_dir))
11  access_denied( 'Plugin not installed' );
12
13rvm_load_language();
14
15$section = '';
16if ( $conf['question_mark_in_urls']==false and
17     isset($_SERVER["PATH_INFO"]) and !empty($_SERVER["PATH_INFO"]) )
18{
19  $section = $_SERVER["PATH_INFO"];
20  $section = str_replace('//', '/', $section);
21  if ( !isset($page['root_path']) )
22  {
23    $path_count = count( explode('/', $section) );
24    $page['root_path'] = PHPWG_ROOT_PATH.str_repeat('../', $path_count-1);
25  }
26}
27else
28{
29  foreach ($_GET as $key=>$value)
30  {
31    if (!strlen($value)) $section=$key;
32    break;
33  }
34}
35
36// deleting first "/" if displayed
37$tokens = explode(
38  '/',
39  preg_replace('#^/#', '', $section)
40  );
41$next_token = 0;
42$result = rvm_parse_blowup_url($tokens, $next_token);
43$page = array_merge( $page, $result );
44
45$order_by=null;
46if ( isset($page['ll']) )
47  $where_sql = rvm_ll_to_sql($page['ll'], $order_by);
48else
49  $where_sql = rvm_bounds_to_sql( $page['box'] );
50
51$img_fields = ' i.id,i.tn_ext,i.name,i.path,i.lat,i.lon';
52
53$was_flat = @$page['flat'];
54$page['flat']=true;
55rvm_build_section_items($img_fields, $where_sql, RVM_BUILD_HASH, $order_by);
56if (!$was_flat) unset($page['flat']);
57
58$template->set_filename( 'map', dirname(__FILE__).'/template/mapl.tpl');
59
60if (!empty($page['items']))
61{
62/* GENERATE THE CATEGORY LIST *************************************************/
63$where_sql = 'i.id IN ('.implode(',', array_keys($page['items']) ).')';
64$where_sql .= get_sql_condition_FandF(
65        array( 'forbidden_categories' => 'category_id' ),
66        ' AND'
67      );
68$query = '
69SELECT DISTINCT c.id, c.name, c.permalink, COUNT(DISTINCT i.id) counter
70  FROM '.IMAGES_TABLE.' i INNER JOIN '.IMAGE_CATEGORY_TABLE.' AS ic ON i.id=image_id
71    INNER JOIN '.CATEGORIES_TABLE.' c ON c.id=category_id
72  WHERE '.$where_sql.'
73  GROUP BY category_id
74  ORDER BY counter DESC
75  LIMIT 0,5
76;';
77$result = pwg_query($query);
78$categories=array();
79while ($row=mysql_fetch_assoc($result))
80  array_push($categories, $row);
81$categories = add_level_to_tags($categories);
82
83foreach( $categories as $category)
84{
85  $template->append(
86    'related_categories', array(
87      'U_MAP' => rvm_make_map_index_url( array( 'category' => $category ) ),
88      'URL' => make_index_url( array( 'category' => $category ) ),
89      'NAME' => $category['name'],
90      'TITLE' => l10n_dec( '%d element', '%d elements', $category['counter'] ),
91      'CLASS' => 'tagLevel'.$category['level']
92    )
93    );
94}
95
96/* GENERATE THE TAG LIST ******************************************************/
97$tags = get_common_tags( array_keys($page['items']), $conf['content_tag_cloud_items_number'], null);
98$tags = add_level_to_tags($tags);
99function counter_compare($a, $b)
100{
101  $d = $a['counter'] - $b['counter'];
102  if ($d==0)
103    return strcmp($a['name'], $b['name']);
104  return -$d;
105}
106usort($tags, 'counter_compare');
107foreach ($tags as $tag)
108{
109  $template->append(
110    'related_tags',
111    array_merge( $tag,
112      array(
113        'U_MAP' => rvm_make_map_index_url( array( 'tags' => array($tag) ) ),
114        'URL' => make_index_url( array( 'tags' => array($tag) ) ),
115        'TITLE' => l10n_dec( '%d element', '%d elements', $tag['counter'] ),
116      )
117    )
118  );
119}
120} // end !empty items
121
122
123$title = '<a target="_top" title="'.sprintf( l10n('go to %s'),$page['title']).'" href="'.duplicate_index_url( array('start'=>0) ).'">'.$page['title'].'</a>';
124if ( count($page['items']) > 0)
125  $title.=' ['.count($page['items']).']';
126
127$template->assign(
128  array(
129    'PLUGIN_ROOT_URL' => get_absolute_root_url().'plugins/'.$rvm_dir,
130    'TITLE'   => $title,
131    'U_HOME'  => make_index_url(),
132    'U_KML'   => rvm_duplicate_kml_index_url( array('flat'=>1), array('start') ),
133    'KML_LINK_TITLE' => sprintf( l10n('opens %s in Google Earth'), strip_tags($page['title']) ),
134  )
135  );
136
137$url = rvm_duplicate_blowup_url(array('start'=>0));
138$navbar = create_navigation_bar($url, count( $page['items'] ), $page['start'], 48);
139$template->assign('NAVBAR', $navbar);
140
141$page['items'] = array_slice(
142  $page['items'],
143  $page['start'],
144  48
145  );
146
147foreach ($page['items'] as $img)
148{
149  $img['file'] = basename( $img['path'] );
150  $thumbnail_url = get_thumbnail_url($img);
151  $page_url = duplicate_picture_url(
152        array(
153          'image_id' => $img['id'],
154          'image_file' => $img['file'],
155          'flat' => 1,
156        ),
157        array('start')
158      );
159  if (!empty( $img['name'] ) )
160    $title = $img['name'];
161  else
162    $title = str_replace('_', ' ', get_filename_wo_extension($img['file']));
163
164  $template->append(
165    'thumbnails',
166    array(
167      'TN_SRC'       => $thumbnail_url,
168      'URL'  => $page_url,
169      'TN_ALT'   => $img['file'],
170      'TN_TITLE'   => $title,
171      )
172    );
173}
174
175$title = $page['title'];
176$page['body_id'] = 'theMapListPage';
177
178include(PHPWG_ROOT_PATH.'include/page_header.php');
179$template->parse('map');
180include(PHPWG_ROOT_PATH.'include/page_tail.php');
181
182?>
Note: See TracBrowser for help on using the repository browser.