v3.0.5 code review: lots of small fixes and cleanup

- fixed nano selection in search form
- removed unused, duplicate thumb replacement pics
- freed mysql result in lib1 helppage-link generation
- fixed logpic-is-on-first-page calculation
- fixed and improved user option set handling
- readded map dragzoom
- improved log pic pages layout
- user pics page counter fix
This commit is contained in:
following
2013-03-15 12:23:21 +01:00
parent a1ea6b6aff
commit 1c40b83bd2
31 changed files with 66 additions and 223 deletions

View File

@@ -21,7 +21,6 @@
//prepare the templates and include all neccessary //prepare the templates and include all neccessary
require_once('./lib/common.inc.php'); require_once('./lib/common.inc.php');
require_once('./lib2/logic/const.inc.php');
function getWaypoints($cacheid) function getWaypoints($cacheid)
{ {

View File

@@ -343,8 +343,8 @@ function switchAttributeCat2()
<table class="table"> <table class="table">
<tr> <tr>
<td>{t}Cachesize:{/t}</td> <td>{t}Cachesize:{/t}</td>
<td><input type="checkbox" id="cachesize8" name="cachesize8" value="8" onclick="sync_options(this)" class="checkbox" {cachesize2checked} /> <label for="cachesize2">{t}nano{/t}</label>&nbsp;&nbsp;&nbsp;&nbsp;</td> <td><input type="checkbox" id="cachesize8" name="cachesize8" value="8" onclick="sync_options(this)" class="checkbox" {cachesize8checked} /> <label for="cachesize8">{t}nano{/t}</label>&nbsp;&nbsp;&nbsp;&nbsp;</td>
<td><input type="checkbox" id="cachesize2" name="cachesize2" value="2" onclick="sync_options(this)" class="checkbox" {cachesize8checked} /> <label for="cachesize2">{t}micro{/t}</label></td> <td><input type="checkbox" id="cachesize2" name="cachesize2" value="2" onclick="sync_options(this)" class="checkbox" {cachesize2checked} /> <label for="cachesize2">{t}micro{/t}</label></td>
<td><input type="checkbox" id="cachesize3" name="cachesize3" value="3" onclick="sync_options(this)" class="checkbox" {cachesize3checked} /> <label for="cachesize3">{t}small{/t}</label></td> <td><input type="checkbox" id="cachesize3" name="cachesize3" value="3" onclick="sync_options(this)" class="checkbox" {cachesize3checked} /> <label for="cachesize3">{t}small{/t}</label></td>
<td><input type="checkbox" id="cachesize4" name="cachesize4" value="4" onclick="sync_options(this)" class="checkbox" {cachesize4checked} /> <label for="cachesize4">{t}normal{/t}</label></td> <td><input type="checkbox" id="cachesize4" name="cachesize4" value="4" onclick="sync_options(this)" class="checkbox" {cachesize4checked} /> <label for="cachesize4">{t}normal{/t}</label></td>
</tr> </tr>

View File

@@ -1222,7 +1222,7 @@ function __autoload($class_name)
} }
// wiki help embedding // external help embedding
// pay attention to use only ' quotes in $text (escape other ') // pay attention to use only ' quotes in $text (escape other ')
// //
// see corresponding function in lib2/common.inc.php // see corresponding function in lib2/common.inc.php
@@ -1245,6 +1245,7 @@ function helppagelink($ocpage)
} }
else else
$helppage = ""; $helppage = "";
mysql_free_result($rs);
$imgtitle = $translate->t('Instructions', '', basename(__FILE__), __LINE__); $imgtitle = $translate->t('Instructions', '', basename(__FILE__), __LINE__);
$imgtitle = "alt='" . $imgtitle . "' title='" . $imgtitle . "'"; $imgtitle = "alt='" . $imgtitle . "' title='" . $imgtitle . "'";

View File

@@ -317,7 +317,7 @@ function fix_magic_quotes_gpc()
} }
} }
// wiki help embedding // external help embedding
// pay attention to use only ' quotes in $text (escape other ') // pay attention to use only ' quotes in $text (escape other ')
// //
// see corresponding function in lib/common.inc.php // see corresponding function in lib/common.inc.php

View File

