added 404-errorpage including template and image, changed some variables

in templates and pulled parts out in new templates, fixed some bugs and
typos from previous commits

moved new events, ratings and caches HTML code generation into separate
templates and changed templates accordingly to avoid redundant code

moved generation of HTML code for RSSParser into separate smarty
template and changed involved files accordingly

moved code that generates the "new" (cache, event, rating, forum, blog,
etc.) sections into separate class to avoid redundant code
This commit is contained in:
Nils Bohrs
2013-04-22 16:20:38 +02:00
committed by following
parent 7d190bdebb
commit ed1a383ee6
15 changed files with 711 additions and 204 deletions

49
htdocs/404/index.php Executable file
View File

@ -0,0 +1,49 @@
<?php
/***************************************************************************
* For license information see doc/license.txt
*
* 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;
$uri = 'http://'.strtolower($_SERVER['SERVER_NAME']).$_SERVER['REQUEST_URI'];
// limit to $uril
if(strlen($uri) > $uril) {
$uri = substr($uri,0,$uril-3).'...';
}
$tpl->assign('website',$uri);
// get newest blog entries
$tpl->assign('blog', $getNew->feedForSmarty('blog',3));
// get newest forum posts
$tpl->assign('forum',$getNew->feedForSmarty('forum',3));
// get newest wiki
$tpl->assign('wiki', $getNew->feedForSmarty('wiki',3));
// get newest caches
$tpl->assign_rs('newcaches', $getNew->rsForSmarty('cache',array($sUserCountry, $opt['template']['locale'],3)));
$tpl->display();
?>

View File

@ -11,6 +11,9 @@
require('./lib2/logic/logpics.inc.php');
$sUserCountry = $login->getUserCountry();
// create object for "newest" information
$getNew = new getNew($sUserCountry);
$tpl->name = 'start';
$tpl->menuitem = MNU_START;
@ -52,9 +55,8 @@
$url = str_replace('{style}', $opt['template']['style'], $url);
$newscontent = read_file($url, $opt['news']['maxsize']);
*/
$newscontent = RSSParser::parse($opt['news']['count'],$opt['news']['include'], false);
$tpl->assign('news', $newscontent);
// get newest blog entries
$tpl->assign('news', $getNew->feedForSmarty('blog'));
$tpl->assign('newsfeed', $opt['news']['include']);
$tpl->assign('extern_news', true);
}
@ -72,9 +74,9 @@
* requires $opt['forum']['count'] in settings for number of lastest forum-posts
* requires $opt['forum']['url'] in settings: RSS-feed-URL of the forum
*/
$tpl->assign('phpbb_enabled', true);
$forumcontent = RSSParser::parse($opt['forum']['count'], $opt['forum']['url'], false);
$tpl->assign('forum',$forumcontent);
// get newest forum posts
$tpl->assign('phpbb_enabled', true);
$tpl->assign('forum',$getNew->feedForSmarty('forum'));
}
else
{
@ -93,89 +95,14 @@
$tpl->assign('count_founds', sql_value_slave('SELECT COUNT(*) AS `founds` FROM `cache_logs` WHERE `type`=1', 0));
$tpl->assign('count_users', sql_value_slave('SELECT COUNT(*) AS `users` FROM (SELECT DISTINCT `user_id` FROM `cache_logs` UNION DISTINCT SELECT DISTINCT `user_id` FROM `caches`) AS `t`', 0));
// new events
$events = array();
$rs = 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, 10",
$sUserCountry, $opt['template']['locale']);
$tpl->assign_rs('events', $rs);
sql_free_result($rs);
// get newest events
$tpl->assign_rs('events', $getNew->rsForSmarty('event'));
// new caches
$rs = 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, 10",
$sUserCountry, $opt['template']['locale']);
$tpl->assign_rs('newcaches', $rs);
sql_free_result($rs);
// get newest caches
$tpl->assign_rs('newcaches', $getNew->rsForSmarty('cache'));
// last 30 days' top ratings
//
// 2012-08-24 following
// optimized by adding rating_date field to cache_rating, so we don't need the log table.
$rs = 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, 10",
$sUserCountry, $opt['template']['locale']);
$tpl->assign_rs('topratings', $rs);
sql_free_result($rs);
$tpl->assign_rs('topratings', $getNew->rsForSmarty('rating'));
$sUserCountryName = sql_value("SELECT IFNULL(`sys_trans_text`.`text`, `countries`.`name`)
FROM `countries`

View File

@ -11,24 +11,22 @@ class RSSParser {
* @return string $item feeditems as HTML-string
*/
public static function parse($items,$url,$includetext) {
global $translate;
global $tpl;
if ($items <= 0)
return '';
// error
$error = false;
$rss = array();
// check $url
if(!preg_match('!^(http|https|ftp)\://([a-zA-Z0-9\.\-]+(\:[a-zA-Z0-9\.&amp;%\$\-]+)*@)*((25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9])\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9])|localhost|([a-zA-Z0-9\-]+\.)*[a-zA-Z0-9\-]+\.(com|edu|gov|int|mil|net|org|biz|arpa|info|name|pro|aero|coop|museum|[a-zA-Z]{2}))(\:[0-9]+)*(/($|[a-zA-Z0-9\.\,\?\'\\\+&amp;%\$#\=~_\-]+))*$!',$url)) {
if(!preg_match('!^(http|https|ftp)\://([a-zA-Z0-9\.\-]+(\:[a-zA-Z0-9\.&amp;%\$\-]+)*@)*((25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9])\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9])|localhost|([a-zA-Z0-9\-]+\.)*[a-zA-Z0-9\-]+\.(com|edu|gov|int|mil|net|org|biz|arpa|info|name|pro|aero|coop|museum|[a-zA-Z]{2}))(\:[0-9]+)*(/($|[a-zA-Z0-9\.\:\,\?\'\\\+&amp;%\$#\=~_\-]+))*$!',$url)) {
$error = true;
} else {
// output
$html = '<div class="buffer" style="width: 500px;height: 2px;">&nbsp;</div>'."\n";
$html .= '<div class="newsblock">';
if (!$includetext)
$html .= "<table class='narrowtable' style='margin-top:0'>\n";
$tpl->assign('includetext',$includetext);
// get xml-data
$data = @file_get_contents($url);
@ -44,9 +42,9 @@ class RSSParser {
// get SimpleXML-object
$xml = new SimpleXMLElement($data);
// walk through items
$i=0;
$headlines = array();
// walk through items
foreach($xml->channel->item as $item) {
// check length
@ -57,32 +55,31 @@ class RSSParser {
// add html
if ($includetext)
{
$html .= '<p class="content-title-noshade-size15" style="display: inline;">'."\n";
$html .= strftime('%e. %B %Y',strtotime($item->pubDate)).' - '. $item->title;
$html .= '</p> <p style="line-height: 1.6em;display: inline;">&emsp;[<b><a class="link" href="'.$item->link.'">mehr...</a></b>]</p>'."\n";
$html .= '<div class="rsstext">'.$item->description.'</div>'."\n";
// fill array
$rss[] = array(
'pubDate' => strftime('%e. %B %Y',strtotime($item->pubDate)),
'title' => $item->title,
'link' => $item->link,
'description' => $item->description
);
// increment counter
$i++;
}
else if (!in_array($item->title,$headlines) &&
strpos($item->title,'VERSCHOBEN') === FALSE) // hack to exclude forum thread-move messages
{
$html .= '<tr><td style="text-align:right">' . strftime('%e. %B %Y',strtotime($item->pubDate)).'</td>';
$html .= '<td><a class="links" href="'.$item->link.'">';
$html .= $item->title;
$html .= '</td></tr>';
// fill array
$rss[] = array(
'pubDate' => strftime('%e. %B %Y',strtotime($item->pubDate)),
'title' => $item->title,
'link' => $item->link
);
$headlines[] = "" . $item->title;
// increment counter
$i++;
}
}
}
// finish html
if (!$includetext)
$html .= "</table>";
$html .= "</div>";
$html .= '<div class="buffer" style="width: 500px;">&nbsp;</div>'."\n";
}
catch(Exception $e) {
$error = true;
@ -90,12 +87,11 @@ class RSSParser {
}
}
// assign to template
$tpl->assign('rsserror',$error);
// return
if(!$error) {
return $html;
} else {
return '<p><em>' . $translate->t('currently not available','','',0) . '</em></p>';
}
return $rss;
}
}

328
htdocs/lib2/getNew.class.php Executable file
View File

@ -0,0 +1,328 @@
<?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,62 @@
/***************************************************************************
* You can find the license in the docs directory
*
* Unicode Reminder メモ
***************************************************************************/
/*
* opencaching.de - landingpage styles
*/
div#frame {
width: 970px;
margin: 0 auto 5px auto;
background-color: white;
}
a.links:visited {
color: black;
}
div#head {
margin-left: 10px;
text-align: center;
}
div#content {
margin-left: 10px;
}
div#foot {
margin-top: 20px;
margin-left: 10px;
}
div#head img#oc404 {
margin-right: 10px;
}
p.text {
font-size: 165%;
}
table.narrowtable {
margin-left: 30px;
}
div.sresult {
margin: 20px 0 0 50px;
}
span.dnf {
font-size: 300%;
font-weight: bold;
vertical-align: middle;
}
.center {
text-align: center;
}
ul.nodot li {
font-size: 110%;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

View File

@ -7,25 +7,25 @@
{*cachetype=1 status=1 logtype=0 owner=false small=false*}
{if $cachetype==1}
<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" />
<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" />
{elseif $cachetype==2}
<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" />
<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" />
{elseif $cachetype==3} {* Ocprop: \/cacheicon\/multi\.gif"\s+alt="Multicache" *}
<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" />
<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" />
{elseif $cachetype==4}
<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" />
<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" />
{elseif $cachetype==5}
<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" />
<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" />
{elseif $cachetype==6}
<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" />
<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" />
{elseif $cachetype==7}
<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" />
<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" />
{elseif $cachetype==8}
<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" />
<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" />
{elseif $cachetype==9}
<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" />
<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" />
{elseif $cachetype==10}
<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" />
<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" />
{else}
&nbsp;
{/if}

View File

@ -7,25 +7,25 @@
{*cachetype=1 status=1 logtype=0 owner=false small=false*}
{if $cachetype==1}
<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;" />
<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;" />
{elseif $cachetype==2}
<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;" />
<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;" />
{elseif $cachetype==3}
<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;" />
<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;" />
{elseif $cachetype==4}
<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;" />
<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;" />
{elseif $cachetype==5}
<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;" />
<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;" />
{elseif $cachetype==6}
<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;" />
<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;" />
{elseif $cachetype==7}
<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;" />
<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;" />
{elseif $cachetype==8}
<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;" />
<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;" />
{elseif $cachetype==9}
<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;" />
<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;" />
{elseif $cachetype==10}
<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;" />
<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;" />
{else}
&nbsp;
{/if}

View File

@ -7,25 +7,25 @@
{*cachetype=1 status=1 logtype=0 owner=false small=false*}
{if $cachetype==1}
<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;" />
<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;" />
{elseif $cachetype==2}
<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;" />
<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;" />
{elseif $cachetype==3}
<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;" />
<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;" />
{elseif $cachetype==4}
<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;" />
<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;" />
{elseif $cachetype==5}
<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;" />
<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;" />
{elseif $cachetype==6}
<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;" />
<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;" />
{elseif $cachetype==7}
<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;" />
<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;" />
{elseif $cachetype==8}
<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;" />
<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;" />
{elseif $cachetype==9}
<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;" />
<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;" />
{elseif $cachetype==10}
<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;" />
<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;" />
{else}
&nbsp;
{/if}

View File

@ -0,0 +1,23 @@
{***************************************************************************
* You can find the license in the docs directory
*
* Unicode Reminder メモ
***************************************************************************}
<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}
{$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}
<b><a class="links" href="viewprofile.php?userid={$cacheitem.user_id}">{$cacheitem.username|escape}</a></b><br />
<strong>
<p class="content-title-noshade">
{$cacheitem.adm1|escape} {if $cacheitem.adm1!=null & $cacheitem.adm2!=null} &gt; {/if}
{$cacheitem.adm2|escape} {if ($cacheitem.adm2!=null & $cacheitem.adm4!=null) | ($cacheitem.adm1!=null & $cacheitem.adm4!=null)} &gt; {/if}
{$cacheitem.adm4|escape}
</p>
</strong>
</li>
{/foreach}
</ul>

View File

@ -0,0 +1,23 @@
{***************************************************************************
* You can find the license in the docs directory
*
* Unicode Reminder メモ
***************************************************************************}
<ul class="nodot">
{foreach name=events from=$events item=eventitem}
<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="viewprofile.php?userid={$eventitem.user_id}">{$eventitem.username|escape}</a></b><br />
<strong>
<p class="content-title-noshade">
{$eventitem.adm1|escape} {if $eventitem.adm1!=null & $eventitem.adm2!=null} &gt; {/if}
{$eventitem.adm2|escape} {if ($eventitem.adm2!=null & $eventitem.adm4!=null) | ($eventitem.adm1!=null & $eventitem.adm4!=null)} &gt; {/if}
{$eventitem.adm4|escape}
</p>
</strong>
</li>
{/foreach}
</ul>

View File

@ -0,0 +1,28 @@
{***************************************************************************
* You can find the license in the docs directory
*
* Unicode Reminder メモ
***************************************************************************}
<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}
{if $cacheitem.cRatings>=1}<img src="images/rating-star.gif" border="0" alt="{t 1=$cacheitem.cRatings}%1 Recommendations in the last 30 days{/t}">{/if}
{if $cacheitem.cRatings>=2}<img src="images/rating-star.gif" border="0" alt="{t 1=$cacheitem.cRatings}%1 Recommendations in the last 30 days{/t}">{/if}
{if $cacheitem.cRatings==3}<img src="images/rating-star.gif" border="0" alt="{t 1=$cacheitem.cRatings}%1 Recommendations in the last 30 days{/t}">{/if}
{if $cacheitem.cRatings>3}<img src="images/rating-plus.gif" border="0" alt="{t 1=$cacheitem.cRatings}%1 Recommendations in the last 30 days{/t}">{/if}
&nbsp;
<b><a class="links" href="viewcache.php?cacheid={$cacheitem.cache_id}">{$cacheitem.name|escape}</a></b>
{t}by{/t}
<b><a class="links" href="viewprofile.php?userid={$cacheitem.user_id}">{$cacheitem.username|escape}</a></b><br />
<strong>
<p class="content-title-noshade">
{$cacheitem.adm1|escape} {if $cacheitem.adm1!=null & $cacheitem.adm2!=null} &gt; {/if}
{$cacheitem.adm2|escape} {if ($cacheitem.adm2!=null & $cacheitem.adm4!=null) | ($cacheitem.adm1!=null & $cacheitem.adm4!=null)} &gt; {/if}
{$cacheitem.adm4|escape}
</p>
</strong>
</li>
{/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

@ -0,0 +1,24 @@
<div class="buffer" style="width: 500px;height: 2px;">&nbsp;</div>
<div class="newsblock">
{if !$includetext}
<table class='narrowtable' style='margin-top:0'>
{/if}
{foreach name=rss from=$rss item=rss}
{if $includetext}
<p class="content-title-noshade-size15" style="display: inline;">{$rss.pubDate} - {$rss.title}</p>
<p style="line-height: 1.6em;display: inline;">&emsp;[<b><a class="link" href="{$rss.link}">mehr...</a></b>]</p>
<div class="rsstext">{$rss.description}</div>
{else}
<tr>
<td style="text-align:right">{$rss.pubDate}</td>
<td><a class="links" href="{$rss.link}">{$rss.title}</a></td>
</tr>
{/if}
{/foreach}
{if !$includetext}
</table>
{/if}
</div>

View File

@ -50,8 +50,13 @@
</table>
{else}
<div id="blog">
{$news}
{if !$rsserror}
{include file="res_rssparser.tpl" rss=$news}
{else}
<p><em>{t}currently not available{/t}</em></p>
{/if}
</div>
<div class="buffer" style="width: 500px;">&nbsp;</div>
{/if}
{* next events *}
@ -61,24 +66,7 @@
{t 1=$usercountry|escape}The next events in %1{/t}
</p>
</div>
<ul class="nodot">
{foreach name=events from=$events item=eventitem}
<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="viewprofile.php?userid={$eventitem.user_id}">{$eventitem.username|escape}</a></b><br />
<strong>
<p class="content-title-noshade">
{$eventitem.adm1|escape} {if $eventitem.adm1!=null & $eventitem.adm2!=null} &gt; {/if}
{$eventitem.adm2|escape} {if ($eventitem.adm2!=null & $eventitem.adm4!=null) | ($eventitem.adm1!=null & $eventitem.adm4!=null)} &gt; {/if}
{$eventitem.adm4|escape}
</p>
</strong>
</li>
{/foreach}
</ul>
{include file="res_newevents.tpl" events=$events}
{* new logpix *}
<div class="content2-container bg-blue02" style="margin-bottom:6px">
@ -98,29 +86,7 @@
</p>
</div>
<p style="line-height: 1.6em;">{t 1=$usercountry|escape}Geocaches with most ratings in the last 30 days in %1.{/t}</p>
<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}
{if $cacheitem.cRatings>=1}<img src="images/rating-star.gif" border="0" alt="{t 1=$cacheitem.cRatings}%1 Recommendations in the last 30 days{/t}">{/if}
{if $cacheitem.cRatings>=2}<img src="images/rating-star.gif" border="0" alt="{t 1=$cacheitem.cRatings}%1 Recommendations in the last 30 days{/t}">{/if}
{if $cacheitem.cRatings==3}<img src="images/rating-star.gif" border="0" alt="{t 1=$cacheitem.cRatings}%1 Recommendations in the last 30 days{/t}">{/if}
{if $cacheitem.cRatings>3}<img src="images/rating-plus.gif" border="0" alt="{t 1=$cacheitem.cRatings}%1 Recommendations in the last 30 days{/t}">{/if}
&nbsp;
<b><a class="links" href="viewcache.php?cacheid={$cacheitem.cache_id}">{$cacheitem.name|escape}</a></b>
{t}by{/t}
<b><a class="links" href="viewprofile.php?userid={$cacheitem.user_id}">{$cacheitem.username|escape}</a></b><br />
<strong>
<p class="content-title-noshade">
{$cacheitem.adm1|escape} {if $cacheitem.adm1!=null & $cacheitem.adm2!=null} &gt; {/if}
{$cacheitem.adm2|escape} {if ($cacheitem.adm2!=null & $cacheitem.adm4!=null) | ($cacheitem.adm1!=null & $cacheitem.adm4!=null)} &gt; {/if}
{$cacheitem.adm4|escape}
</p>
</strong>
</li>
{/foreach}
</ul>
<p style="line-height: 1.6em;">{t}You can find more recommendations &gt;<a href="tops.php">here</a>&lt;.{/t}</p>
{include file="res_newratings.tpl" topratings=$topratings}
{* forum news *}
{if $phpbb_enabled==true}
@ -138,8 +104,13 @@
</div>
*}
<div id="forum">
{$forum}
{if !$rsserror}
{include file="res_rssparser.tpl" rss=$forum}
{else}
<p><em>{t}currently not available{/t}</em></p>
{/if}
</div>
<div class="buffer" style="width: 500px;">&nbsp;</div>
{*
<ul class="nodot">
{foreach from=$phpbb_topics item=phpbbItem}
@ -163,22 +134,6 @@
</p>
</div>
<p style="line-height: 1.6em;">({t 1=$count_hiddens 2=$count_founds 3=$count_users}Total of %1 active Caches and %2 founds by %3 users{/t})</p>
<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}
{$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}
<b><a class="links" href="viewprofile.php?userid={$cacheitem.user_id}">{$cacheitem.username|escape}</a></b><br />
<strong>
<p class="content-title-noshade">
{$cacheitem.adm1|escape} {if $cacheitem.adm1!=null & $cacheitem.adm2!=null} &gt; {/if}
{$cacheitem.adm2|escape} {if ($cacheitem.adm2!=null & $cacheitem.adm4!=null) | ($cacheitem.adm1!=null & $cacheitem.adm4!=null)} &gt; {/if}
{$cacheitem.adm4|escape}
</p>
</strong>
</li>
{/foreach}
</ul>
{include file="res_newcaches.tpl" newcaches=$newcaches}

