');
// $pos = $this->_striposB($content, '
');
// if ($pos != 0){
// //Need to trim garbage off..
// $content = substr ($content, $pos);
// }
// $pos = 0;
// $pos = $this->_striposB($content, '
');
// $pos += 6;
// $len = strlen($content) - $pos;
// $len *= -1;
// if ($pos != 0){
// //Need to trim garbage off..
// $content = substr ($content, 0, $len);
// }
//
// $content = str_replace("\n", "", $content );
// $content = str_replace("
", "%__BRTAG%", $content );
//
// $content = strip_tags( $content );
//
// $content = str_replace("%__BRTAG%", "
", $content );
// $content = mb_convert_encoding( $content, "UTF-8", "HTML-ENTITIES");
// return $content;
// }
// return false;
//}
/**
* helper function to strip of a string
*
* @param string $haystack
* @param string $needle
* @return string
*/
function _striposB($haystack, $needle){
$ret = strpos($haystack, stristr( $haystack, $needle ));
$this->_debug( 3, $ret, 'Fetched item tooltip', 'OK' );
return $ret;
}
/**
* helper function to get hex value for item color
*
* @param int $value
* @return string hex color
*/
function _getItemColor($value) {
$ret = '';
switch ($value) {
case 5: $ret = "ff8000"; //Orange
break;
case 4: $ret = "a335ee"; //Purple
break;
case 3: $ret = "0070dd"; //Blue
break;
case 2: $ret = "1eff00"; //Green
break;
case 1: $ret = "ffffff"; //White
break;
default: $ret = "9d9d9d"; //Grey
break;
}
$this->_debug( 2, $ret, 'Determined item color', 'OK' );
return $ret;
}
/**
* helper function to get string value for item slot
*
* @param int $value
* @return string slot
*/
function _getItemSlot($value) {
$ret = '';
switch ($value) {
case 0: $ret = "Head";
break;
case 1: $ret = "Neck";
break;
case 2: $ret = "Shoulder";
break;
case 3: $ret = "Shirt";
break;
case 4: $ret = "Chest";
break;
case 5: $ret = "Waist";
break;
case 6: $ret = "Legs";
break;
case 7: $ret = "Feet";
break;
case 8: $ret = "Wrist";
break;
case 9: $ret = "Hands";
break;
case 10: $ret = "Finger0";
break;
case 11: $ret = "Finger1";
break;
case 12: $ret = "Trinket0";
break;
case 13: $ret = "Trinket1";
break;
case 14: $ret = "Back";
break;
case 15: $ret = "MainHand";
break;
case 16: $ret = "SecondaryHand";
break;
case 17: $ret = "Ranged";
break;
case 18: $ret = "Tabard";
break;
}
$this->_debug( 2, $ret, 'Determined item slot', 'OK' );
return $ret;
}
/**
* helper function to get numerical value for skill order
*
* @param int $value
* @return int SkillOrder
*/
function _getSkillOrder($value) {
global $roster, $addon;
$ret = 0;
switch ($value) {
case $roster->locale->act['Skills']['Class Skills']: $ret = 1;
break;
case $roster->locale->act['Skills']['Professions']: $ret = 2;
break;
case $roster->locale->act['Skills']['Secondary Skills']: $ret = 3;
break;
case $roster->locale->act['Skills']['Weapon Skills']: $ret = 4;
break;
case $roster->locale->act['Skills']['Armor Proficiencies']: $ret = 5;
break;
case $roster->locale->act['Skills']['Languages']: $ret = 6;
break;
default: $ret = 0;
break;
}
$this->_debug( 2, $ret, 'Determined skill order', 'OK' );
return $ret;
}
/**
* helper function to get relative value for reputation
*
* @param int $value
* @return int RepValue
*/
function _getRepValue($value) {
$value = abs($value);
if ($value >= 42000 && $value < 43000) { $value -= 42000; }
elseif ($value >= 21000 && $value < 42000) { $value -= 21000; }
elseif ($value >= 9000 && $value < 21000) { $value -= 9000; }
elseif ($value >= 3000 && $value < 9000) { $value -= 3000; }
elseif ($value >= -3000 && $value < 3000) { $value -= 0; }
elseif ($value >= -6000 && $value < -3000) { $value -= 3000; }
elseif ($value >= -42000 && $value < -6000) { $value -= 6000; }
$this->_debug( 2, $value, 'Determined reputation value', 'OK' );
return $value;
}
/**
* helper function to get cap value for reputation
*
* @param int $value
* @return int RepCap
*/
function _getRepCap($value) {
$ret = 0;
if ($value >= 42000 && $value < 43000) { $ret = 1000; }
if ($value >= 21000 && $value < 42000) { $ret = 21000; }
if ($value >= 9000 && $value < 21000) { $ret = 12000; }
if ($value >= 3000 && $value < 9000) { $ret = 6000; }
if ($value >= -6000 && $value < 3000) { $ret = 3000; }
if ($value >= -42000 && $value < -6000) { $ret = 36000; }
$this->_debug( 2, $ret, 'Determined reputation cap', 'OK' );
return $ret;
}
/**
* helper function to get war status for reputation
*
* @param int $value
* @return bool
*/
function _getRepAtWar($value) {
if ($value >= -3000) { $ret = 0; }
else { $ret = 1; }
$this->_debug( 2, $ret, 'Determined reputation at war', 'OK' );
return $ret;
}
/**
* helper function to get localized string for reputation
*
* @param int $value
* @return string RepStanding
*/
function _getRepStanding($value) {
global $roster, $addon;
$ret = '';
if ($value >= 42000 && $value < 43000) { $ret = $roster->locale->act['exalted']; }
if ($value >= 21000 && $value < 42000) { $ret = $roster->locale->act['revered']; }
if ($value >= 9000 && $value < 21000) { $ret = $roster->locale->act['honored']; }
if ($value >= 3000 && $value < 9000) { $ret = $roster->locale->act['friendly']; }
if ($value >= 0 && $value < 3000) { $ret = $roster->locale->act['neutral']; }
if ($value >= -3000 && $value < 0) { $ret = $roster->locale->act['unfriendly']; }
if ($value >= -6000 && $value < -3000) { $ret = $roster->locale->act['hostile']; }
if ($value >= -42000 && $value < -6000) { $ret = $roster->locale->act['hated']; }
$this->_debug( 2, $ret, 'Determined reputation standing', 'OK' );
return $ret;
}
/**
* helper function mbconvert workaround
*
* @param int $value
* @return string RepStanding
*/
function _unhtmlentities($string)
{
// Ersetzen numerischer Darstellungen
$string = preg_replace('~([0-9a-f]+);~ei', 'chr(hexdec("\\1"))', $string);
$string = preg_replace('~([0-9]+);~e', 'chr("\\1")', $string);
// Ersetzen benannter Zeichen
$trans_tbl = get_html_translation_table(HTML_ENTITIES);
$trans_tbl = array_flip($trans_tbl);
$ret = strtr($string, $trans_tbl);
$this->_debug( 3, $ret, 'Removed HTML entities', 'OK' );
return $ret;
}
/**
* helper function for non enUS strtodate
*
* @param string $string
* @return string date
*/
function _getDate($string)
{
global $roster;
if ( $roster->locale->curlocale == 'esES') {
$string = str_replace( 'de ', '', $string );
}
if ( $roster->locale->curlocale != 'enUS') {
$array = explode(" ", $string );
$array[1] = $roster->locale->act['month_to_en'][$array[1]];
$string = implode( " ", $array );
}
$ret = date('Y/m/d H:i:s', strtotime($string));
$this->_debug( 2, $ret, 'Converted date', 'OK' );
return $ret;
}
// DB functions
/**
* db function to get member name by its id
*
* @param int $memberId
* @return string $memberName
*/
function _getGuildMembers( $guildID ) {
global $roster, $addon;
$query = "SELECT * ".
"FROM ". $roster->db->table('members'). " AS members ".
"WHERE ".
"members.guild_id=". $guildID;
$result = $roster->db->query($query);
if( $roster->db->num_rows($result) > 0 ) {
$members = $roster->db->fetch_all();
$array = array();
foreach ( $members as $member ) {
$array[$member['name']] = $member;
}
$this->_debug( 3, $array, 'Fetched guild members from DB', 'OK' );
return $array;
} else {
$this->_debug( 3, $array, 'Fetched guild members from DB', 'Failed' );
return array();
}
}
/**
* db function to get member name by its id
*
* @param int $memberId
* @return string $memberName
*/
function _getNamefromID( $memberID ) {
global $roster, $addon;
$query = "SELECT ".
"members.name ".
"FROM ". $roster->db->table('members'). " AS members ".
"WHERE ".
"members.member_id=". $memberID;
$memberName = $roster->db->query_first( $query );
if ( $membername ) {
$this->_debug( 3, $array, 'Fetched member name from DB', 'OK' );
return $memberName;
} else {
$this->_debug( 3, $array, 'Fetched member name from DB', 'Failed' );
return $memberName;
}
}
/**
* db function to get member name by its id
*
* @param int $memberId
* @return string $memberName
*/
function _getGuildRanks( $guild_id ) {
global $roster, $addon;
$array = array();
$ranks = array();
if ( $addon['config']['armorysync_rank_set_order'] >= 1 ) {
$query = "SELECT ".
"guild_rank, guild_title ".
"FROM ". $roster->db->table('members'). " AS members ".
"WHERE ".
"members.guild_id=". $guild_id. " ".
"AND NOT members.guild_title='' ".
"GROUP BY guild_rank, guild_title ".
"ORDER BY guild_rank;";
$result = $roster->db->query($query);
if( $roster->db->num_rows($result) > 0 ) {
$tmp = $roster->db->fetch_all();
foreach ( $tmp as $rank ) {
$ranks[$rank['guild_rank']] = $rank['guild_title'];
}
}
}
if ( $addon['config']['armorysync_rank_set_order'] == 3 ) {
for ( $i = 0; $i <= 9; $i++ ) {
$array[$i]['Title'] = isset($ranks[$i]) && $ranks[$i] != '' ?
$ranks[$i] :
( $addon['config']['armorysync_rank_'. $i] != '' ?
$addon['config']['armorysync_rank_'. $i] :
( $i == 0 ?
$roster->locale->act['guildleader'] :
$roster->locale->act['rank']. $i ) );
}
}
elseif ( $addon['config']['armorysync_rank_set_order'] == 2 ) {
for ( $i = 0; $i <= 9; $i++ ) {
$array[$i]['Title'] = $addon['config']['armorysync_rank_'. $i] != '' ?
$addon['config']['armorysync_rank_'. $i] :
( isset($ranks[$i]) && $ranks[$i] != '' ?
$ranks[$i] :
( $i == 0 ?
$roster->locale->act['guildleader'] :
$roster->locale->act['rank']. $i ) );
}
}
elseif ( $addon['config']['armorysync_rank_set_order'] == 1 ) {
for ( $i = 0; $i <= 9; $i++ ) {
$array[$i]['Title'] = isset($ranks[$i]) && $ranks[$i] != '' ?
$ranks[$i] :
( $i == 0 ?
$roster->locale->act['guildleader'] :
$roster->locale->act['rank']. $i );
}
}
elseif ( $addon['config']['armorysync_rank_set_order'] == 0 ) {
for ( $i = 0; $i <= 9; $i++ ) {
$array[$i]['Title'] = $i == 0 ?
$roster->locale->act['guildleader'] :
$roster->locale->act['rank']. $i;
}
}
$this->_debug( 3, $array, 'Fetched guild ranks from DB', 'OK' );
return $array;
}
/**
* db function to get members guild_rank and guild_title by its id
*
* @param int $memberId
* @return string $memberName
*/
function _getMemberRank( $member_id ) {
global $roster, $addon;
$query = "SELECT ".
"guild_rank, guild_title ".
"FROM ". $roster->db->table('members'). " AS members ".
"WHERE ".
"members.member_id=". $member_id. ";";
$result = $roster->db->query($query);
if( $roster->db->num_rows($result) > 0 ) {
$ranks = $roster->db->fetch_all();
$this->_debug( 3, $ranks[0], 'Fetched member rank from DB', 'OK' );
return $ranks[0];
} else {
$array = array();
$this->_debug( 3, $array, 'Fetched member rank from DB', 'Failed' );
return $array;
}
}
}