@@ -32,10 +32,4 @@
define('DB_MODE_BUSINESSLAYER', 1); define('DB_MODE_BUSINESSLAYER', 1);
define('DB_MODE_USER', 2); define('DB_MODE_USER', 2);
define('DB_DATE_FORMAT', '%Y-%m-%d %H:%M:%S'); define('DB_DATE_FORMAT', '%Y-%m-%d %H:%M:%S');
// constants for user options (must match values in DB!)
define('USR_OPT_GMZOOM', 1);
define('USR_OPT_SHOWSTATS', 5);
define('USR_OPT_TRANSLANG', 6);
define('USR_OPT_PICSTAT', 11);
?> ?>

View File

@@ -53,4 +53,15 @@
// As of march 2013, there are a good deal of OC.de caches with 50-100 pics, // As of march 2013, there are a good deal of OC.de caches with 50-100 pics,
// but only one with more (~500 pics). If lots of caches have >100 pics, // but only one with more (~500 pics). If lots of caches have >100 pics,
// it may pay out to limit the gallery e.g. to 60 pics and implement browsing. // it may pay out to limit the gallery e.g. to 60 pics and implement browsing.
// constants for user options (must match values in DB!)
define('USR_OPT_GMZOOM', 1);
define('USR_OPT_SHOWSTATS', 5);
define('USR_OPT_MAP_MENU', 6);
define('USR_OPT_MAP_OVERVIEW', 7);
define('USR_OPT_MAP_MAXCACHES', 8);
define('USR_OPT_MAP_ICONSET', 9);
define('USR_OPT_MAP_PREVIEW', 10);
define('USR_OPT_PICSTAT', 11);
define('USR_OPT_TRANSLANG', 12);
?> ?>

View File

