refactored and translated 404-errorpage

This commit is contained in:
following
2013-04-25 23:43:07 +02:00
parent ed1a383ee6
commit 07712191cb
14 changed files with 439 additions and 403 deletions

15
htdocs/404/index.php → htdocs/404.php Executable file → Normal file
View File

@ -4,25 +4,24 @@
*
* Unicode Reminder メモ
***************************************************************************/
$opt['rootpath'] = '../';
require($opt['rootpath'].'lib2/web.inc.php');
require($opt['rootpath'].'lib2/logic/logpics.inc.php');
$sUserCountry = $login->getUserCountry();
// create object for "newest" information
$getNew = new getNew($sUserCountry);
$tpl->main_template = 'sys_oc404';
$tpl->name = 'sys_oc404';
$tpl->caching = false;
$tpl->cache_lifetime = 300;
$tpl->cache_id = $sUserCountry;
// rootpath
$tpl->assign('rootpath',$opt['rootpath']);
// website
// check length
$uril = 70;
@ -36,7 +35,7 @@
// get newest blog entries
$tpl->assign('blog', $getNew->feedForSmarty('blog',3));
// get newest forum posts
// get newest forum posts
$tpl->assign('forum',$getNew->feedForSmarty('forum',3));
// get newest wiki
@ -45,5 +44,7 @@
// get newest caches
$tpl->assign_rs('newcaches', $getNew->rsForSmarty('cache',array($sUserCountry, $opt['template']['locale'],3)));
$tpl->assign('contact', $opt['mail']['contact']);
$tpl->display();
?>

View File