View File

@ -0,0 +1,92 @@
{***************************************************************************
* You can find the license in the docs directory
*
* Unicode Reminder メモ
***************************************************************************}
{*
* Template for opencaching.de "page not found" and entry page
* for nonexisting subdomains
*}
{* 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">
<head>
<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" />
<meta http-equiv="Content-Language" content="{$opt.template.locale}" />
<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" />
</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" />
</div>
<div class="headerlogo">
<img src="{$rootpath}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" />
<span class="dnf">- {t}Page not found{/t} - DNF</span>
</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>
<div>
<p>{t}The newest caches:{/t}</p>
{* newest cache template *}
{include file="res_newcaches.tpl" newcaches=$newcaches rootpath=$rootpath}
</div>
</div>
<div class="sresult">
<p class="content-title-noshade-size2"><a class="links" href="http://forum.opencaching-network.org" title="Opencaching Forum">forum.opencaching-network.org</a>&nbsp;{t}Here you can discuss, improve or ask questions.{/t}</p>
<div>
<p>{t}The newest forumposts:{/t}</p>
{* newest forum-entries template (RSSParser) *}
{include file="res_rssparser.tpl" rss=$forum}
</div>
</div>
<div class="sresult">
<p class="content-title-noshade-size2"><a class="links" href="http://blog.opencaching.de" title="Opencaching Blog">blog.opencaching.de</a>&nbsp;{t}Any time there are news to post, you'll find them here.{/t}</p>
<div>
<p>{t}The newest blogposts:{/t}</p>
{* newest blogpost template (RSSParser) *}
{include file="res_rssparser.tpl" rss=$blog}
</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>
<div>
<p>{t}The newest wikiarticles:{/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>&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>
</div>
</div>
</body>
</html>