@@ -25,14 +25,6 @@ function get_logpics($purpose, $userid=0, $cacheid=0, $startat=0)
{ {
global $login; global $login;
// Variables to return for res_logpictures are
//
// from pictures: uuid, url and title
// from cache_logs: id, cache_id, date and type (type currently unused)
// from user: user_id and username, only if no $userid param is given
$rs = false;
$fields = "`pics`.`uuid` AS `pic_uuid`, `pics`.`url` AS `pic_url`, $fields = "`pics`.`uuid` AS `pic_uuid`, `pics`.`url` AS `pic_url`,
`pics`.`title`, `pics`.`date_created`, `pics`.`title`, `pics`.`date_created`,
`logs`.`user_id`, `logs`.`cache_id`, `logs`.`user_id`, `logs`.`cache_id`,
@@ -44,6 +36,8 @@ function get_logpics($purpose, $userid=0, $cacheid=0, $startat=0)
"INNER JOIN `cache_status` ON `caches`.`status`=`cache_status`.`id` AND `allow_user_view`=1"; "INNER JOIN `cache_status` ON `caches`.`status`=`cache_status`.`id` AND `allow_user_view`=1";
$join_user = "INNER JOIN `user` ON `user`.`user_id`=`logs`.`user_id`"; $join_user = "INNER JOIN `user` ON `user`.`user_id`=`logs`.`user_id`";
$rs = false;
switch ($purpose) switch ($purpose)
{ {
case LOGPICS_FOR_STARTPAGE_GALLERY: case LOGPICS_FOR_STARTPAGE_GALLERY:

View File

@@ -239,9 +239,9 @@ class picture
return null; return null;
else else
$rs = sql("SELECT `id` FROM `cache_logs` WHERE `cache_id`='&1' $rs = sql("SELECT `id` FROM `cache_logs` WHERE `cache_id`='&1'
ORDER BY `date` DESC ORDER BY `date`, `id` DESC
LIMIT &2", LIMIT &2",
$this->getCacheId(), MAX_LOGENTRIES_ON_CACHEPAGE); $this->getCacheId(), MAX_LOGENTRIES_ON_CACHEPAGE);
$firstlogs = false; $firstlogs = false;
while ($r = sql_fetch_assoc($rs)) while ($r = sql_fetch_assoc($rs))
if ($r['id'] == $this->getLogId()) if ($r['id'] == $this->getLogId())

View File

@@ -1,6 +1,6 @@
<?php <?php
/*************************************************************************** /***************************************************************************
* You can find the license in the docs directory * For license information see doc/license.txt
* *
* Unicode Reminder メモ * Unicode Reminder メモ
* *
@@ -10,6 +10,7 @@
global $opt; global $opt;
require_once($opt['rootpath'] . '../lib/htmlpurifier-4.2.0/library/HTMLPurifier.auto.php'); require_once($opt['rootpath'] . '../lib/htmlpurifier-4.2.0/library/HTMLPurifier.auto.php');
require_once($opt['rootpath'] . 'lib2/logic/const.inc.php');
class useroptions class useroptions
{ {
@@ -17,7 +18,7 @@ class useroptions
var $nUserId = 0; var $nUserId = 0;
var $nOptions; var $nOptions;
function __construct($nUserId=ID_NEW, $optionset=1) function __construct($nUserId=ID_NEW)
{ {
$this->nUserId = $nUserId+0; $this->nUserId = $nUserId+0;
@@ -31,13 +32,12 @@ class useroptions
$rs = sqll("SELECT `p`.`id`, `p`.`name`, `p`.`default_value`, `p`.`check_regex`, `p`.`option_order`, IFNULL(`u`.`option_visible`, 0) AS `option_visible`, `p`.`internal_use`, IFNULL(`u`.`option_value`, `p`.`default_value`) AS `option_value` $rs = sqll("SELECT `p`.`id`, `p`.`name`, `p`.`default_value`, `p`.`check_regex`, `p`.`option_order`, IFNULL(`u`.`option_visible`, 0) AS `option_visible`, `p`.`internal_use`, IFNULL(`u`.`option_value`, `p`.`default_value`) AS `option_value`
FROM `profile_options` AS `p` FROM `profile_options` AS `p`
LEFT JOIN `user_options` AS `u` ON `p`.`id`=`u`.`option_id` AND (`u`.`user_id` IS NULL OR `u`.`user_id`='&1') LEFT JOIN `user_options` AS `u` ON `p`.`id`=`u`.`option_id` AND (`u`.`user_id` IS NULL OR `u`.`user_id`='&1')
WHERE `optionset`='&2'
UNION UNION
SELECT `u`.`option_id` AS `id`, `p`.`name`, `p`.`default_value`, `p`.`check_regex`, `p`.`option_order`, `u`.`option_visible`, `p`.`internal_use`, IFNULL(`u`.`option_value`, `p`.`default_value`) AS `option_value` SELECT `u`.`option_id` AS `id`, `p`.`name`, `p`.`default_value`, `p`.`check_regex`, `p`.`option_order`, `u`.`option_visible`, `p`.`internal_use`, IFNULL(`u`.`option_value`, `p`.`default_value`) AS `option_value`
FROM `user_options` AS `u` FROM `user_options` AS `u`
LEFT JOIN `profile_options` AS `p` ON `p`.`id`=`u`.`option_id` LEFT JOIN `profile_options` AS `p` ON `p`.`id`=`u`.`option_id`
WHERE `u`.`user_id`='&1'", WHERE `u`.`user_id`='&1'",
$this->nUserId, $optionset); $this->nUserId);
} }
while($record = sql_fetch_array($rs)) while($record = sql_fetch_array($rs))
@@ -52,7 +52,7 @@ class useroptions
{ {
return $this->nUserId; return $this->nUserId;
} }
function getOptSet() function getOptSet($pId)
{ {
return $this->nOptions[$pId]['optionset']; return $this->nOptions[$pId]['optionset'];
} }

View File

@@ -1,6 +1,6 @@
<?php <?php
/*************************************************************************** /***************************************************************************
* You can find the license in the docs directory * For license information see doc/license.txt
* *
* Unicode Reminder メモ * Unicode Reminder メモ
***************************************************************************/ ***************************************************************************/
@@ -8,6 +8,7 @@
require('./lib2/web.inc.php'); require('./lib2/web.inc.php');
require_once('./lib2/logic/cache.class.php'); require_once('./lib2/logic/cache.class.php');
require_once('./lib2/logic/user.class.php'); require_once('./lib2/logic/user.class.php');
require_once('./lib2/logic/useroptions.class.php');
require_once('./lib2/logic/attribute.class.php'); require_once('./lib2/logic/attribute.class.php');
/* because the map does access some private info like /* because the map does access some private info like
@@ -60,11 +61,10 @@
else if ($sMode == 'fullscreen' || else if ($sMode == 'fullscreen' ||
($sMode == '' && ($sMode == '' &&
sql_value("SELECT option_value FROM user_options sql_value("SELECT option_value FROM user_options
INNER JOIN user ON user_options.user_id=user.user_id WHERE option_id=6 AND user_id='&1'", true, $login->userid)))
WHERE option_id=6 AND user.user_id='&1'", true, $login->userid)))
{ {
$fullscreen = true; $fullscreen = true;
$tpl->popup = true; // disables page header and -framefrapage $tpl->popup = true; // disables page header and -frame
$tpl->popupmargin = false; $tpl->popupmargin = false;
} }
else else
@@ -75,26 +75,15 @@
// save options // save options
if (isset($_REQUEST['submit']) && $_REQUEST['submit'] && $login->userid > 0) if (isset($_REQUEST['submit']) && $_REQUEST['submit'] && $login->userid > 0)
{ {
sql("INSERT INTO `user_options` (`user_id`, `option_id`, `option_visible`, `option_value`) $useroptions = new useroptions($login->userid);
VALUES ('&1', '&2', '&3', '&4')
ON DUPLICATE KEY UPDATE `option_value`='&4'", if (isset($_REQUEST['opt_menumap'])) $useroptions->setOptValue(USR_OPT_MAP_MENU, $_REQUEST['opt_menumap']+0);
$login->userid, 6, 0, min(max($_REQUEST['opt_menumap']+0, 0), 1) ); if (isset($_REQUEST['opt_overview'])) $useroptions->setOptValue(USR_OPT_MAP_OVERVIEW, $_REQUEST['opt_overview']+0);
sql("INSERT INTO `user_options` (`user_id`, `option_id`, `option_visible`, `option_value`) if (isset($_REQUEST['opt_maxcaches'])) $useroptions->setOptValue(USR_OPT_MAP_MAXCACHES, $_REQUEST['opt_maxcaches'] == 0 ? 0 : min(max(round($_REQUEST['opt_maxcaches']+0), $opt['map']['min_maxrecords']), $opt['map']['max_maxrecords']) );
VALUES ('&1', '&2', '&3', '&4') if (isset($_REQUEST['opt_cacheicons'])) $useroptions->setOptValue(USR_OPT_MAP_ICONSET, $_REQUEST['opt_cacheicons']+0);
ON DUPLICATE KEY UPDATE `option_value`='&4'", if (isset($_REQUEST['opt_pictures'])) $useroptions->setOptValue(USR_OPT_MAP_PREVIEW, min(max(round($_REQUEST['opt_pictures']+0), 0), 50) );
$login->userid, 7, 0, isset($_REQUEST['opt_overview']) ? min(max(round($_REQUEST['opt_overview']+0), 0), 1) : 0);
sql("INSERT INTO `user_options` (`user_id`, `option_id`, `option_visible`, `option_value`) $useroptions->save();
VALUES ('&1', '&2', '&3', '&4')
ON DUPLICATE KEY UPDATE `option_value`='&4'",
$login->userid, 8, 0, $_REQUEST['opt_maxcaches'] == 0 ? 0 : min(max(round($_REQUEST['opt_maxcaches']+0), $opt['map']['min_maxrecords']), $opt['map']['max_maxrecords']) );
sql("INSERT INTO `user_options` (`user_id`, `option_id`, `option_visible`, `option_value`)
VALUES ('&1', '&2', '&3', '&4')
ON DUPLICATE KEY UPDATE `option_value`='&4'",
$login->userid, 9, 0, min(max($_REQUEST['opt_cacheicons']+0, 1), 2) );
sql("INSERT INTO `user_options` (`user_id`, `option_id`, `option_visible`, `option_value`)
VALUES ('&1', '&2', '&3', '&4')
ON DUPLICATE KEY UPDATE `option_value`='&4'",
$login->userid, 10, 0, min(max($_REQUEST['opt_pictures']+0, 0), 50) );
} }
$tpl->name = 'map2'; $tpl->name = 'map2';
@@ -111,6 +100,7 @@
$tpl->add_header_javascript('http://maps.googleapis.com/maps/api/js?sensor=false&key=' . urlencode($sGMKey)); $tpl->add_header_javascript('http://maps.googleapis.com/maps/api/js?sensor=false&key=' . urlencode($sGMKey));
// https is supported by google, but may make problems in some environments, // https is supported by google, but may make problems in some environments,
// e.g. does not work with MSIE 7 on WinXP // e.g. does not work with MSIE 7 on WinXP
$tpl->add_header_javascript('resource2/misc/map/dragzoom_packed.js');
$tpl->add_body_load('mapLoad()'); $tpl->add_body_load('mapLoad()');
$tpl->add_body_unload('mapUnload()'); $tpl->add_body_unload('mapUnload()');
@@ -212,22 +202,12 @@
$tpl->assign('maxAttributeId', $maxaid); $tpl->assign('maxAttributeId', $maxaid);
// options // options
$rs = sql("SELECT `profile_options`.`id`, $useroptions = new useroptions($login->userid);
IF(`option_value` IS NULL, `default_value`, `option_value`) AS `value` $tpl->assign('opt_menumap', $useroptions->getOptValue(USR_OPT_MAP_MENU));
FROM `profile_options` $tpl->assign('opt_overview', $useroptions->getOptValue(USR_OPT_MAP_OVERVIEW));
LEFT JOIN `user_options` ON `profile_options`.`id`=`user_options`.`option_id` AND `user_id`='&1' $tpl->assign('opt_maxcaches', $useroptions->getOptValue(USR_OPT_MAP_MAXCACHES));
WHERE `optionset`=2", $tpl->assign('opt_cacheicons', $useroptions->getOptValue(USR_OPT_MAP_ICONSET));
$login->userid); $tpl->assign('opt_pictures', $useroptions->getOptValue(USR_OPT_MAP_PREVIEW));
while ($r = sql_fetch_assoc($rs))
switch ($r['id'])
{
case 6: $tpl->assign('opt_menumap', $r['value']); break;
case 7: $tpl->assign('opt_overview', $r['value']); break;
case 8: $tpl->assign('opt_maxcaches', $r['value']); break;
case 9: $tpl->assign('opt_cacheicons', $r['value']); break;
case 10: $tpl->assign('opt_pictures', $r['value']); break;
}
sql_free_result($rs);
$tpl->assign('maxrecords',$opt['map']['maxrecords'] + 0); $tpl->assign('maxrecords',$opt['map']['maxrecords'] + 0);
$tpl->assign('min_maxrecords', $opt['map']['min_maxrecords']); $tpl->assign('min_maxrecords', $opt['map']['min_maxrecords']);
@@ -408,7 +388,7 @@ function output_namesearch($sName, $nLat, $nLon, $nResultId)
function output_searchresult($nResultId, $compact, $nLon1, $nLon2, $nLat1, $nLat2, function output_searchresult($nResultId, $compact, $nLon1, $nLon2, $nLat1, $nLat2,
$cachenames, $smallmap) $cachenames, $smallmap)
{ {
global $login, $opt, $maxrecords, $msie; global $login, $opt, $msie;
// check if data is available and connect the right slave server // check if data is available and connect the right slave server
$nSlaveId = sql_value("SELECT `slave_id` FROM `map2_result` WHERE `result_id`='&1' AND DATE_ADD(`date_created`, INTERVAL '&2' SECOND)>NOW()", -2, $nResultId, $opt['map']['maxcacheage']); $nSlaveId = sql_value("SELECT `slave_id` FROM `map2_result` WHERE `result_id`='&1' AND DATE_ADD(`date_created`, INTERVAL '&2' SECOND)>NOW()", -2, $nResultId, $opt['map']['maxcacheage']);

View File

@@ -1,3 +1,7 @@
// Old CacheMarker implementation from the Google version 2 map.
// Currently not used, because it slows down marker handling;
// renders current Firefox unsusable.
function CacheMarker(latlng, wp, type, flags, map) function CacheMarker(latlng, wp, type, flags, map)
{ {
this.latlng = latlng; this.latlng = latlng;

View File

@@ -1,117 +0,0 @@
/* LatLonDisplayControl
*/
function LatLonDisplayControl() {}
LatLonDisplayControl.prototype = new GControl();
LatLonDisplayControl.prototype.initialize = function(map)
{
var control = this;
var container = document.createElement("div");
var latDiv = document.createElement("div");
var latText = document.createTextNode(" ");
this.setLabelStyle_(map, latDiv);
container.appendChild(latDiv);
latDiv.appendChild(latText);
var lonDiv = document.createElement("div");
var lonText = document.createTextNode(" ");
this.setLabelStyle_(map, lonDiv);
container.appendChild(lonDiv);
lonDiv.appendChild(lonText);
GEvent.addListener(map, "maptypechanged", function(latLng)
{
if (map.getCurrentMapType().getName(false) == "Hybrid")
{
latDiv.style.color = "white";
lonDiv.style.color = "white";
}
else
{
latDiv.style.color = "black";
lonDiv.style.color = "black";
}
});
GEvent.addListener(map, "mouseout", function(latLng)
{
var newLonText = document.createTextNode(" ");
lonDiv.replaceChild(newLonText, lonText);
lonText = newLonText;
var newLatText = document.createTextNode(" ");
latDiv.replaceChild(newLatText, latText);
latText = newLatText;
});
GEvent.addListener(map, "mousemove", function(latLng)
{
var newLonText = document.createTextNode(control.formatLon_(latLng.lng()));
lonDiv.replaceChild(newLonText, lonText);
lonText = newLonText;
var newLatText = document.createTextNode(control.formatLat_(latLng.lat()));
latDiv.replaceChild(newLatText, latText);
latText = newLatText;
});
map.getContainer().appendChild(container);
return container;
}
LatLonDisplayControl.prototype.getDefaultPosition = function()
{
return new GControlPosition(G_ANCHOR_TOP_RIGHT, new GSize(7, 32));
}
LatLonDisplayControl.prototype.setLabelStyle_ = function(map, button)
{
if (map.getCurrentMapType().getName(false) == "Hybrid")
button.style.color = "white";
else
button.style.color = "black";
button.style.font = "small Arial";
button.style.padding = "0px";
button.style.marginBottom = "1px";
button.style.textAlign = "right";
button.style.width = "10em";
}
LatLonDisplayControl.prototype.formatLat_ = function(lat)
{
var sPrefix = "";
if (lat<0)
sPrefix = "S ";
else
sPrefix = "N ";
return sPrefix + this.formatLatLon_(lat, 2);
}
LatLonDisplayControl.prototype.formatLon_ = function(lon)
{
var sPrefix = "";
if (lon<0)
sPrefix = "W ";
else
sPrefix = "E ";
return sPrefix + this.formatLatLon_(lon, 3);
}
LatLonDisplayControl.prototype.formatLatLon_ = function(value, nDegLength)
{
value = Math.abs(value);
var nDeg = Math.floor(value);
var nDecimal = Math.round((value - nDeg) * 60 * 1000) / 1000;
if (nDecimal>=60)
{
nDecimal = nDecimal - 60
nDeg = nDeg + 1;
}
var sDeg = nDeg.toString();
var sDecimal = nDecimal.toFixed(3);
while (sDeg.length<nDegLength) sDeg = "0" + sDeg;
while (sDecimal.length<6) sDecimal = "0" + sDecimal;
return sDeg + "° " + sDecimal + "'";
}

File diff suppressed because one or more lines are too long

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 987 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 718 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

View File

@@ -22,6 +22,7 @@
{else} {else}
<form action="activation.php" method="post" enctype="application/x-www-form-urlencoded" style="display: inline;"> <form action="activation.php" method="post" enctype="application/x-www-form-urlencoded" style="display: inline;">
<input type="hidden" name="submit" value="1" />
<div class="content2-pagetitle"> <div class="content2-pagetitle">
<img src="resource2/{$opt.template.style}/images/profile/32x32-profile.png" style="align: left; margin-right: 10px;" width="32" height="32" alt="{t}Activation{/t}" /> <img src="resource2/{$opt.template.style}/images/profile/32x32-profile.png" style="align: left; margin-right: 10px;" width="32" height="32" alt="{t}Activation{/t}" />
{t}Activate account{/t} {t}Activate account{/t}

View File

@@ -61,6 +61,7 @@
<li>Javascript-Warnung beim Loggen auf der italenischen Seite beseitigt</li> <li>Javascript-Warnung beim Loggen auf der italenischen Seite beseitigt</li>
<li>dänische Flagge bei dänischen Cachebeschreibungen</li> <li>dänische Flagge bei dänischen Cachebeschreibungen</li>
<li>Suchprobleme nach Logout behoben</li> <li>Suchprobleme nach Logout behoben</li>
<li>Auswahl der Nano-Größe im Suchforumlar korrigiert</li>
</ul> </ul>
<p><strong>Version 3.0.4</strong> &ndash; 17. Februar 2013</p> <p><strong>Version 3.0.4</strong> &ndash; 17. Februar 2013</p>

View File

@@ -59,6 +59,7 @@
<li>removed JavaScript warning when logging on the Italien page</li> <li>removed JavaScript warning when logging on the Italien page</li>
<li>show Danish flag with Danish cache descriptions</li> <li>show Danish flag with Danish cache descriptions</li>
<li>fixed search problems after logging out</li> <li>fixed search problems after logging out</li>
<li>fixed nano size selection in search form</li>
</ul> </ul>
<p><strong>Release 3.0.4</strong> &ndash; February 17, 2013 <p><strong>Release 3.0.4</strong> &ndash; February 17, 2013

View File

@@ -356,6 +356,7 @@ function mapLoad()
}; };
moMap = new google.maps.Map(document.getElementById("googlemap"), myOptions); moMap = new google.maps.Map(document.getElementById("googlemap"), myOptions);
moMap.enableKeyDragZoom();
setMapType("OSM", "OpenStreetMap", "http://tile.openstreetmap.org/", 18); setMapType("OSM", "OpenStreetMap", "http://tile.openstreetmap.org/", 18);
setMapType("MQ"," MapQuest", "http://otile1.mqcdn.com/tiles/1.0.0/osm/", 19); setMapType("MQ"," MapQuest", "http://otile1.mqcdn.com/tiles/1.0.0/osm/", 19);

View File

@@ -5,7 +5,7 @@
***************************************************************************} ***************************************************************************}
{* OCSTYLE *} {* OCSTYLE *}
<div class="content2-pagetitle"> <div class="content2-pagetitle">
<img src="resource2/{$opt.template.style}/images/cacheicon/traditional.gif" style="align: left; margin-right: 10px;" width="32" height="32" alt="{t}Latest logs entries{/t}" /> <img src="resource2/{$opt.template.style}/images/cacheicon/webcam.gif" style="align: left; margin-right: 10px;" width="32" height="32" alt="" />
{t}New log pictures{/t} {t}New log pictures{/t}
</div> </div>

