clear:left;
diff --git a/character-feed-atom.php b/character-feed-atom.php
new file mode 100644
index 000000000..cfef33e0c
--- /dev/null
+++ b/character-feed-atom.php
@@ -0,0 +1,136 @@
+Fatal error: unable to load system files.');
+}
+if(isset($_GET['n'])) {
+ $name = $_GET['n'];
+}
+elseif(isset($_GET['cn'])) {
+ $name = $_GET['cn'];
+}
+else {
+ $name = false;
+}
+if(!isset($_GET['r'])) {
+ $_GET['r'] = false;
+}
+$realmId = $utils->GetRealmIdByName($_GET['r']);
+$characters->BuildCharacter($name, $realmId, true, true);
+$isCharacter = $characters->CheckPlayer();
+if($_GET['r'] === false || !Armory::$currentRealmInfo) {
+ $isCharacter = false;
+}
+header('Content-type: text/xml');
+$character_feed = $characters->GetCharacterFeed(true);
+if(!$character_feed) {
+ $xml->StartXML();
+ $xml->LoadXSLT('error/error.xsl');
+ $xml->XMLWriter()->startElement('page');
+ $xml->XMLWriter()->writeAttribute('globalSearch', 1);
+ $xml->XMLWriter()->writeAttribute('lang', Armory::GetLocale());
+ $xml->XMLWriter()->startElement('errorhtml');
+ $xml->XMLWriter()->endElement(); //errorhtml
+ $xml->XMLWriter()->endElement(); //page
+ echo $xml->StopXML();
+ exit;
+}
+$cache_name = 'character-feed-atom';
+// Get page cache
+if($isCharacter && Armory::$armoryconfig['useCache'] == true && !isset($_GET['skipCache'])) {
+ $cache_id = $utils->GenerateCacheId($cache_name, $characters->GetName(), $characters->GetRealmName());
+ if($cache_data = $utils->GetCache($cache_id)) {
+ echo $cache_data;
+ echo sprintf('', $cache_id);
+ exit;
+ }
+}
+$xml->XMLWriter()->startElement('feed');
+$xml->XMLWriter()->writeAttribute('xmlns', 'http://www.w3.org/2005/Atom');
+$xml->XMLWriter()->writeAttribute('xml:lang', Armory::GetLocale());
+$xml->XMLWriter()->startElement('author');
+$xml->XMLWriter()->startElement('name');
+$xml->XMLWriter()->text('Blizzard Entertainment');
+$xml->XMLWriter()->endElement(); //name
+$xml->XMLWriter()->endElement(); //author
+$xml->XMLWriter()->startElement('link');
+$xml->XMLWriter()->writeAttribute('href', sprintf('character-feed.atom?r=%s&cn=%s&locale=%s', urldecode($characters->GetRealmName()), urldecode($characters->GetName()), Armory::GetLocale()));
+$xml->XMLWriter()->endElement(); //link
+$xml->XMLWriter()->startElement('updated');
+$xml->XMLWriter()->text(date('Y-M-d\TH:i:s\+00:00'));
+$xml->XMLWriter()->endElement(); //updated
+$xml->XMLWriter()->startElement('title');
+$xml->XMLWriter()->writeAttribute('type', 'text');
+$xml->XMLWriter()->text(sprintf('WoW News for %s@%s', $characters->GetName(), $characters->GetRealmName()));
+$xml->XMLWriter()->endElement(); //title
+$xml->XMLWriter()->startElement('id');
+$xml->XMLWriter()->text('http://eu.wowarmory.com/');
+$xml->XMLWriter()->endElement(); //id
+foreach($character_feed as $feed) {
+ $fdate = date('Y-m-d\TH:i:s\+00:00', $feed['hard_date']);
+ $xml->XMLWriter()->startElement('entry');
+ $xml->XMLWriter()->startElement('title');
+ $xml->XMLWriter()->writeAttribute('type', 'text');
+ $xml->XMLWriter()->text($feed['title']);
+ $xml->XMLWriter()->endElement(); //title
+ $xml->XMLWriter()->startElement('updated');
+ $xml->XMLWriter()->text($fdate);
+ $xml->XMLWriter()->endElement(); //updated
+ $xml->XMLWriter()->startElement('published');
+ $xml->XMLWriter()->text($fdate);
+ $xml->XMLWriter()->endElement(); //published
+ $xml->XMLWriter()->startElement('id');
+ $xml->XMLWriter()->text(sprintf('%s@%s_%s_%s', strtolower(urlencode($characters->GetName())), strtolower(urlencode($characters->GetRealmName())), $feed['hard_data'], date('dmYHis', $feed['hard_date'])));
+ $xml->XMLWriter()->endElement(); //id
+ $xml->XMLWriter()->startElement('link');
+ $xml->XMLWriter()->writeAttribute('href', sprintf('character-feed.xml?r=%s&cn=%s&locale=%s', urldecode($characters->GetRealmName()), urldecode($characters->GetName()), Armory::GetLocale()));
+ $xml->XMLWriter()->endElement(); //link
+ $xml->XMLWriter()->startElement('content');
+ $xml->XMLWriter()->writeAttribute('type', 'html');
+ $xml->XMLWriter()->writeCData($feed['desc']);
+ $xml->XMLWriter()->endElement(); //content
+ $xml->XMLWriter()->endElement(); //entry
+}
+
+$xml->XMLWriter()->endElement(); //feed
+$xml_cache_data = $xml->StopXML();
+echo $xml_cache_data;
+if(Armory::$armoryconfig['useCache'] == true && !isset($_GET['skipCache'])) {
+ // Write cache to file
+ $cache_data = $utils->GenerateCacheData($characters->GetName(), $characters->GetGUID(), $cache_name);
+ $cache_handler = $utils->WriteCache($cache_id, $cache_data, $xml_cache_data);
+}
+exit;
+?>
\ No newline at end of file
diff --git a/custom-rss.php b/custom-rss.php
new file mode 100644
index 000000000..95044a95c
--- /dev/null
+++ b/custom-rss.php
@@ -0,0 +1,41 @@
+Fatal error: unable to load system files.');
+}
+header('Content-type: text/xml');
+// Load XSLT template
+$xml->LoadXSLT('character/feed.xsl');
+$xml->XMLWriter()->startElement('page');
+$xml->XMLWriter()->writeAttribute('globalSearch', 1);
+$xml->XMLWriter()->writeAttribute('lang', Armory::GetLocale());
+$xml->XMLWriter()->writeAttribute('title', 'customrss');
+$xml->XMLWriter()->startElement('customrss');
+$xml->XMLWriter()->endElement(); //customrss
+$xml->XMLWriter()->endElement(); //page
+echo $xml->StopXML();
+exit;
+?>
\ No newline at end of file
diff --git a/htaccess.zip b/htaccess.zip
index fda4203e3..3cd280e2e 100644
Binary files a/htaccess.zip and b/htaccess.zip differ
diff --git a/includes/armory_loader.php b/includes/armory_loader.php
index bcb58e281..c0103b202 100644
--- a/includes/armory_loader.php
+++ b/includes/armory_loader.php
@@ -3,7 +3,7 @@
/**
* @package World of Warcraft Armory
* @version Release Candidate 1
- * @revision 440
+ * @revision 445
* @copyright (c) 2009-2011 Shadez
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
*
@@ -260,7 +260,9 @@
die('
Error: unable to load XML handler class!');
}
$xml = new XMLHandler(Armory::GetLocale());
-$xml->StartXML();
+if(!defined('RSS_FEED')) {
+ $xml->StartXML();
+}
// Do not remove this
if(isset($_GET['_DISPLAYVERSION_'])) {
$xml->XMLWriter()->startElement('ARMORY_REVISION');
diff --git a/includes/classes/class.characters.php b/includes/classes/class.characters.php
index d15be0cf3..1ef1958f6 100644
--- a/includes/classes/class.characters.php
+++ b/includes/classes/class.characters.php
@@ -3,7 +3,7 @@
/**
* @package World of Warcraft Armory
* @version Release Candidate 1
- * @revision 443
+ * @revision 445
* @copyright (c) 2009-2011 Shadez
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
*
@@ -2552,6 +2552,8 @@ public function GetCharacterFeed($full = false) {
$event_type = $event['type'];
$event_data = $event['data'];
$date_string = date('d.m.Y', $event_date);
+ $feed_data[$i]['hard_date'] = $event_date;
+ $feed_data[$i]['hard_data'] = $event_data;
if(date('d.m.Y') == $date_string) {
$sort = 'today';
$diff = time() - $event_date;
@@ -2634,13 +2636,14 @@ public function GetCharacterFeed($full = false) {
'icon' => $item_icon,
'id' => $event_data,
'slot' => $item_slot,
- 'sort' => $sort
+ 'sort' => $sort,
);
if(Armory::GetLocale() != 'en_gb' && Armory::GetLocale() != 'en_us') {
$item['name'] = Items::GetItemName($event_data);
}
$feed_data[$i]['title'] = sprintf('%s [%s].', $_strings[15], $item['name']);
$feed_data[$i]['desc'] = sprintf('%s
[%s].', $_strings[15], $event_data, $event_data, $item['Quality'], $item['name']);
+ $feed_data[$i]['tooltip'] = $feed_data[$i]['desc'];
break;
case TYPE_BOSS_FEED:
// Get criterias
@@ -2675,6 +2678,7 @@ public function GetCharacterFeed($full = false) {
);
$feed_data[$i]['title'] = sprintf('%s [%s] %d %s', $_strings[16], $achievement['name'], $event['counter'], $_strings[17]);
$feed_data[$i]['desc'] = sprintf('%d %s.', $event['counter'], $achievement['name']);
+ $feed_data[$i]['tooltip'] = $feed_data[$i]['desc'];
break;
default:
continue;
diff --git a/includes/revision_nr.php b/includes/revision_nr.php
index 7cbf7072b..706d4d15d 100644
--- a/includes/revision_nr.php
+++ b/includes/revision_nr.php
@@ -1,5 +1,5 @@
\ No newline at end of file