@ -2420,6 +2420,21 @@ INSERT INTO `sys_trans` (`id`, `text`, `last_modified`) VALUES ('1978', 'only fo
INSERT INTO `sys_trans` (`id`, `text`, `last_modified`) VALUES ('1979', 'Contact reporter', '2013-02-23 19:00:04');
INSERT INTO `sys_trans` (`id`, `text`, `last_modified`) VALUES ('1980', 'For \'Found\' and \'Not found\' logs: Date and (optional) time of the cache search.', '2013-02-23 19:00:04');
INSERT INTO `sys_trans` (`id`, `text`, `last_modified`) VALUES ('1981', 'The following cache listings have been reset to the state before %1', '2013-04-14 01:13:07');
INSERT INTO `sys_trans` (`id`, `text`, `last_modified`) VALUES ('1982', 'Page not found', '2013-04-25 23:00:00');
INSERT INTO `sys_trans` (`id`, `text`, `last_modified`) VALUES ('1983', 'Cache database', '2013-04-25 23:00:00');
INSERT INTO `sys_trans` (`id`, `text`, `last_modified`) VALUES ('1984', 'Here you can find a lot of individual caches.', '2013-04-25 23:00:00');
INSERT INTO `sys_trans` (`id`, `text`, `last_modified`) VALUES ('1985', 'The newest caches:', '2013-04-25 23:00:00');
INSERT INTO `sys_trans` (`id`, `text`, `last_modified`) VALUES ('1986', 'Here you can discuss, improve or ask questions.', '2013-04-25 23:00:00');
INSERT INTO `sys_trans` (`id`, `text`, `last_modified`) VALUES ('1987', 'The newest forumposts:', '2013-04-25 23:00:00');
INSERT INTO `sys_trans` (`id`, `text`, `last_modified`) VALUES ('1988', 'Any time there are news to post, you\'ll find them here.', '2013-04-25 23:00:00');
INSERT INTO `sys_trans` (`id`, `text`, `last_modified`) VALUES ('1989', 'The newest blogposts:', '2013-04-25 23:00:00');
INSERT INTO `sys_trans` (`id`, `text`, `last_modified`) VALUES ('1990', 'Here you get tutorials, howtos and any information about Geocaching and Opencaching.', '2013-04-25 23:00:00');
INSERT INTO `sys_trans` (`id`, `text`, `last_modified`) VALUES ('1991', 'The newest wiki articles:', '2013-04-25 23:00:00');
INSERT INTO `sys_trans` (`id`, `text`, `last_modified`) VALUES ('1992', 'Not found? Contact us using', '2013-04-25 23:00:00');
INSERT INTO `sys_trans` (`id`, `text`, `last_modified`) VALUES ('1993', 'Opencaching at Facebook', '2013-04-25 23:00:00');
INSERT INTO `sys_trans` (`id`, `text`, `last_modified`) VALUES ('1994', 'Opencaching at Google+', '2013-04-25 23:00:00');
INSERT INTO `sys_trans` (`id`, `text`, `last_modified`) VALUES ('1995', 'Opencaching at Twitter', '2013-04-25 23:00:00');
INSERT INTO `sys_trans` (`id`, `text`, `last_modified`) VALUES ('1996', 'The visited website <b>%1</b> does not exists, we found the following suitable pages:', '2013-04-25 23:00:00');
-- Table sys_trans_ref
SET NAMES 'utf8';
@ -6172,6 +6187,21 @@ INSERT INTO `sys_trans_text` (`trans_id`, `lang`, `text`, `last_modified`) VALUE
INSERT INTO `sys_trans_text` (`trans_id`, `lang`, `text`, `last_modified`) VALUES ('1979', 'DE', 'Email an Melder', '2013-02-19 05:48:07');
INSERT INTO `sys_trans_text` (`trans_id`, `lang`, `text`, `last_modified`) VALUES ('1980', 'DE', 'Zeitpunkt des Funds, der erfolglosen Suche oder eines Hinweislogs', '2013-02-19 05:48:07');
INSERT INTO `sys_trans_text` (`trans_id`, `lang`, `text`, `last_modified`) VALUES ('1981', 'DE', 'The following cache listings have been reset to the state before %1', '2013-02-19 05:48:07');
INSERT INTO `sys_trans_text` (`trans_id`, `lang`, `text`, `last_modified`) VALUES ('1982', 'DE', 'Seite nicht gefunden', '2013-04-25 23:00:00');
INSERT INTO `sys_trans_text` (`trans_id`, `lang`, `text`, `last_modified`) VALUES ('1983', 'DE', 'Cache-Datenbank', '2013-04-25 23:00:00');
INSERT INTO `sys_trans_text` (`trans_id`, `lang`, `text`, `last_modified`) VALUES ('1984', 'DE', 'Hier findest du viele interessante Geocaches.', '2013-04-25 23:00:00');
INSERT INTO `sys_trans_text` (`trans_id`, `lang`, `text`, `last_modified`) VALUES ('1985', 'DE', 'Die neuesten Caches:', '2013-04-25 23:00:00');
INSERT INTO `sys_trans_text` (`trans_id`, `lang`, `text`, `last_modified`) VALUES ('1986', 'DE', 'Hier kannst du diskutieren, mitmachen oder Fragen stellen.', '2013-04-25 23:00:00');
INSERT INTO `sys_trans_text` (`trans_id`, `lang`, `text`, `last_modified`) VALUES ('1987', 'DE', 'Die neuesten Forenbeiträge:', '2013-04-25 23:00:00');
INSERT INTO `sys_trans_text` (`trans_id`, `lang`, `text`, `last_modified`) VALUES ('1988', 'DE', 'Es gibt immer wieder Neuigkeiten &ndash; hier findest du sie.', '2013-04-25 23:00:00');
INSERT INTO `sys_trans_text` (`trans_id`, `lang`, `text`, `last_modified`) VALUES ('1989', 'DE', 'Die neuesten Blog-Artikel:', '2013-04-25 23:00:00');
INSERT INTO `sys_trans_text` (`trans_id`, `lang`, `text`, `last_modified`) VALUES ('1990', 'DE', 'Hier findest du Anleitungen und Informationen über Geocaching und Opencaching.', '2013-04-25 23:00:00');
INSERT INTO `sys_trans_text` (`trans_id`, `lang`, `text`, `last_modified`) VALUES ('1991', 'DE', 'Die neuesten Wiki-Artikel:', '2013-04-25 23:00:00');
INSERT INTO `sys_trans_text` (`trans_id`, `lang`, `text`, `last_modified`) VALUES ('1992', 'DE', 'Nichts gefunden? Kontaktiere uns unter', '2013-04-25 23:00:00');
INSERT INTO `sys_trans_text` (`trans_id`, `lang`, `text`, `last_modified`) VALUES ('1993', 'DE', 'Opencaching bei Facebook', '2013-04-25 23:00:00');
INSERT INTO `sys_trans_text` (`trans_id`, `lang`, `text`, `last_modified`) VALUES ('1994', 'DE', 'Opencaching bei Google+', '2013-04-25 23:00:00');
INSERT INTO `sys_trans_text` (`trans_id`, `lang`, `text`, `last_modified`) VALUES ('1995', 'DE', 'Opencaching bei Twitter', '2013-04-25 23:00:00');
INSERT INTO `sys_trans_text` (`trans_id`, `lang`, `text`, `last_modified`) VALUES ('1996', 'DE', 'Die gesuchte Webseite <b>%1</b> existiert nicht, aber wir haben folgende geeignete Seiten gefunden:', '2013-04-25 23:00:00');
INSERT INTO `sys_trans_text` (`trans_id`, `lang`, `text`, `last_modified`) VALUES ('1', 'EN', 'Reorder IDs \r', '2010-09-02 00:15:30');
INSERT INTO `sys_trans_text` (`trans_id`, `lang`, `text`, `last_modified`) VALUES ('2', 'EN', 'The database could not be reconnected.', '2010-08-28 11:48:07');
INSERT INTO `sys_trans_text` (`trans_id`, `lang`, `text`, `last_modified`) VALUES ('3', 'EN', 'Testing please do not login', '2010-08-28 11:48:07');

View File

@ -13,7 +13,7 @@
// create object for "newest" information
$getNew = new getNew($sUserCountry);
$tpl->name = 'start';
$tpl->menuitem = MNU_START;

View File

@ -10,10 +10,10 @@ class RSSParser {
* @param string $url url of the feed to parse
* @return string $item feeditems as HTML-string
*/
public static function parse($items,$url,$includetext) {
public static function parse($items,$url,$includetext)
{
global $tpl;
if ($items <= 0)
return '';
@ -89,7 +89,7 @@ class RSSParser {
// assign to template
$tpl->assign('rsserror',$error);
// return
return $rss;
}

View File

@ -22,11 +22,13 @@ function __autoload($class_name)
$file = $opt['rootpath'] . '../lib/classes/' . $class_name . '.php';
$file2 = $opt['rootpath'] . 'lib2/' . $class_name2 . '.class.php';
if (file_exists($file)) {
$file3 = $opt['rootpath'] . 'lib2/logic/' . $class_name2 . '.class.php';
if (file_exists($file))
require_once($file);
} elseif(file_exists($file2)) {
elseif (file_exists($file2))
require_once($file2);
}
elseif (file_exists($file3))
require_once($file3);
}

View File

@ -1,328 +0,0 @@
<?php
/***************************************************************************
* For license information see doc/license.txt
*
* Unicode Reminder メモ
*
* summarize methods to get new events, caches, ratings, etc.
***************************************************************************/
class getNew {
// class variables
private $userCountry;
// getter/setter
public function get_userCountry() {
return $this->userCountry;
}
public function set_userCountry($userCountry) {
$this->userCountry = $userCountry;
}
/**
* constructor
* creates the object
*
* @param string $userCountry country of the loggedin user as parameter for the sql statements
* @return void
*/
public function __construct($userCountry) {
// set userCountry
$this->set_userCountry($userCountry);
}
/**
* rsForSmarty creates the result from database to use with smarty assign-rs method
* based on $this->type
*
* @param string $type type of the "new"-information, i.e. cache, event, rating, etc
* @param array $args numeric array containing the parameter for "sql_slave"
* @return object mysql result used by smarty assign_rs
*/
public function rsForSmarty($type,$args=null) {
// check type
if(method_exists($this,strtolower($type).'Rs')) {
return call_user_func(array($this,$type.'Rs'),$args);
}
}
/**
* feedForSmarty creates a HTML string to use with smarty assign method
* based on $this->type by using RSSParser class
*
* @param string $type type of the "new"-information, i.e. cache, event, rating, etc
* @param int $items number of feeditems to parse from feed (RSSParser)
* @param string $url url of the feed to parse (RSSParser)
* @param boolean $includetext ???following??? add table-tag?
* @return string HTML string used for smarty assign method
*/
public function feedForSmarty($type,$items=null,$url=null,$includetext=null) {
// check type
if(method_exists($this,strtolower($type).'Feed')) {
return call_user_func(array($this,$type.'Feed'),$items,$url,$includetext);
}
}
/**
* cacheRs executes the database statements for type "cache"
*
* @param array $args numeric array containing the parameter for "sql_slave"
* @return object mysql result used by smarty assign_rs
*/
private function cacheRs($args=null) {
// global
global $opt;
// check $args and set defaults
if(is_null($args) || !is_array($args)) {
$args = array($this->get_userCountry(), $opt['template']['locale'],10);
}
// execute sql
return sql_slave("SELECT `user`.`user_id` `user_id`,
`user`.`username` `username`,
`caches`.`cache_id` `cache_id`,
`caches`.`name` `name`,
`caches`.`date_created` `date_created`,
`caches`.`type`,
IFNULL(`sys_trans_text`.`text`,`cache_location`.`adm1`) AS `adm1`,
`cache_location`.`adm2`,
`cache_location`.`adm3`,
`cache_location`.`adm4`
FROM `caches`
INNER JOIN `user` ON `user`.`user_id`=`caches`.`user_id`
LEFT JOIN `cache_location` ON `caches`.`cache_id`=`cache_location`.`cache_id`
LEFT JOIN `countries` ON `countries`.`short`=`cache_location`.`code1`
LEFT JOIN `sys_trans_text` ON `sys_trans_text`.`trans_id`=`countries`.`trans_id` AND `sys_trans_text`.`lang`='&2'
WHERE `caches`.`country`='&1' AND
`caches`.`type` != 6 AND
`caches`.`status` = 1
ORDER BY `caches`.`date_created` DESC
LIMIT 0, &3",
$args);
}
/**
* eventRs executes the database statements for type "event"
*
* @param array $args numeric array containing the parameter for "sql_slave"
* @return object mysql result used by smarty assign_rs
*/
private function eventRs($args=null) {
// global
global $opt;
// check $args and set defaults
if(is_null($args) || !is_array($args)) {
$args = array($this->get_userCountry(), $opt['template']['locale'],10);
}
// execute sql
return sql_slave("SELECT `user`.`user_id` `user_id`,
`user`.`username` `username`,
`caches`.`cache_id` `cache_id`,
`caches`.`name` `name`,
`caches`.`date_hidden`,
IFNULL(`sys_trans_text`.`text`,`cache_location`.`adm1`) AS `adm1`,
`cache_location`.`adm2`,
`cache_location`.`adm3`,
`cache_location`.`adm4`
FROM `caches`
INNER JOIN `user` ON `user`.`user_id`=`caches`.`user_id`
LEFT JOIN `cache_location` ON `caches`.`cache_id`=`cache_location`.`cache_id`
LEFT JOIN `countries` ON `countries`.`short`=`cache_location`.`code1`
LEFT JOIN `sys_trans_text` ON `sys_trans_text`.`trans_id`=`countries`.`trans_id` AND `sys_trans_text`.`lang`='&2'
WHERE `caches`.`country`='&1' AND
`caches`.`date_hidden` >= curdate() AND
`caches`.`type` = 6 AND
`caches`.`status`=1
ORDER BY `date_hidden` ASC
LIMIT 0, &3",
$args);
}
/**
* ratingRs executes the database statements for type "rating"
*
* @param array $args numeric array containing the parameter for "sql_slave"
* @return object mysql result used by smarty assign_rs
*/
private function ratingRs($args=null) {
// global
global $opt;
// check $args and set defaults
if(is_null($args) || !is_array($args)) {
$args = array($this->get_userCountry(), $opt['template']['locale'],10);
}
// execute sql
// 2012-08-24 following
// optimized by adding rating_date field to cache_rating, so we don't need the log table.
return sql_slave("SELECT COUNT(`cache_rating`.`user_id`) AS `cRatings`,
MAX(`cache_rating`.`rating_date`) AS `dLastLog`,
`user`.`user_id` AS `user_id`,
`user`.`username` AS `username`,
`caches`.`cache_id` AS `cache_id`,
`caches`.`name` AS `name`,
`caches`.`type`,
IFNULL(`sys_trans_text`.`text`,`cache_location`.`adm1`) AS `adm1`,
`cache_location`.`adm2`,
`cache_location`.`adm3`,
`cache_location`.`adm4`
FROM `cache_rating`
INNER JOIN `caches` ON `caches`.`cache_id`=`cache_rating`.`cache_id`
INNER JOIN `user` ON `user`.`user_id`=`caches`.`user_id`
LEFT JOIN `cache_location` ON `cache_rating`.`cache_id`=`cache_location`.`cache_id`
LEFT JOIN `countries` ON `countries`.`short`=`cache_location`.`code1`
LEFT JOIN `sys_trans_text` ON `sys_trans_text`.`trans_id`=`countries`.`trans_id` AND `sys_trans_text`.`lang`='&2'
WHERE `caches`.`country`='&1' AND
`cache_rating`.`rating_date`>DATE_SUB(NOW(), INTERVAL 30 DAY) AND
`caches`.`type`!=6 AND
`caches`.`status`=1
GROUP BY `cache_rating`.`cache_id`
ORDER BY `cRatings` DESC,
`dLastLog` DESC,
`cache_id` DESC
LIMIT 0, &3",
$args);
}
/**
* blogFeed executes the RSSParser for type "blog"
*
* @param int $items number of feeditems to parse from feed (RSSParser)
* @param string $url url of the feed to parse (RSSParser)
* @param boolean $includetext ???following??? add table-tag?
* @return string HTML string used for smarty assign method
*/
private function blogFeed($items=null,$url=null,$includetext=null) {
// global
global $opt;
// check $items and set defaults
if(is_null($items) || !is_numeric($items)) {
$items = $opt['news']['count'];
}
// check $url and set defaults
if(is_null($url) || !is_string($url)) {
$url = $opt['news']['include'];
}
// check $includetext and set defaults
if(is_null($includetext) || !is_bool($includetext)) {
$includetext = false;
}
// execute RSSParser
return RSSParser::parse($items,$url,$includetext);
}
/**
* forumFeed executes the RSSParser for type "forum"
*
* @param int $items number of feeditems to parse from feed (RSSParser)
* @param string $url url of the feed to parse (RSSParser)
* @param boolean $includetext ???following??? add table-tag?
* @return string HTML string used for smarty assign method
*/
private function forumFeed($items=null,$url=null,$includetext=null) {
// global
global $opt;
// check $items and set defaults
if(is_null($items) || !is_numeric($items)) {
$items = $opt['forum']['count'];
}
// check $url and set defaults
if(is_null($url) || !is_string($url)) {
$url = $opt['forum']['url'];
}
// check $includetext and set defaults
if(is_null($includetext) || !is_bool($includetext)) {
$includetext = false;
}
// execute RSSParser
return RSSParser::parse($items,$url,$includetext);
}
/**
* wikiFeed executes the RSSParser for type "wiki"
*
* @param int $items number of feeditems to parse from feed (RSSParser)
* @param string $url url of the feed to parse (RSSParser)
* @param boolean $includetext ???following??? add table-tag?
* @return string HTML string used for smarty assign method
*/
private function wikiFeed($items=null,$url=null,$includetext=null) {
// global
global $opt;
// check $items and set defaults
if(is_null($items) || !is_numeric($items)) {
$items = 10;
}
// check $url and set defaults
if(is_null($url) || !is_string($url)) {
$url = 'http://wiki.opencaching.de/index.php/Spezial:Neue_Seiten?feed=rss';
}
// check $includetext and set defaults
if(is_null($includetext) || !is_bool($includetext)) {
$includetext = false;
}
// execute RSSParser
return RSSParser::parse($items,$url,$includetext);
}
}
?>

View File

@ -0,0 +1,327 @@
<?php
/***************************************************************************
* For license information see doc/license.txt
*
* Unicode Reminder メモ
*
* summarize methods to get new events, caches, ratings, etc.
***************************************************************************/
class getNew
{
// class variables
private $userCountry;
// getter/setter
public function get_userCountry()
{
return $this->userCountry;
}
public function set_userCountry($userCountry)
{
$this->userCountry = $userCountry;
}
/**
* constructor
* creates the object
*
* @param string $userCountry country of the loggedin user as parameter for the sql statements
* @return void
*/
public function __construct($userCountry)
{
// set userCountry
$this->set_userCountry($userCountry);
}
/**
* rsForSmarty creates the result from database to use with smarty assign-rs method
* based on $this->type
*
* @param string $type type of the "new"-information, i.e. cache, event, rating, etc
* @param array $args numeric array containing the parameter for "sql_slave"
* @return object mysql result used by smarty assign_rs
*/
public function rsForSmarty($type,$args=null)
{
// check type
if(method_exists($this,strtolower($type).'Rs'))
{
return call_user_func(array($this,$type.'Rs'),$args);
}
}
/**
* feedForSmarty creates a HTML string to use with smarty assign method
* based on $this->type by using RSSParser class
*
* @param string $type type of the "new"-information, i.e. cache, event, rating, etc
* @param int $items number of feeditems to parse from feed (RSSParser)
* @param string $url url of the feed to parse (RSSParser)
* @param boolean $includetext ???following??? add table-tag?
* @return string HTML string used for smarty assign method
*/
public function feedForSmarty($type,$items=null,$url=null,$includetext=null)
{
// check type
if (method_exists($this,strtolower($type).'Feed'))
{
return call_user_func(array($this,$type.'Feed'),$items,$url,$includetext);
}
}
/**
* cacheRs executes the database statements for type "cache"
*
* @param array $args numeric array containing the parameter for "sql_slave"
* @return object mysql result used by smarty assign_rs
*/
private function cacheRs($args=null)
{
// global
global $opt;
// check $args and set defaults
if (is_null($args) || !is_array($args))
{
$args = array($this->get_userCountry(), $opt['template']['locale'],10);
}
// execute sql
return sql_slave(
"SELECT `user`.`user_id` `user_id`,
`user`.`username` `username`,
`caches`.`cache_id` `cache_id`,
`caches`.`name` `name`,
`caches`.`date_created` `date_created`,
`caches`.`type`,
IFNULL(`sys_trans_text`.`text`,`cache_location`.`adm1`) AS `adm1`,
`cache_location`.`adm2`,
`cache_location`.`adm3`,
`cache_location`.`adm4`
FROM `caches`
INNER JOIN `user` ON `user`.`user_id`=`caches`.`user_id`
LEFT JOIN `cache_location` ON `caches`.`cache_id`=`cache_location`.`cache_id`
LEFT JOIN `countries` ON `countries`.`short`=`cache_location`.`code1`
LEFT JOIN `sys_trans_text` ON `sys_trans_text`.`trans_id`=`countries`.`trans_id` AND `sys_trans_text`.`lang`='&2'
WHERE `caches`.`country`='&1' AND
`caches`.`type` != 6 AND
`caches`.`status` = 1
ORDER BY `caches`.`date_created` DESC
LIMIT 0, &3",
$args);
}
/**
* eventRs executes the database statements for type "event"
*
* @param array $args numeric array containing the parameter for "sql_slave"
* @return object mysql result used by smarty assign_rs
*/
private function eventRs($args=null)
{
// global
global $opt;
// check $args and set defaults
if (is_null($args) || !is_array($args))
{
$args = array($this->get_userCountry(), $opt['template']['locale'],10);
}
// execute sql
return sql_slave(
"SELECT `user`.`user_id` `user_id`,
`user`.`username` `username`,
`caches`.`cache_id` `cache_id`,
`caches`.`name` `name`,
`caches`.`date_hidden`,
IFNULL(`sys_trans_text`.`text`,`cache_location`.`adm1`) AS `adm1`,
`cache_location`.`adm2`,
`cache_location`.`adm3`,
`cache_location`.`adm4`
FROM `caches`
INNER JOIN `user` ON `user`.`user_id`=`caches`.`user_id`
LEFT JOIN `cache_location` ON `caches`.`cache_id`=`cache_location`.`cache_id`
LEFT JOIN `countries` ON `countries`.`short`=`cache_location`.`code1`
LEFT JOIN `sys_trans_text` ON `sys_trans_text`.`trans_id`=`countries`.`trans_id` AND `sys_trans_text`.`lang`='&2'
WHERE `caches`.`country`='&1' AND
`caches`.`date_hidden` >= curdate() AND
`caches`.`type` = 6 AND
`caches`.`status`=1
ORDER BY `date_hidden` ASC
LIMIT 0, &3",
$args);
}
/**
* ratingRs executes the database statements for type "rating"
*
* @param array $args numeric array containing the parameter for "sql_slave"
* @return object mysql result used by smarty assign_rs
*/
private function ratingRs($args=null)
{
// global
global $opt;
// check $args and set defaults
if (is_null($args) || !is_array($args))
{
$args = array($this->get_userCountry(), $opt['template']['locale'],10);
}
// execute sql
// 2012-08-24 following
// optimized by adding rating_date field to cache_rating, so we don't need the log table.
return sql_slave(
"SELECT COUNT(`cache_rating`.`user_id`) AS `cRatings`,
MAX(`cache_rating`.`rating_date`) AS `dLastLog`,
`user`.`user_id` AS `user_id`,
`user`.`username` AS `username`,
`caches`.`cache_id` AS `cache_id`,
`caches`.`name` AS `name`,
`caches`.`type`,
IFNULL(`sys_trans_text`.`text`,`cache_location`.`adm1`) AS `adm1`,
`cache_location`.`adm2`,
`cache_location`.`adm3`,
`cache_location`.`adm4`
FROM `cache_rating`
INNER JOIN `caches` ON `caches`.`cache_id`=`cache_rating`.`cache_id`
INNER JOIN `user` ON `user`.`user_id`=`caches`.`user_id`
LEFT JOIN `cache_location` ON `cache_rating`.`cache_id`=`cache_location`.`cache_id`
LEFT JOIN `countries` ON `countries`.`short`=`cache_location`.`code1`
LEFT JOIN `sys_trans_text` ON `sys_trans_text`.`trans_id`=`countries`.`trans_id` AND `sys_trans_text`.`lang`='&2'
WHERE `caches`.`country`='&1' AND
`cache_rating`.`rating_date`>DATE_SUB(NOW(), INTERVAL 30 DAY) AND
`caches`.`type`!=6 AND
`caches`.`status`=1
GROUP BY `cache_rating`.`cache_id`
ORDER BY `cRatings` DESC,
`dLastLog` DESC,
`cache_id` DESC
LIMIT 0, &3",
$args);
}
/**
* blogFeed executes the RSSParser for type "blog"
*
* @param int $items number of feeditems to parse from feed (RSSParser)
* @param string $url url of the feed to parse (RSSParser)
* @param boolean $includetext ???following??? add table-tag?
* @return string HTML string used for smarty assign method
*/
private function blogFeed($items=null,$url=null,$includetext=null)
{
// global
global $opt;
// check $items and set defaults
if (is_null($items) || !is_numeric($items))
{
$items = $opt['news']['count'];
}
// check $url and set defaults
if (is_null($url) || !is_string($url))
{
$url = $opt['news']['include'];
}
// check $includetext and set defaults
if (is_null($includetext) || !is_bool($includetext))
{
$includetext = false;
}
// execute RSSParser
return RSSParser::parse($items,$url,$includetext);
}
/**
* forumFeed executes the RSSParser for type "forum"
*
* @param int $items number of feeditems to parse from feed (RSSParser)
* @param string $url url of the feed to parse (RSSParser)
* @param boolean $includetext ???following??? add table-tag?
* @return string HTML string used for smarty assign method
*/
private function forumFeed($items=null,$url=null,$includetext=null)
{
// global
global $opt;
// check $items and set defaults
if (is_null($items) || !is_numeric($items))
{
$items = $opt['forum']['count'];
}
// check $url and set defaults
if (is_null($url) || !is_string($url))
{
$url = $opt['forum']['url'];
}
// check $includetext and set defaults
if (is_null($includetext) || !is_bool($includetext))
{
$includetext = false;
}
// execute RSSParser
return RSSParser::parse($items,$url,$includetext);
}
/**
* wikiFeed executes the RSSParser for type "wiki"
*
* @param int $items number of feeditems to parse from feed (RSSParser)
* @param string $url url of the feed to parse (RSSParser)
* @param boolean $includetext ???following??? add table-tag?
* @return string HTML string used for smarty assign method
*/
private function wikiFeed($items=null,$url=null,$includetext=null)
{
// global
global $opt;
// check $items and set defaults
if (is_null($items) || !is_numeric($items))
{
$items = 10;
}
// check $url and set defaults
if (is_null($url) || !is_string($url))
{
$url = 'http://wiki.opencaching.de/index.php/Spezial:Neue_Seiten?feed=rss';
}
// check $includetext and set defaults
if (is_null($includetext) || !is_bool($includetext))
{
$includetext = false;
}
// execute RSSParser
return RSSParser::parse($items,$url,$includetext);
}
}
?>

View File

@ -7,25 +7,25 @@
{*cachetype=1 status=1 logtype=0 owner=false small=false*}
{if $cachetype==1}
<img src="{$rootpath}resource2/{$opt.template.style}/images/cacheicon/unknown.gif" alt="{t}Unknown Geocache{/t}" title="{t}Unknown Geocache{/t}" border="0" width="32" height="32" class="icon32" id="viewcache-cacheicon" />
<img src="resource2/{$opt.template.style}/images/cacheicon/unknown.gif" alt="{t}Unknown Geocache{/t}" title="{t}Unknown Geocache{/t}" border="0" width="32" height="32" class="icon32" id="viewcache-cacheicon" />
{elseif $cachetype==2}
<img src="{$rootpath}resource2/{$opt.template.style}/images/cacheicon/traditional.gif" alt="{t}Traditional Geocache{/t}" title="{t}Traditional Geocache{/t}" border="0" width="32" height="32" class="icon32" id="viewcache-cacheicon" />
<img src="resource2/{$opt.template.style}/images/cacheicon/traditional.gif" alt="{t}Traditional Geocache{/t}" title="{t}Traditional Geocache{/t}" border="0" width="32" height="32" class="icon32" id="viewcache-cacheicon" />
{elseif $cachetype==3} {* Ocprop: \/cacheicon\/multi\.gif"\s+alt="Multicache" *}
<img src="{$rootpath}resource2/{$opt.template.style}/images/cacheicon/multi.gif" alt="{t}Multicache{/t}" title="{t}Multicache{/t}" border="0" width="32" height="32" class="icon32" id="viewcache-cacheicon" />
<img src="resource2/{$opt.template.style}/images/cacheicon/multi.gif" alt="{t}Multicache{/t}" title="{t}Multicache{/t}" border="0" width="32" height="32" class="icon32" id="viewcache-cacheicon" />
{elseif $cachetype==4}
<img src="{$rootpath}resource2/{$opt.template.style}/images/cacheicon/virtual.gif" alt="{t}Virtual Geocache{/t}" title="{t}Virtual Geocache{/t}" border="0" width="32" height="32" class="icon32" id="viewcache-cacheicon" />
<img src="resource2/{$opt.template.style}/images/cacheicon/virtual.gif" alt="{t}Virtual Geocache{/t}" title="{t}Virtual Geocache{/t}" border="0" width="32" height="32" class="icon32" id="viewcache-cacheicon" />
{elseif $cachetype==5}
<img src="{$rootpath}resource2/{$opt.template.style}/images/cacheicon/webcam.gif" alt="{t}Webcam Geocache{/t}" title="{t}Webcam Geocache{/t}" border="0" width="32" height="32" class="icon32" id="viewcache-cacheicon" />
<img src="resource2/{$opt.template.style}/images/cacheicon/webcam.gif" alt="{t}Webcam Geocache{/t}" title="{t}Webcam Geocache{/t}" border="0" width="32" height="32" class="icon32" id="viewcache-cacheicon" />
{elseif $cachetype==6}
<img src="{$rootpath}resource2/{$opt.template.style}/images/cacheicon/event.gif" alt="{t}Event Geocache{/t}" title="{t}Event Geocache{/t}" border="0" width="32" height="32" class="icon32" id="viewcache-cacheicon" />
<img src="resource2/{$opt.template.style}/images/cacheicon/event.gif" alt="{t}Event Geocache{/t}" title="{t}Event Geocache{/t}" border="0" width="32" height="32" class="icon32" id="viewcache-cacheicon" />
{elseif $cachetype==7}
<img src="{$rootpath}resource2/{$opt.template.style}/images/cacheicon/mystery.gif" alt="{t}Quizcache{/t}" title="{t}Quizcache{/t}" border="0" width="32" height="32" class="icon32" id="viewcache-cacheicon" />
<img src="resource2/{$opt.template.style}/images/cacheicon/mystery.gif" alt="{t}Quizcache{/t}" title="{t}Quizcache{/t}" border="0" width="32" height="32" class="icon32" id="viewcache-cacheicon" />
{elseif $cachetype==8}
<img src="{$rootpath}resource2/{$opt.template.style}/images/cacheicon/mathe.gif" alt="{t}Math/Physics Geocache{/t}" title="{t}Math/Physics Geocache{/t}" border="0" width="32" height="32" class="icon32" id="viewcache-cacheicon" />
<img src="resource2/{$opt.template.style}/images/cacheicon/mathe.gif" alt="{t}Math/Physics Geocache{/t}" title="{t}Math/Physics Geocache{/t}" border="0" width="32" height="32" class="icon32" id="viewcache-cacheicon" />
{elseif $cachetype==9}
<img src="{$rootpath}resource2/{$opt.template.style}/images/cacheicon/moving.gif" alt="{t}Moving Geocache{/t}" title="{t}Moving Geocache{/t}" border="0" width="32" height="32" class="icon32" id="viewcache-cacheicon" />
<img src="resource2/{$opt.template.style}/images/cacheicon/moving.gif" alt="{t}Moving Geocache{/t}" title="{t}Moving Geocache{/t}" border="0" width="32" height="32" class="icon32" id="viewcache-cacheicon" />
{elseif $cachetype==10}
<img src="{$rootpath}resource2/{$opt.template.style}/images/cacheicon/drivein.gif" alt="{t}Drive-In Geocache{/t}" title="{t}Drive-In Geocache{/t}" border="0" width="32" height="32" class="icon32" id="viewcache-cacheicon" />
<img src="resource2/{$opt.template.style}/images/cacheicon/drivein.gif" alt="{t}Drive-In Geocache{/t}" title="{t}Drive-In Geocache{/t}" border="0" width="32" height="32" class="icon32" id="viewcache-cacheicon" />
{else}
&nbsp;
{/if}

View File

@ -7,25 +7,25 @@
{*cachetype=1 status=1 logtype=0 owner=false small=false*}
{if $cachetype==1}
<img src="{$rootpath}resource2/{$opt.template.style}/images/cacheicon/unknown.gif" alt="{t}Unknown Geocache{/t}" border="0" width="15" height="15" align="left" style="margin-right: 5px; padding-left: 25px;" />
<img src="resource2/{$opt.template.style}/images/cacheicon/unknown.gif" alt="{t}Unknown Geocache{/t}" border="0" width="15" height="15" align="left" style="margin-right: 5px; padding-left: 25px;" />
{elseif $cachetype==2}
<img src="{$rootpath}resource2/{$opt.template.style}/images/cacheicon/traditional.gif" alt="{t}Traditional Geocache{/t}" border="0" width="15" height="15" align="left" style="margin-right: 5px; padding-left: 25px;" />
<img src="resource2/{$opt.template.style}/images/cacheicon/traditional.gif" alt="{t}Traditional Geocache{/t}" border="0" width="15" height="15" align="left" style="margin-right: 5px; padding-left: 25px;" />
{elseif $cachetype==3}
<img src="{$rootpath}resource2/{$opt.template.style}/images/cacheicon/multi.gif" alt="{t}Multicache{/t}" border="0" width="15" height="15" align="left" style="margin-right: 5px; padding-left: 25px;" />
<img src="resource2/{$opt.template.style}/images/cacheicon/multi.gif" alt="{t}Multicache{/t}" border="0" width="15" height="15" align="left" style="margin-right: 5px; padding-left: 25px;" />
{elseif $cachetype==4}
<img src="{$rootpath}resource2/{$opt.template.style}/images/cacheicon/virtual.gif" alt="{t}Virtual Geocache{/t}" border="0" width="15" height="15" align="left" style="margin-right: 5px; padding-left: 25px;" />
<img src="resource2/{$opt.template.style}/images/cacheicon/virtual.gif" alt="{t}Virtual Geocache{/t}" border="0" width="15" height="15" align="left" style="margin-right: 5px; padding-left: 25px;" />
{elseif $cachetype==5}
<img src="{$rootpath}resource2/{$opt.template.style}/images/cacheicon/webcam.gif" alt="{t}Webcam Geocache{/t}" border="0" width="15" height="15" align="left" style="margin-right: 5px; padding-left: 25px;" />
<img src="resource2/{$opt.template.style}/images/cacheicon/webcam.gif" alt="{t}Webcam Geocache{/t}" border="0" width="15" height="15" align="left" style="margin-right: 5px; padding-left: 25px;" />
{elseif $cachetype==6}
<img src="{$rootpath}resource2/{$opt.template.style}/images/cacheicon/event.gif" alt="{t}Event Geocache{/t}" border="0" width="15" height="15" align="left" style="margin-right: 5px; padding-left: 25px;" />
<img src="resource2/{$opt.template.style}/images/cacheicon/event.gif" alt="{t}Event Geocache{/t}" border="0" width="15" height="15" align="left" style="margin-right: 5px; padding-left: 25px;" />
{elseif $cachetype==7}
<img src="{$rootpath}resource2/{$opt.template.style}/images/cacheicon/mystery.gif" alt="{t}Quizcache{/t}" border="0" width="15" height="15" align="left" style="margin-right: 5px; padding-left: 25px;" />
<img src="resource2/{$opt.template.style}/images/cacheicon/mystery.gif" alt="{t}Quizcache{/t}" border="0" width="15" height="15" align="left" style="margin-right: 5px; padding-left: 25px;" />
{elseif $cachetype==8}
<img src="{$rootpath}resource2/{$opt.template.style}/images/cacheicon/mathe.gif" alt="{t}Math/Physics Geocache{/t}" border="0" width="15" height="15" align="left" style="margin-right: 5px; padding-left: 25px;" />
<img src="resource2/{$opt.template.style}/images/cacheicon/mathe.gif" alt="{t}Math/Physics Geocache{/t}" border="0" width="15" height="15" align="left" style="margin-right: 5px; padding-left: 25px;" />
{elseif $cachetype==9}
<img src="{$rootpath}resource2/{$opt.template.style}/images/cacheicon/moving.gif" alt="{t}Moving Geocache{/t}" border="0" width="15" height="15" align="left" style="margin-right: 5px; padding-left: 25px;" />
<img src="resource2/{$opt.template.style}/images/cacheicon/moving.gif" alt="{t}Moving Geocache{/t}" border="0" width="15" height="15" align="left" style="margin-right: 5px; padding-left: 25px;" />
{elseif $cachetype==10}
<img src="{$rootpath}resource2/{$opt.template.style}/images/cacheicon/drivein.gif" alt="{t}Drive-In Geocache{/t}" border="0" width="15" height="15" align="left" style="margin-right: 5px; padding-left: 25px;" />
<img src="resource2/{$opt.template.style}/images/cacheicon/drivein.gif" alt="{t}Drive-In Geocache{/t}" border="0" width="15" height="15" align="left" style="margin-right: 5px; padding-left: 25px;" />
{else}
&nbsp;
{/if}

View File

@ -7,25 +7,25 @@
{*cachetype=1 status=1 logtype=0 owner=false small=false*}
{if $cachetype==1}
<img src="{$rootpath}resource2/{$opt.template.style}/images/cacheicon/unknown.gif" alt="{t}Unknown Geocache{/t}" border="0" width="22" height="22" align="left" style="margin-right: 5px;" />
<img src="resource2/{$opt.template.style}/images/cacheicon/unknown.gif" alt="{t}Unknown Geocache{/t}" border="0" width="22" height="22" align="left" style="margin-right: 5px;" />
{elseif $cachetype==2}
<img src="{$rootpath}resource2/{$opt.template.style}/images/cacheicon/traditional.gif" alt="{t}Traditional Geocache{/t}" border="0" width="22" height="22" align="left" style="margin-right: 5px;" />
<img src="resource2/{$opt.template.style}/images/cacheicon/traditional.gif" alt="{t}Traditional Geocache{/t}" border="0" width="22" height="22" align="left" style="margin-right: 5px;" />
{elseif $cachetype==3}
<img src="{$rootpath}resource2/{$opt.template.style}/images/cacheicon/multi.gif" alt="{t}Multicache{/t}" border="0" width="22" height="22" align="left" style="margin-right: 5px;" />
<img src="resource2/{$opt.template.style}/images/cacheicon/multi.gif" alt="{t}Multicache{/t}" border="0" width="22" height="22" align="left" style="margin-right: 5px;" />
{elseif $cachetype==4}
<img src="{$rootpath}resource2/{$opt.template.style}/images/cacheicon/virtual.gif" alt="{t}Virtual Geocache{/t}" border="0" width="22" height="22" align="left" style="margin-right: 5px;" />
<img src="resource2/{$opt.template.style}/images/cacheicon/virtual.gif" alt="{t}Virtual Geocache{/t}" border="0" width="22" height="22" align="left" style="margin-right: 5px;" />
{elseif $cachetype==5}
<img src="{$rootpath}resource2/{$opt.template.style}/images/cacheicon/webcam.gif" alt="{t}Webcam Geocache{/t}" border="0" width="22" height="22" align="left" style="margin-right: 5px;" />
<img src="resource2/{$opt.template.style}/images/cacheicon/webcam.gif" alt="{t}Webcam Geocache{/t}" border="0" width="22" height="22" align="left" style="margin-right: 5px;" />
{elseif $cachetype==6}
<img src="{$rootpath}resource2/{$opt.template.style}/images/cacheicon/event.gif" alt="{t}Event Geocache{/t}" border="0" width="22" height="22" align="left" style="margin-right: 5px;" />
<img src="resource2/{$opt.template.style}/images/cacheicon/event.gif" alt="{t}Event Geocache{/t}" border="0" width="22" height="22" align="left" style="margin-right: 5px;" />
{elseif $cachetype==7}
<img src="{$rootpath}resource2/{$opt.template.style}/images/cacheicon/mystery.gif" alt="{t}Quizcache{/t}" border="0" width="22" height="22" align="left" style="margin-right: 5px;" />
<img src="resource2/{$opt.template.style}/images/cacheicon/mystery.gif" alt="{t}Quizcache{/t}" border="0" width="22" height="22" align="left" style="margin-right: 5px;" />
{elseif $cachetype==8}
<img src="{$rootpath}resource2/{$opt.template.style}/images/cacheicon/mathe.gif" alt="{t}Math/Physics Geocache{/t}" border="0" width="22" height="22" align="left" style="margin-right: 5px;" />
<img src="resource2/{$opt.template.style}/images/cacheicon/mathe.gif" alt="{t}Math/Physics Geocache{/t}" border="0" width="22" height="22" align="left" style="margin-right: 5px;" />
{elseif $cachetype==9}
<img src="{$rootpath}resource2/{$opt.template.style}/images/cacheicon/moving.gif" alt="{t}Moving Geocache{/t}" border="0" width="22" height="22" align="left" style="margin-right: 5px;" />
<img src="resource2/{$opt.template.style}/images/cacheicon/moving.gif" alt="{t}Moving Geocache{/t}" border="0" width="22" height="22" align="left" style="margin-right: 5px;" />
{elseif $cachetype==10}
<img src="{$rootpath}resource2/{$opt.template.style}/images/cacheicon/drivein.gif" alt="{t}Drive-In Geocache{/t}" border="0" width="22" height="22" align="left" style="margin-right: 5px;" />
<img src="resource2/{$opt.template.style}/images/cacheicon/drivein.gif" alt="{t}Drive-In Geocache{/t}" border="0" width="22" height="22" align="left" style="margin-right: 5px;" />
{else}
&nbsp;
{/if}

View File

@ -3,10 +3,10 @@
*
* Unicode Reminder メモ
***************************************************************************}
<ul class="nodot">
<ul class="nodot">
{foreach name=newcaches from=$newcaches item=cacheitem}
<li class="newcache_list_multi" style="margin-bottom: 8px;">
{include file="res_cacheicon_22.tpl" cachetype=$cacheitem.type rootpath=$rootpath}
{include file="res_cacheicon_22.tpl" cachetype=$cacheitem.type}
{$cacheitem.date_created|date_format:$opt.format.date}&nbsp;
<b><a class="links" href="viewcache.php?cacheid={$cacheitem.cache_id}">{$cacheitem.name|escape}</a></b>
{t}by{/t}
@ -19,5 +19,5 @@
</p>
</strong>
</li>
{/foreach}
{/foreach}
</ul>

View File

@ -8,8 +8,8 @@
<li class="newcache_list_multi" style="margin-bottom: 8px;">
<img src="resource2/{$opt.template.style}/images/cacheicon/event-rand{rand min=1 max=4}.gif" alt="{t}Event Geocache{/t}" border="0" width="22" height="22" align="left" style="margin-right: 5px;" />
{$eventitem.date_hidden|date_format:$opt.format.date}&nbsp;
<b><a class="links" href="viewcache.php?cacheid={$eventitem.cache_id}">{$eventitem.name|escape}</a></b>
{t}by{/t}
<b><a class="links" href="viewcache.php?cacheid={$eventitem.cache_id}">{$eventitem.name|escape}</a></b>
{t}by{/t}
<b><a class="links" href="viewprofile.php?userid={$eventitem.user_id}">{$eventitem.username|escape}</a></b><br />
<strong>
<p class="content-title-noshade">
@ -19,5 +19,5 @@
</p>
</strong>
</li>
{/foreach}
{/foreach}
</ul>

View File

@ -3,7 +3,7 @@
*
* Unicode Reminder メモ
***************************************************************************}
<ul class="nodot">
<ul class="nodot">
{foreach name=topratings from=$topratings item=cacheitem}
<li class="newcache_list_multi" style="margin-bottom: 8px;">
{include file="res_cacheicon_22.tpl" cachetype=$cacheitem.type}
@ -23,6 +23,6 @@
</p>
</strong>
</li>
{/foreach}
{/foreach}
</ul>
<p style="line-height: 1.6em;">{t}You can find more recommendations &gt;<a href="tops.php">here</a>&lt;.{/t}</p>

View File

@ -3,11 +3,16 @@
*
* Unicode Reminder メモ
***************************************************************************}
{*
{*
* Template for opencaching.de "page not found" and entry page
* for nonexisting subdomains
* for nonexisting subdomains
*
* This page is currently used only for external sites, e.g. invalid .opencaching.de
* subdomains. If it shall be used for unknown www.opencaching.de/... pages,
* id needs to be adapted for www.opencaching.it, www.opencachingspain.es etc.
* (e.g. output the correct local domains, and omit Germany-specific things).
*}
{* OCSTYLE *}
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
@ -15,7 +20,6 @@
<title>
404 opencaching.de - DNF
</title>
<meta name="KEYWORDS" content="geocaching, opencaching, geocashing, longitude, latitude, utm, coordinates, treasure hunting, treasure, GPS, global positioning system, garmin, magellan, mapping, geo, hiking, outdoors, sport, hunt, stash, cache, geocaching, geocache, cache, treasure, hunting, satellite, navigation, tracking, bugs, travel bugs" />
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<meta http-equiv="Content-Style-Type" content="text/css" />
@ -23,37 +27,37 @@
<meta http-equiv="gallerimg" content="no" />
<meta http-equiv="cache-control" content="no-cache" />
<link rel="SHORTCUT ICON" href="favicon.ico">
<link rel="apple-touch-icon" href="{$rootpath}resource2/{$opt.template.style}/images/oclogo/apple-touch-icon-iphone.png" />
<link rel="apple-touch-icon" sizes="72x72" href="{$rootpath}resource2/{$opt.template.style}/images/oclogo/apple-touch-icon-ipad.png" />
<link rel="apple-touch-icon" sizes="114x114" href="{$rootpath}resource2/{$opt.template.style}/images/oclogo/apple-touch-icon-iphone-retina.png" />
<link rel="apple-touch-icon" sizes="144x144" href="{$rootpath}resource2/{$opt.template.style}/images/oclogo/apple-touch-icon-ipad-retina.png" />
<link rel="stylesheet" type="text/css" href="{$rootpath}resource2/{$opt.template.style}/css/style_screen.css" />
<link rel="stylesheet" type="text/css" href="{$rootpath}resource2/{$opt.template.style}/css/style_oc404.css" />
<link rel="apple-touch-icon" href="resource2/{$opt.template.style}/images/oclogo/apple-touch-icon-iphone.png" />
<link rel="apple-touch-icon" sizes="72x72" href="resource2/{$opt.template.style}/images/oclogo/apple-touch-icon-ipad.png" />
<link rel="apple-touch-icon" sizes="114x114" href="resource2/{$opt.template.style}/images/oclogo/apple-touch-icon-iphone-retina.png" />
<link rel="apple-touch-icon" sizes="144x144" href="resource2/{$opt.template.style}/images/oclogo/apple-touch-icon-ipad-retina.png" />
<link rel="stylesheet" type="text/css" href="resource2/{$opt.template.style}/css/style_screen.css" />
<link rel="stylesheet" type="text/css" href="resource2/{$opt.template.style}/css/style_oc404.css" />
</head>
<body>
<div id="frame">
<div class="header">
<div class="headerimage">
<img src="{$rootpath}resource2/{$opt.template.style}/images/head/rotator.php?path={$opt.page.headimagepath}" class="headerimagecontent" />
<img src="resource2/{$opt.template.style}/images/head/rotator.php?path={$opt.page.headimagepath}" class="headerimagecontent" />
</div>
<div class="headerlogo">
<img src="{$rootpath}resource2/{$opt.template.style}/images/oclogo/oc_head_alpha3.png" class="headerimagecontent" />
<img src="resource2/{$opt.template.style}/images/oclogo/oc_head_alpha3.png" class="headerimagecontent" />
</div>
</div>
<div id="head">
<p>
<img id="oc404" src="{$rootpath}resource2/{$opt.template.style}/images/oc_404.png" title="opencaching.de 404" alt="opencaching.de 404" />
<p>
<img id="oc404" src="resource2/{$opt.template.style}/images/oc_404.png" title="opencaching.de 404" alt="opencaching.de 404" />
<span class="dnf">- {t}Page not found{/t} - DNF</span>
</p>
</p>
</div>
<div id="content">
<p class="text">{t 1=$website|escape}The visited website <b>%1</b> does not exists, we found the following suitable pages:{/t}</p>
<div class="sresult">
<p class="content-title-noshade-size2"><a class="links" href="http://www.opencaching.de" title="{t}Cachedatabase{/t}">www.opencaching.de</a>&nbsp;{t}Here you can find a lot of individual caches.{/t}</p>
<p class="content-title-noshade-size2"><a class="links" href="http://www.opencaching.de" title="{t}Cache database{/t}">www.opencaching.de</a>&nbsp;{t}Here you can find a lot of individual caches.{/t}</p>
<div>
<p>{t}The newest caches:{/t}</p>
{* newest cache template *}
{include file="res_newcaches.tpl" newcaches=$newcaches rootpath=$rootpath}
{include file="res_newcaches.tpl" newcaches=$newcaches}
</div>
</div>
<div class="sresult">
@ -73,19 +77,19 @@
</div>
</div>
<div class="sresult">
<p class="content-title-noshade-size2"><a class="links" href="http://wiki.opencaching.de" title="Opencaching Wiki">wiki.opencaching.de</a>&nbsp;{t}Here you get tutorials, howtos and any information about opencaching.{/t}</p>
<p class="content-title-noshade-size2"><a class="links" href="http://wiki.opencaching.de" title="Opencaching Wiki">wiki.opencaching.de</a>&nbsp;{t}Here you get tutorials, howtos and any information about Geocaching and Opencaching.{/t}</p>
<div>
<p>{t}The newest wikiarticles:{/t}</p>
<p>{t}The newest wiki articles:{/t}</p>
{* newest wiki article template (RSSParser) *}
{include file="res_rssparser.tpl" rss=$wiki}
</div>
</div>
</div>
<div id="foot">
<p class="text">{t}Not found? Contact us using{/t} <a class="links" href="mailto:contact@opencaching.de" title="{t}Contact{/t}">contact@opencaching.de</a>.</p>
<p class="text">{t}Not found? Contact us using{/t} <a class="links" href="mailto:contact@opencaching.de" title="{t}Contact{/t}">{$contact}</a>.</p>
<p>&nbsp;</p>
<p class="center"><a class="links" href="/articles.php?page=impressum" title="{t}Impressum{/t}">{t}Imprint{/t}</a> - <a class="links" href="/articles.php?page=verein" title="{t}Nonprofit organization{/t}">Opencaching Deutschland e.V.</a> - <a class="links" href="/articles.php?page=contact" title="{t}Contact{/t}">{t}Contact{/t}</a></p>
<p class="center"><a class="links" href="/fb" title="{t}Opencaching on Facebook{/t}">Facebook</a> - <a class="links" href="/+" title="{t}Opencaching on Google+{/t}">Google+</a> - <a class="links" href="/t" title="{t}Opencaching on Twitter{/t}">Twitter</a></p>
<p class="center"><a class="links" href="/articles.php?page=impressum" title="{t}Imprint{/t}">{t}Imprint{/t}</a> - <a class="links" href="/articles.php?page=verein" title="{t}Operator Association{/t}">Opencaching Deutschland e.V.</a> - <a class="links" href="/articles.php?page=contact" title="{t}Contact{/t}">{t}Contact{/t}</a></p>
<p class="center"><a class="links" href="/fb" title="{t}Opencaching at Facebook{/t}">Facebook</a> - <a class="links" href="/+" title="{t}Opencaching at Google+{/t}">Google+</a> - <a class="links" href="/t" title="{t}Opencaching at Twitter{/t}">Twitter</a></p>
</div>
</div>
</body>