View File

@@ -5,7 +5,7 @@
***************************************************************************} ***************************************************************************}
{* OCSTYLE *} {* OCSTYLE *}
<div class="content2-pagetitle"> <div class="content2-pagetitle">
<img src="resource2/{$opt.template.style}/images/cacheicon/traditional.gif" style="align: left; margin-right: 10px;" width="32" height="32" alt="{t}Latest logs entries{/t}" /> <img src="resource2/{$opt.template.style}/images/cacheicon/traditional.gif" style="align: left; margin-right: 10px;" width="32" height="32" alt="" />
{t}Latest logs entries{/t} {t}Latest logs entries{/t}
</div> </div>

View File

@@ -64,7 +64,7 @@
<a onclick="enlarge(document.getElementById('pic{$pictureItem.id}'))" style="cursor:pointer">{$pictureItem.title|escape}</a> <a onclick="enlarge(document.getElementById('pic{$pictureItem.id}'))" style="cursor:pointer">{$pictureItem.title|escape}</a>
{* the position of this image is the anchor for enlargit activity: *} {* the position of this image is the anchor for enlargit activity: *}
<img id="pic{$pictureItem.id}" src="resource2/ocstyle/images/misc/empty.png" longdesc="{$pictureItem.url}" alt="{$pictureItem.title|escape}" style="cursor:pointer" onclick="enlarge(this)"/> <img id="pic{$pictureItem.id}" src="resource2/ocstyle/images/misc/empty.png" longdesc="{$pictureItem.url}" />
{if $logItem.userid==$login.userid} {if $logItem.userid==$login.userid}
[<a href="picture.php?action=edit&uuid={$pictureItem.uuid|escape}">{t}Edit{/t}</a>] [<a href="picture.php?action=edit&uuid={$pictureItem.uuid|escape}">{t}Edit{/t}</a>]
[<a href="picture.php?action=delete&uuid={$pictureItem.uuid|escape}">{t}Delete{/t}</a>] [<a href="picture.php?action=delete&uuid={$pictureItem.uuid|escape}">{t}Delete{/t}</a>]

