mirror of
https://github.com/Sarjuuk/aowow.git
synced 2025-12-01 21:15:20 +08:00
Markdown
* added [money ..] and [currency=] to tag parser * added missing styles to properly display [quote ..] and diffs * added missing js to display [n5 ..] and progress bars
This commit is contained in:
@@ -21,14 +21,37 @@ class Markup
|
|||||||
|
|
||||||
public function parseGlobalsFromText(&$jsg = [])
|
public function parseGlobalsFromText(&$jsg = [])
|
||||||
{
|
{
|
||||||
if (preg_match_all('/(?<!\\\\)\[(npc|object|item|itemset|quest|spell|zone|faction|pet|achievement|statistic|title|event|class|race|skill|currency)=(-?\d+)[^\]]*\]/i', $this->text, $matches, PREG_SET_ORDER))
|
if (preg_match_all('/(?<!\\\\)\[(npc|object|item|itemset|quest|spell|zone|faction|pet|achievement|statistic|title|event|class|race|skill|currency|emote|enchantment|money)=(-?\d+)[^\]]*\]/i', $this->text, $matches, PREG_SET_ORDER))
|
||||||
{
|
{
|
||||||
foreach ($matches as $match)
|
foreach ($matches as $match)
|
||||||
{
|
{
|
||||||
if ($match[1] == 'statistic')
|
if ($match[1] == 'statistic')
|
||||||
$match[1] = 'achievement';
|
$match[1] = 'achievement';
|
||||||
|
|
||||||
if ($type = array_search($match[1], Util::$typeStrings))
|
if ($match[1] == 'money')
|
||||||
|
{
|
||||||
|
if (stripos($match[0], 'items'))
|
||||||
|
{
|
||||||
|
if (preg_match('/items=([0-9,]+)/', $match[0], $submatch))
|
||||||
|
{
|
||||||
|
$sm = explode(',', $submatch[1]);
|
||||||
|
for ($i = 0; $i < count($sm); $i+=2)
|
||||||
|
$this->jsGlobals[TYPE_ITEM][$sm[$i]] = $sm[$i];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (stripos($match[0], 'currency'))
|
||||||
|
{
|
||||||
|
if (preg_match('/currency=([0-9,]+)/', $match[0], $submatch))
|
||||||
|
{
|
||||||
|
$sm = explode(',', $submatch[1]);
|
||||||
|
for ($i = 0; $i < count($sm); $i+=2)
|
||||||
|
$this->jsGlobals[TYPE_CURRENCY][$sm[$i]] = $sm[$i];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
else if ($type = array_search($match[1], Util::$typeStrings))
|
||||||
$this->jsGlobals[$type][$match[2]] = $match[2];
|
$this->jsGlobals[$type][$match[2]] = $match[2];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -87,8 +87,9 @@ class EventPage extends GenericPage
|
|||||||
/* Main Content */
|
/* Main Content */
|
||||||
/****************/
|
/****************/
|
||||||
|
|
||||||
if ($this->hId)
|
// no entry in ?_articles? use default HolidayDescription
|
||||||
$this->extraText = Util::jsEscape($this->subject->getField('description', true));
|
if ($this->hId && empty($this->article))
|
||||||
|
$this->article = ['text' => Util::jsEscape($this->subject->getField('description', true)), 'params' => []];
|
||||||
|
|
||||||
$this->headIcons = [$this->subject->getField('iconString')];
|
$this->headIcons = [$this->subject->getField('iconString')];
|
||||||
$this->redButtons = array(
|
$this->redButtons = array(
|
||||||
|
|||||||
@@ -150,6 +150,267 @@ h5 a.icontiny span { text-decoration:none !important; }
|
|||||||
overflow:auto;
|
overflow:auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.quote-blizz,.quote-wh
|
||||||
|
{
|
||||||
|
clear:both;
|
||||||
|
}
|
||||||
|
|
||||||
|
.quote-blizz h1,.quote-wh h1,.quote-blizz h2,.quote-wh h2,.quote-blizz h3,.quote-wh h3,.quote-blizz h4,.quote-wh h4
|
||||||
|
{
|
||||||
|
border:none;
|
||||||
|
line-height:1.2;
|
||||||
|
padding:0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.quote-blizz h1,.quote-wh h1
|
||||||
|
{
|
||||||
|
margin:25px 0 15px 0;
|
||||||
|
line-height:1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.quote-blizz h2,.quote-wh h2
|
||||||
|
{
|
||||||
|
margin:15px 0 10px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.quote-blizz h3,.quote-wh h3
|
||||||
|
{
|
||||||
|
margin:10px 0 7px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.quote-blizz h4,.quote-wh h4
|
||||||
|
{
|
||||||
|
margin:8px 0 5px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.quote-blizz ul,.quote-blizz ol,.quote-wh ul,.quote-wh ol
|
||||||
|
{
|
||||||
|
margin-top:10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.quote-header
|
||||||
|
{
|
||||||
|
padding:15px 0 0 15px;
|
||||||
|
line-height:1;
|
||||||
|
position:relative;
|
||||||
|
font-size:13px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.collapse .quote-body
|
||||||
|
{
|
||||||
|
display:none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.quote-header a
|
||||||
|
{
|
||||||
|
font-size:10px;
|
||||||
|
text-decoration:none!important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.quote-header h2,.quote-header h2 a
|
||||||
|
{
|
||||||
|
background:none!important;
|
||||||
|
text-shadow:0 1px 1px #000;
|
||||||
|
color:#fff!important;
|
||||||
|
margin:15px 0 0 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.quote-header h2 a:hover
|
||||||
|
{
|
||||||
|
color:#fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.quote-body
|
||||||
|
{
|
||||||
|
padding:10px 15px 0 15px;
|
||||||
|
-moz-border-radius:0 0 10px 0;
|
||||||
|
-webkit-border-radius:0 0 10px 0;
|
||||||
|
border-radius:0 0 10px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.quote-blizz
|
||||||
|
{
|
||||||
|
background:#13181e url(../images/blog/bluepost-bg.png) left top no-repeat;
|
||||||
|
color:#00c0ff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.quote-blizz .quote-header a
|
||||||
|
{
|
||||||
|
color:#BEF;
|
||||||
|
font-size:13px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.quote-blizz .quote-header a:hover
|
||||||
|
{
|
||||||
|
color:#FFF;
|
||||||
|
}
|
||||||
|
|
||||||
|
.quote-blizz .quote-body a,.quote-blizz .quote-body .q1 a
|
||||||
|
{
|
||||||
|
color:#bef;
|
||||||
|
}
|
||||||
|
|
||||||
|
.quote-blizz .quote-body a:hover,.quote-blizz quote-body .q1 a:hover
|
||||||
|
{
|
||||||
|
color:#fff!important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.quote-blizz .quote-body a b
|
||||||
|
{
|
||||||
|
color:#bef!important;
|
||||||
|
text-decoration:none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.quote-blizz .quote-body a:hover b
|
||||||
|
{
|
||||||
|
color:#fff!important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.quote-blizz .quote-body b a
|
||||||
|
{
|
||||||
|
text-decoration:none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.quote-blizz hr
|
||||||
|
{
|
||||||
|
background:transparent;
|
||||||
|
border-top:1px dotted #333;
|
||||||
|
height:1px;
|
||||||
|
margin:5px 0 10px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.quote-wh
|
||||||
|
{
|
||||||
|
/* background:#1e1e1e url(../images/blog/whpost-bg.png) left top no-repeat; */
|
||||||
|
position:relative;
|
||||||
|
color:#ccc;
|
||||||
|
-moz-border-radius:10px;
|
||||||
|
-webkit-border-radius:10px;
|
||||||
|
border-radius:10px;
|
||||||
|
border:solid 2px #bbb;
|
||||||
|
margin:15px;
|
||||||
|
clear:both;
|
||||||
|
min-height:24px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.quote-wh .quote-header a
|
||||||
|
{
|
||||||
|
color:#ffcd55;
|
||||||
|
text-shadow:0 -1px 0 #13181e;
|
||||||
|
background:url(../images/blog/wh-link.png) right center no-repeat;
|
||||||
|
}
|
||||||
|
|
||||||
|
.quote-wh .quote-header a:hover
|
||||||
|
{
|
||||||
|
color:#fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.quote-wh .quote-body
|
||||||
|
{
|
||||||
|
background:none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.quote-wh .quote-body a
|
||||||
|
{
|
||||||
|
color:#ffd100;
|
||||||
|
}
|
||||||
|
|
||||||
|
.quote-body .c3
|
||||||
|
{
|
||||||
|
color:#AAD372!important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.quote-body .c4
|
||||||
|
{
|
||||||
|
color:#FFF468!important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.quote-body .c5,.quote-body .q1
|
||||||
|
{
|
||||||
|
color:#fff!important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.quote-body .c8
|
||||||
|
{
|
||||||
|
color:#68CCEF!important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.quote-body h1,.quote-body h2,.quote-body h3,.quote-body h4,.quote-body h5
|
||||||
|
{
|
||||||
|
color:#fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.quote-body li
|
||||||
|
{
|
||||||
|
background:none!important;
|
||||||
|
list-style-type:disc;
|
||||||
|
padding-left:0!important;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.secheader
|
||||||
|
{
|
||||||
|
background-color:#1e1e1e;
|
||||||
|
color:#fff;
|
||||||
|
border:solid 2px #bbb;
|
||||||
|
border-width:2px 0;
|
||||||
|
margin:15px 0;
|
||||||
|
padding:5px 0 6px 8px;
|
||||||
|
clear:both;
|
||||||
|
-moz-box-shadow:0 1px 13px #000,0 0 3px #000 inset;
|
||||||
|
font-size:22px;
|
||||||
|
}
|
||||||
|
|
||||||
|
a.revealtoggle
|
||||||
|
{
|
||||||
|
text-decoration:none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.quote-header a.toggle,.quote-wh a.toggle
|
||||||
|
{
|
||||||
|
position:absolute;
|
||||||
|
top:15px;
|
||||||
|
right:18px;
|
||||||
|
display:block;
|
||||||
|
width:51px;
|
||||||
|
height:11px;
|
||||||
|
line-height:11px;
|
||||||
|
color:#888!important;
|
||||||
|
background:transparent url(../images/blog/quote-toggle.png) no-repeat!important;
|
||||||
|
background-position:0 -11px!important;
|
||||||
|
padding:0 0 0 10px;
|
||||||
|
text-align:right;
|
||||||
|
text-decoration:none!important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.quote-wh a.toggle
|
||||||
|
{
|
||||||
|
top:12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.collapse .quote-header a.toggle,.collapse a.toggle
|
||||||
|
{
|
||||||
|
color:#fff!important;
|
||||||
|
background-position:0 0!important;
|
||||||
|
width:46px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.collapse .quote-header a.toggle
|
||||||
|
{
|
||||||
|
right:15px;
|
||||||
|
top:auto;
|
||||||
|
bottom:0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.collapse .quote-header
|
||||||
|
{
|
||||||
|
padding-right:81px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.quote-wh.collapse
|
||||||
|
{
|
||||||
|
padding-top:18px;
|
||||||
|
}
|
||||||
|
|
||||||
/**************************************************************/
|
/**************************************************************/
|
||||||
/* CSS BELOW TO BE MOVED TO A PROPER LOCATION AND/OR REFACTOR */
|
/* CSS BELOW TO BE MOVED TO A PROPER LOCATION AND/OR REFACTOR */
|
||||||
/**************************************************************/
|
/**************************************************************/
|
||||||
@@ -2957,6 +3218,9 @@ td.screenshot-cell:hover img {
|
|||||||
margin-bottom: 0 !important;
|
margin-bottom: 0 !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
del.diffmod, del.diffdel { opacity: 0.40; filter: alpha(opacity=40); text-decoration: none; border-bottom: 1px dotted; }
|
||||||
|
ins.diffmod, ins.diffins { color: #5DF644; text-decoration: none; border-bottom: 1px dotted; }
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Reusable UI elements/features
|
Reusable UI elements/features
|
||||||
*/
|
*/
|
||||||
|
|||||||
BIN
static/images/blog/bluepost-bg.png
Normal file
BIN
static/images/blog/bluepost-bg.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 46 KiB |
BIN
static/images/blog/quote-toggle.png
Normal file
BIN
static/images/blog/quote-toggle.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.0 KiB |
BIN
static/images/blog/wh-link.png
Normal file
BIN
static/images/blog/wh-link.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 994 B |
BIN
static/images/blog/whpost-bg.png
Normal file
BIN
static/images/blog/whpost-bg.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 24 KiB |
@@ -16799,6 +16799,129 @@ function g_getProfileRealmUrl(profile) {
|
|||||||
return '?profiles=' + profile.region + '.' + profile.realm;
|
return '?profiles=' + profile.region + '.' + profile.realm;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var ProgressBar = function(opt)
|
||||||
|
{
|
||||||
|
this.opts = {
|
||||||
|
text: '',
|
||||||
|
hoverText: '',
|
||||||
|
color: 'rep6',
|
||||||
|
width: 0,
|
||||||
|
progress: 0
|
||||||
|
};
|
||||||
|
|
||||||
|
this.elements = {
|
||||||
|
text: null,
|
||||||
|
hoverText: null,
|
||||||
|
textContainer: null,
|
||||||
|
progress: null,
|
||||||
|
container: null
|
||||||
|
};
|
||||||
|
|
||||||
|
$WH.cO(this.opts, opt);
|
||||||
|
|
||||||
|
this.build();
|
||||||
|
};
|
||||||
|
|
||||||
|
ProgressBar.prototype.build = function()
|
||||||
|
{
|
||||||
|
var el = $('<a/>', { 'class': 'progressbar', href: 'javascript:;' });
|
||||||
|
if(this.opts.width > 0)
|
||||||
|
el.css('width', this.opts.width + 'px');
|
||||||
|
else
|
||||||
|
el.css('width', 'auto');
|
||||||
|
|
||||||
|
var textDiv = $('<div/>', { 'class': 'progressbar-text' });
|
||||||
|
if(this.opts.text)
|
||||||
|
{
|
||||||
|
this.elements.text = $('<del/>', { text: this.opts.text });
|
||||||
|
textDiv.append(this.elements.text);
|
||||||
|
}
|
||||||
|
if(this.opts.hoverText)
|
||||||
|
{
|
||||||
|
this.elements.hoverText = $('<ins/>', { text: this.opts.hoverText });
|
||||||
|
textDiv.append(this.elements.hoverText);
|
||||||
|
}
|
||||||
|
el.append(textDiv);
|
||||||
|
|
||||||
|
var div = $('<div/>', { 'class': 'progressbar-' + this.opts.color, css: { width: this.opts.progress + '%' }, text: String.fromCharCode(160) });
|
||||||
|
el.append(div);
|
||||||
|
|
||||||
|
if(this.opts.text)
|
||||||
|
textDiv.append($('<div/>', { 'class': 'progressbar-text progressbar-hidden', text: this.opts.text }));
|
||||||
|
|
||||||
|
this.elements.container = el;
|
||||||
|
this.elements.progress = div;
|
||||||
|
this.elements.textContainer = textDiv;
|
||||||
|
|
||||||
|
return el;
|
||||||
|
};
|
||||||
|
|
||||||
|
ProgressBar.prototype.setText = function(text)
|
||||||
|
{
|
||||||
|
this.opts.text = text;
|
||||||
|
|
||||||
|
if(this.elements.text)
|
||||||
|
this.elements.text.text(this.opts.text);
|
||||||
|
else
|
||||||
|
{
|
||||||
|
this.elements.text = $('<del/>', { text: this.opts.text });
|
||||||
|
if(this.opts.hoverText)
|
||||||
|
this.opts.hoverText.before(this.elements.text);
|
||||||
|
else
|
||||||
|
this.elements.textContainer.append(this.elements.text);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
ProgressBar.prototype.setHoverText = function(text)
|
||||||
|
{
|
||||||
|
this.opts.hoverText = text;
|
||||||
|
|
||||||
|
if(this.elements.hoverText)
|
||||||
|
this.elements.hoverText.text(this.opts.hoverText);
|
||||||
|
else
|
||||||
|
{
|
||||||
|
this.elements.hoverText = $('<ins/>', { text: this.opts.hoverText });
|
||||||
|
this.elements.textContainer.append(this.elements.hoverText);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
ProgressBar.prototype.setProgress = function(percent)
|
||||||
|
{
|
||||||
|
this.opts.progress = percent;
|
||||||
|
|
||||||
|
this.elements.progress.css('width', this.opts.progress + '%');
|
||||||
|
};
|
||||||
|
|
||||||
|
ProgressBar.prototype.setWidth = function(width)
|
||||||
|
{
|
||||||
|
this.opts.width = width;
|
||||||
|
|
||||||
|
if(this.opts.width > 0)
|
||||||
|
this.elements.container.css('width', this.opts.width + 'px');
|
||||||
|
else
|
||||||
|
this.elements.container.css('width', 'auto');
|
||||||
|
};
|
||||||
|
|
||||||
|
ProgressBar.prototype.getText = function()
|
||||||
|
{
|
||||||
|
return this.opts.text;
|
||||||
|
};
|
||||||
|
|
||||||
|
ProgressBar.prototype.getHoverText = function()
|
||||||
|
{
|
||||||
|
return this.opts.hoverText;
|
||||||
|
};
|
||||||
|
|
||||||
|
ProgressBar.prototype.getWidth = function()
|
||||||
|
{
|
||||||
|
return this.opts.width;
|
||||||
|
};
|
||||||
|
|
||||||
|
ProgressBar.prototype.getContainer = function()
|
||||||
|
{
|
||||||
|
return this.elements.container;
|
||||||
|
};
|
||||||
|
|
||||||
var Icon = {
|
var Icon = {
|
||||||
sizes: ['small', 'medium', 'large'],
|
sizes: ['small', 'medium', 'large'],
|
||||||
sizes2: [18, 36, 56],
|
sizes2: [18, 36, 56],
|
||||||
@@ -20834,6 +20957,37 @@ $WH.aE(window, 'load', function () {
|
|||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
function GetN5(num)
|
||||||
|
{
|
||||||
|
var absNum = Math.abs(num);
|
||||||
|
|
||||||
|
if (absNum < 10000) // 1234 = 1,234
|
||||||
|
return $WH.number_format(num);
|
||||||
|
|
||||||
|
if (absNum < 100000) // 12345 = 12.3k
|
||||||
|
return (Math.round(num / 100) / 10) + 'k';
|
||||||
|
|
||||||
|
if (absNum < 1000000) // 123456 = 123k
|
||||||
|
return Math.round(num / 1000) + 'k';
|
||||||
|
|
||||||
|
if (absNum < 10000000) // 1234567 = 1.23m
|
||||||
|
return (Math.round(num / 1000 / 10) / 100) + 'm';
|
||||||
|
|
||||||
|
if (absNum < 100000000) // 12345678 = 12.3m
|
||||||
|
return (Math.round(num / 1000 / 100) / 10) + 'm';
|
||||||
|
|
||||||
|
if (absNum < 1000000000) // 123456789 = 123m
|
||||||
|
return Math.round(num / 1000 / 1000) + 'm';
|
||||||
|
|
||||||
|
if (absNum < 10000000000) // 1234567890 = 1,234,567,890 = 1.23b
|
||||||
|
return (Math.round(num / 1000 / 1000 / 10) / 100) + 'b';
|
||||||
|
|
||||||
|
if (absNum < 10000000000) // 1234567890 = 1,234,567,890 = 1.23b
|
||||||
|
return (Math.round(num / 1000 / 1000 / 100) / 10) + 'b';
|
||||||
|
|
||||||
|
return Math.round(num / 1000 / 1000 / 1000) + 'b';
|
||||||
|
}
|
||||||
|
|
||||||
function CreateAjaxLoader() {
|
function CreateAjaxLoader() {
|
||||||
return $('<img>').attr('alt', '').attr('src', g_staticUrl + '/images/icons/ajax.gif').addClass('ajax-loader');
|
return $('<img>').attr('alt', '').attr('src', g_staticUrl + '/images/icons/ajax.gif').addClass('ajax-loader');
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user