/-----------------Script Start----------------/
06.09.06 21:01:01 = Die URL konnte nicht erreicht werden.
/-----------------Script Stop-----------------/
/-----------------Script Start----------------/
06.09.06 21:30:01 = Die URL konnte nicht erreicht werden.
/-----------------Script Stop-----------------/
Das braucht man bei solchen Sachen generellMan braucht schon kenntnisse der MAterie um soetwas zu schreiben!
Musst du bei jeder Änderung an der Schnittstelle ebenfalls (siehe hierAusserdem würde ich davon abraten denn bei jedem seitenlayout wechsel kannst du probleme bekommen und musst dein script umschreiben oder neu strukturieren.
Also hab ich das nochmal korrigiert, da das mit dem Layout schlichtweg falsch ist...So einfach ist das nun auch nicht smile.gif
Man braucht schon kenntnisse der MAterie um soetwas zu schreiben!
Ausserdem würde ich davon abraten denn bei jedem seitenlayout wechsel kannst du probleme bekommen und musst dein script umschreiben oder neu strukturieren.
^^ wenn du das bestreitest dann weiss ich nicht worüber wir hier reden"kannst du probleme bekommen"
Äm... nicht ganz... wenn du's richtig machst, kriegste keine Probleme solange nicht der Code an der Liste selber geändert wird (oder haste das gemeint?)und dann macht es keinen Sinn weiter zu diskutierenJedem sollte klar sein das bei einem Seitenlayout wechsel wie z.b. neuen infos auf den seiten oder geänderten anzeige optionen der ganze parser für den "Allerwertesten" ist
Vor-dem-2.-Kaffe-PowerDas war mal ein guter Postund ich kann auch alles nachvollziehen
Das ist mal ein WortUnd das mit den Anleitungen ... würde ich auch nicht machenSowas kriegen nur Kunden bei uns
/-----------------Script Start----------------/
09.06.06 21:01:01 = Die URL konnte nicht erreicht werden.
/-----------------Script Stop-----------------/
/-----------------Script Start----------------/
09.06.06 21:30:01 = Die URL konnte nicht erreicht werden.
/-----------------Script Stop-----------------/
/-----------------Script Start----------------/
14.09.06 6:31:29 = Die URL konnte nicht erreicht werden.
/-----------------Script Stop-----------------/
/-----------------Script Start----------------/
18.09.06 14:31:02 = Die URL konnte nicht erreicht werden.
/-----------------Script Stop-----------------/
/-----------------Script Start----------------/
21.09.06 13:00:01 = Die URL konnte nicht erreicht werden.
/-----------------Script Stop-----------------/
/-----------------Script Start----------------/
21.09.06 14:00:01 = Die URL konnte nicht erreicht werden.
/-----------------Script Stop-----------------/
/-----------------Script Start----------------/
24.09.06 18:30:01 = Die URL konnte nicht erreicht werden.
/-----------------Script Stop-----------------/
/-----------------Script Start----------------/
24.09.06 19:01:06 = Die URL konnte nicht erreicht werden.
/-----------------Script Stop-----------------/
/-----------------Script Start----------------/
24.09.06 19:30:01 = Die URL konnte nicht erreicht werden.
/-----------------Script Stop-----------------/
/-----------------Script Start----------------/
24.09.06 20:00:02 = Die URL konnte nicht erreicht werden.
/-----------------Script Stop-----------------/
/-----------------Script Start----------------/
24.09.06 20:31:01 = Die URL konnte nicht erreicht werden.
/-----------------Script Stop-----------------/
/-----------------Script Start----------------/
24.09.06 21:00:01 = Die URL konnte nicht erreicht werden.
/-----------------Script Stop-----------------/
/-----------------Script Start----------------/
24.09.06 21:30:01 = Die URL konnte nicht erreicht werden.
/-----------------Script Stop-----------------/
/-----------------Script Start----------------/
24.09.06 22:31:01 = Die URL konnte nicht erreicht werden.
/-----------------Script Stop-----------------/
/-----------------Script Start----------------/
24.09.06 23:01:01 = Die URL konnte nicht erreicht werden.
/-----------------Script Stop-----------------/
/-----------------Script Start----------------/
24.09.06 23:30:02 = Die URL konnte nicht erreicht werden.
/-----------------Script Stop-----------------/
/-----------------Script Start----------------/
25.09.06 1:30:01 = Die URL konnte nicht erreicht werden.
/-----------------Script Stop-----------------/
/-----------------Script Start----------------/
25.09.06 9:30:02 = Die URL konnte nicht erreicht werden.
/-----------------Script Stop-----------------/
PS: Hat zufällig jemand schon einen Parser geschrieben? Dann könnte dieser doch vorübergehend als Lösung hier veröffentlicht werden.
<?
################################################################################
# #
# blasc Guildparser CLASS v0.01a is Copyright (c) #
# Written and developed by Christian Zamora 2003-2006. #
# #
# This class is free software; you can redistribute it and/or modify it #
# under the terms of the GNU General Public License as published by the Free #
# Software Foundation; either version 2 of the License, or (at your option) #
# any later version. #
# #
# This program is distributed in the hope that it will be useful, but #
# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY #
# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License #
# for more details. #
# #
# edited by Ch. Zamora. #
# #
# Edit Log: #
# - dynamic template extension on template assign #
# - dynamic template directory choose on template assign #
# #
# Note: #
# Create an xxxxx.php file and initiate this class like this: #
# #
# include ('<classfilename>'); #
# #
# #
################################################################################
class BLASC extends Template
{
var $guildurl;
var $charurl;
var $imgchar;
var $imgpvpr;
var $file;
var $guild;
var $guildid;
var $language;
function blasc($guildid = 1, $language = 'DE')
{
# Prüfen ob buffed.de erreichbar ist
$this->IsOnline();
# GildenID und Sprache zuordnen.
$this->guildid = $guildid;
$this->language = $language;
# Konfiguration der URLs
$this->guildurl = @sprintf('%sguild.php?g=%d',BLASCURL, $this->guildid);
$this->charurl = @sprintf('%s?c=',BLASCURL);
$this->imgchar = 'images/races/';
$this->imgpvpr = 'images/PvPRanking/';
# Daten ermitteln und in einem Array ablegen.
if(!($this->file = file_get_contents($this->guildurl)))
$this->BlascError(1);
$this->guild = @unserialize(gzuncompress($this->file));
# Standardkonfiguration für die Anzeige der Tabelle erzeugen
# Tabelle erstellen
$this->CreateTable();
}
# Fehlerausgabe
function BLASCError($num)
{
if($this->language != 'DE' && $this->language != 'EN')
die('Invalid language configuration. Please choose DE or EN or leave it blank for default.');
$errorFile = @sprintf('include/_messages_%s.inc', strtolower($this->language));
$this->CheckForFile($errorFile);
$fp = @file($errorFile);
for($x = 0; $x < sizeof($fp); $x++)
{
list($linenum, $line) = explode('=', $fp[$x]);
if($linenum == $num) {
$errorMessage = trim($line);
break;
}
}
$fp = null;
if(empty($errorMessage)) die('Unknown error.');
else die($errorMessage);
}
# Prüfen ob buffed.de erreichbar ist.
function IsOnline()
{
if(!($fp = @fsockopen('www.buffed.de', 80, &$errno , &$errstr , 1))) $this->BLASCError(2);
else $fp = null;
}
# Template erzeugen
function CreateTable()
{
foreach($this->guild['character'] as $c)
{
$mainjobs = '';
$secjobs = '';
# Bilder erzeugen
$raceimage = @sprintf('%s-%s.png', $c['race'], $c['sex']);
$pvpimage = ($c['pvprank'] > 0)
? @sprintf('PvPRank%s.png', $c['pvprank'])
: 'space.gif';
# HauptBerufe ermitteln und erstellen
foreach($c['skills']['Berufe'] as $b)
{
list($bname, $bskill) = each($c['skills']['Berufe']);
$value = $bskill['value'];
$max = $bskill['max'];
$percent = (100/$max*$value);
$btpl = $this->Template('jobline');
$btpl->Add('JOB', $bname);
$btpl->Add('SKILL', $value);
$btpl->Add('SKILLMAX', $max);
$btpl->Add('JOBMETER', $percent);
$mainjobs .= $btpl->Out();
}
# Sekundäre Fähigkeiten ermitteln und erstellen
foreach($c['skills']['Sekundäre Fertigkeiten'] as $b)
{
list($bname, $bskill) = each($c['skills']['Sekundäre Fertigkeiten']);
$value = $bskill['value'];
$max = $bskill['max'];
$percent = (100/$max*$value);
$btpl = $this->Template('jobline');
$btpl->Add('JOB', $bname);
$btpl->Add('SKILL', $value);
$btpl->Add('SKILLMAX', $max);
$btpl->Add('JOBMETER', $percent);
$secjobs .= $btpl->Out();
}
# Gildentitel
$guild_title = ($c['guild_rank'] != 0)
? $c['guild_title']
: @sprintf('<font class="leader">%s</font>', $c['guild_title']);
# Templatezeile generieren
$mtpl = new Template('memberline');
$mtpl->Add('CHARURL', $this->charurl . $c['id']);
$mtpl->Add('RACEIMAGE', $this->imgchar . $raceimage);
$mtpl->Add('PVPIMAGE', $this->imgpvpr . $pvpimage);
$mtpl->Add('NAME', $c['name']);
$mtpl->Add('PVP', $this->NumToPvPRank($c['pvprank'],$this->guild['faction']));
$mtpl->Add('LEVEL', $c['level']);
$mtpl->Add('RACE', $c['race']);
$mtpl->Add('CLASS', $c['class']);
$mtpl->Add('UPDATED', $c['lastupdate']);
$mtpl->Add('TXT_MAIN_JOB', $this->gettext('TXT_MAIN_JOB'));
$mtpl->Add('TXT_SEC_JOB', $this->gettext('TXT_SEC_JOB'));
$mtpl->Add('GUILDTITLE', $guild_title);
$mtpl->Add('MAIN_JOBS', $mainjobs);
$mtpl->Add('SEC_JOBS', $secjobs);
$memberlines .= $mtpl->Out();
}
# Namensliste ermitteln und erstellen
foreach($this->guild['character'] as $ca) {
$memberlist .= @sprintf(' | <a href="#%s">%s</a> ', $ca['name'], $ca['name']);
}
$this->tpl = $this->Template('chartable');
$this->tpl->Add('ID', $this->guildid);
$this->tpl->Add('TXT_GUILD', $this->gettext('TXT_GUILD'));
$this->tpl->Add('TXT_GUILDCOUNT', $this->gettext('TXT_GUILDCOUNT'));
$this->tpl->Add('TXT_GUILDTITLE', $this->gettext('TXT_GUILDTITLE'));
$this->tpl->Add('TXT_LEVEL', $this->gettext('TXT_LEVEL'));
$this->tpl->Add('TXT_RACE', $this->gettext('TXT_RACE'));
$this->tpl->Add('TXT_CLASS', $this->gettext('TXT_CLASS'));
$this->tpl->Add('GUILDNAME', $this->guild['guild_name']);
$this->tpl->Add('GUILDCOUNT', $this->guild['numchars']);
$this->tpl->Add('REALM', $this->guild['server']);
$this->tpl->Add('MEMBER_LIST', $memberlist);
$this->tpl->Add('MEMBER_LINES',$memberlines);
}
# Prüfen ob benötigte Dateien vorhanden sind.
function CheckForFile($file)
{
if(!file_exists($file))
die('File' . $file . ' is missing in /include/!');
}
# Text aus dem Languagefile holen
function GetText($mark)
{
if($this->language != 'DE' && $this->language != 'EN')
die('Invalid language configuration. Please choose DE or EN or leave it blank for default.');
$txtFile = @sprintf('include/_templatetxts_%s.inc', strtolower($this->language));
$this->CheckForFile($txtFile);
$fp = @file($txtFile);
for($x = 0; $x < sizeof($fp); $x++)
{
list($linemark, $line) = explode('=', $fp[$x]);
if($linemark == $mark) {
$message = trim($line);
break;
}
}
$fp = null;
if(empty($message)) return ('Unknown');
else return $message;
}
# PVP Ränke übersetzen
function NumToPvPRank($num, $faction)
{
$ranking['DE'] = Array(
"H" => Array(
0 => 'kein Rang', 1 => 'Späher', 2 => 'Grunzer', 3 => 'Waffenträger',
4 => 'Schlachtrufer', 5 => 'Rottenmeister', 6 => 'Steingardist', 7 => 'Blutgardist',
8 => 'Zornbringer', 9 => 'Klinge der Horde', 10 => 'Feldherr', 11 => 'Sturmreiter',
12 => 'General', 13 => 'Kriegsfürst', 14 => 'Oberster Kriegsfürst'
),
"A" => Array(
0 => 'kein Rang', 1 => 'Gefreiter', 2 => 'Fußknecht', 3 => 'Landsknecht',
4 => 'Feldwebel', 5 => 'Fähnrich', 6 => 'Leutnant', 7 => 'Hauptmann',
8 => 'Kürassier', 9 => 'Ritter der Allianz', 10 => 'Feldkommandant',
11 => 'Rittmeister', 12 => 'Marschall', 13 => 'Feldmarschall', 14 => 'Großmarschall'
)
);
$ranking['EN'] = Array(
"H" => Array(
0 => 'no ranking', 1 => 'Scout', 2 => 'Grunt', 3 => 'Sergeant', 4 => 'Senior Sergeant',
5 => 'First Sergeant', 6 => 'Stone Guard', 7 => 'Blood Guard', 8 => 'Legionnare',
9 => 'Centurion', 10 => 'Commander Champion', 11 => 'Lieutenant General',
12 => 'General', 13 => 'Warlord', 14 => 'High Warlord'
),
"A" => Array(
0 => 'no ranking', 1 => 'Private', 2 => 'Corporal', 3 => 'Sergeant', 4 => 'Master Sergeant',
5 => 'Sargeant Major', 6 => 'Knight', 7 => 'Knight Liertenant', 8 => 'Knight Captain',
9 => 'Knight Champion', 10 => 'Lieutenant', 11 => 'Commander', 12 => 'Marshal', 13 => 'Field Marshal',
14 => 'Grand Marshal'
)
);
return $ranking[$this->language][$faction][$num];
}
# Ausgabe
function Show()
{
$content = trim($this->tpl->Out());
echo (!empty($content)) ? $content : $this->BLASCerror(3);
}
}
?>
require ("template.class.php");
require ("blasc.class.php");
$blasc = new blasc($id);
$blasc->Show();
<?
################################################################################
# #
# ilphpTpl TEMPLATE CLASS v0.4a is Copyright (c) #
# Written and developed by Christian Zamora 2003-2004. #
# #
# This class is free software; you can redistribute it and/or modify it #
# under the terms of the GNU General Public License as published by the Free #
# Software Foundation; either version 2 of the License, or (at your option) #
# any later version. #
# #
# This program is distributed in the hope that it will be useful, but #
# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY #
# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License #
# for more details. #
# #
# edited by Ch. Zamora. #
# #
# Edit Log: #
# - dynamic template extension on template assign #
# - dynamic template directory choose on template assign #
# #
# Note: #
# Create an xxxxx.php file and initiate this class like this: #
# #
# include ('<classfilename>'); #
# #
# To initiate an HTML file do following: #
# $tpl = new Template('<templatefile>',['<templatedir>',['template extension']]);#
# #
# Optional values are set to templates/ as directory and .tpl as default #
# Extension #
# #
# To replace content use {NAME} Tags in the HTML file #
# e.g.: #
# If the template file is in the same directory like the scriptfile. #
# #
# Filename: mytemplate.html #
# Your Template File source: <html>{TEXT}</html> #
# The way to replace it: #
# $tpl = new template('mytemplate','','.html'); #
# $tpl->Add('TEXT', 'Hello World'); #
# echo $tpl->Out(); #
# This will print "Hello World" on your website. #
# #
# #
################################################################################
class Template
{
var $template = '';
var $fields = Array();
/* initiate template
* @param filename name of the template file
* @param tpldir name of the directory where the templates are stored
* default is templates/
* @param tplext extension of the template files, default is *.tpl
*/
function Template($filename, $tpldir = 'templates/', $tplext = '.html')
{
/* check if template file exists */
if (!file_exists($tpldir . $filename . $tplext)) {
$this->template = "Fehler: Template '$filename' "
."existiert leider nicht!\n";
}
/* if template file exists , put line breaks
* on every line in the html source
*/
else {
$this->template = implode('', file($tpldir . $filename . $tplext));
}
}
/* save content to replace
* @param name
* @param value
*/
function Add($name, $value) {
$this->fields[$name] = $value;
}
/* replace html source and print it */
function Out()
{
while( list($name, $value) = each($this->fields)) {
$this->template = str_replace('{'.$name.'}', $value, $this->template);
}
return $this->template;
}
}
?>