View File

@@ -179,7 +179,6 @@
<td class="header-small" >{t 1=$recommended 2=$maxrecommended}%1 of %2 possibles{/t} [<a href="usertops.php?userid={$userid}">{t}Show all{/t}</a>] <td class="header-small" >{t 1=$recommended 2=$maxrecommended}%1 of %2 possibles{/t} [<a href="usertops.php?userid={$userid}">{t}Show all{/t}</a>]
</td> </td>
</tr> </tr>
<tr><td class="spacer" colspan="2"></td></tr>
{if $show_picstat} {if $show_picstat}
<tr> <tr>

View File

@@ -5,7 +5,7 @@
***************************************************************************} ***************************************************************************}
{* OCSTYLE *} {* OCSTYLE *}
<div class="content2-pagetitle"> <div class="content2-pagetitle">
<img src="resource2/{$opt.template.style}/images/cacheicon/traditional.gif" style="align: left; margin-right: 10px;" width="32" height="32" alt="{t}Log pictures{/t}" /> <img src="resource2/{$opt.template.style}/images/cacheicon/webcam.gif" style="align: left; margin-right: 10px;" width="32" height="32" alt="" />
{t 1=$username}Log pictures of %1{/t} {t 1=$username}Log pictures of %1{/t}
</div> </div>

View File

@@ -104,7 +104,9 @@
{ {
// user has allowed picture stat and gallery view // user has allowed picture stat and gallery view
$tpl->assign('allpics',$allpics); $tpl->assign('allpics',$allpics);
if ($allpics) if (!$allpics)
$tpl->assign('logpics', get_logpics(LOGPICS_FOR_USER_STAT, $userid));
else
{ {
$pictures = get_logpics(LOGPICS_FOR_USER_GALLERY, $userid, 0, $startat); $pictures = get_logpics(LOGPICS_FOR_USER_GALLERY, $userid, 0, $startat);
$more = (count($pictures) > MAX_PICTURES_PER_GALLERY_PAGE); $more = (count($pictures) > MAX_PICTURES_PER_GALLERY_PAGE);
@@ -116,7 +118,7 @@
$tpl->assign('paging', $paging); $tpl->assign('paging', $paging);
if ($paging) if ($paging)
{ {
$pages = floor(get_logpics(LOGPICS_FOR_USER_STAT, $userid)/MAX_PICTURES_PER_GALLERY_PAGE) + 1; $pages = floor((get_logpics(LOGPICS_FOR_USER_STAT, $userid) + MAX_PICTURES_PER_GALLERY_PAGE - 1)/MAX_PICTURES_PER_GALLERY_PAGE);
$page = floor($startat/MAX_PICTURES_PER_GALLERY_PAGE) + 1; $page = floor($startat/MAX_PICTURES_PER_GALLERY_PAGE) + 1;
$pl = ""; $pl = "";
@@ -136,8 +138,6 @@
$tpl->name = 'viewprofile_pics'; $tpl->name = 'viewprofile_pics';
// actually we dont need all the other stuff here .. // actually we dont need all the other stuff here ..
} }
else
$tpl->assign('logpics', get_logpics(LOGPICS_FOR_USER_STAT, $userid));
} }
$tpl->assign('showcountry', (strlen(trim($record['country'])) > 0)); $tpl->assign('showcountry', (strlen(trim($record['country'])) > 0));

View File

@@ -59,7 +59,8 @@ abstract class ChildWp_Presenter
{ {
$this->childWpHandler = $childWpHandler; $this->childWpHandler = $childWpHandler;
$this->cacheId = $cacheId; $this->cacheId = $cacheId;
$this->waypointTypes = $childWpHandler->getChildWpIdAndNames(); $this->typeImages = $childWpHandler->getChildNamesAndImages(); $this->waypointTypes = $childWpHandler->getChildWpIdAndNames();
$this->typeImages = $childWpHandler->getChildNamesAndImages();
} }
public function initChildWp($childId, $childWp) public function initChildWp($childId, $childWp)