anpera.net
https://anpera.dyndns.org/phpbb3/

[dev] PHP4OOPWVSYS 1.0
https://anpera.dyndns.org/phpbb3/viewtopic.php?f=34&t=4159
Seite 1 von 2

Autor:  Auric [ Fr 30 Nov, 2007 17:13 ]
Betreff des Beitrags:  [dev] PHP4OOPWVSYS 1.0

PHP4OOPWVSYS 1.0
Modulares Wohnviertel-System auf PHP4-OOP Basis Version 1.0

Ein ganz schön monströser Name ist es geworden, aber im Vergleich zum ersten 0.1er Release, der sich (in den Folgeversionen) ja wunderbar verbreitet hat, hat sich auch das Projekt deutlich in Umfang und Funktionalität gewachsen!

Zumindest in dem, was es einmal werden soll, denn bei dem angestrebten Umfang wird der erste echte Release wohl doch noch etwas auf sich warten lassen. Dies hat einige gute Gründe:
Nachdem mein erstes Wohnviertel ja noch stark auf Anperas Version basierte und nur minimal die Vorteile der Objektorientierung nutzte, habe ich das bisherige Konzept komplett über den Haufen geworfen und nun einen modularen Aufbau, der sich nach Aufgaben orientiert, aufgestellt. Dieser ist natürlich komplexer zu schreiben, aber dadurch auch wesentlich besser wart- und erweiterbar. Zudem sind noch einige anfangs überhaupt nicht eingeplante Features hinzu gekommen. Die Wichtigsten dürften wohl das integrierte Sub-Navsystem sowie die Translationsengine sein.
Ja, ganz recht gehört - das neue System ist in allen Texten komplett anpassbar und übersetzbar, ohne die Programmlogik zu stören. Hierzu ist ebenfalls noch ein Editor geplant.

So, nun will ich aber auch erstmal den Mund halten und euch den ersten Abschnitt dessen, was bisher fertig ist überlassen und weiter am eigentlichen Werk arbeiten. Doch wie versprochen gibt es hier schon mal den ersten (hoffentlich) intakten Teil Code, damit ihr euch schon mal einlesen könnt.
Speziell ist dies das bereits fast fertige Bausystem. Einfach die wv.php betreten und mal ausprobieren ;-)
Da sich die MySQL-Tabellen im Vergleich zur alten Version jedoch deutlich verändert haben, müsst ihr die hier verwendeten evtl unter anderm Namen einspielen und dann die Namen in der config.php anpassen.

SVN-Dev Zugriff
Wie (weiter unten) erwähnt liegt die aktuellste einigermaßen stabile Version meiner Arbeit am Projekt nun in einem für alle lesbaren Subversion-Repository. Wer also Interesse am mehr oder weniger frischen Code hat, kann sich den jederzeit unter folgender Adresse auschecken: http://lotgd.lvps87-230-22-117.dedicated.hosteurope.de/wsvn/ - Der normale Quelltext ist auch im Browser sichbar.
Verständlicherweise gibts es dafür natürlich keine Schreibrechte ^^

Autor:  Kevz [ Fr 30 Nov, 2007 17:17 ]
Betreff des Beitrags: 

Nach durchsehen der Gesamten Codeschnittestellen einmal, muss ich sagen, dass der Code zur vorherigen Version sehr sehr sauber ist... Bin selbst gerade sehr überrascht und hatte es so eig. nicht vermutet!!

Mein Lob, weiterso und weiterhin gutes gelingen und natürlich auf eine Fehlerfreie Version und viele Funktionierende Module. Werde mich in ferner Zukunft auch an dem ein oder anderen Modul betätigen. =)


Liebe Grüße,
Kev

Autor:  Eliwood [ Fr 30 Nov, 2007 17:20 ]
Betreff des Beitrags: 

WIe schön, zip-Komprimiert :)

Im übrigen würd ich die SVN-Details rausnehmen ;)

Sonst netter Code. Schade allerdings, dass ich wohl zuviel Ändern müsste, um es selbst zu gebrauchen ;) Und schade, dass du kein PHP5 nimmst. Der Support für 4 gibts ja nur noch bis Ende Jahr.. Wenn ich mich nun nicht irre.

PS:
Für Ersetzungen gibt es eigentlich das nette printf und seine ganze Verwandtschaft. Und mehrere, einzelne str_replace() sind schnäller als ein einziges mit Array-Argumenten - warum auch immer. Nur so als Nebenbemerkung. Klar, dass Arrays praktischer sind.

Autor:  Auric [ Fr 30 Nov, 2007 17:42 ]
Betreff des Beitrags: 

Den Subversion-Inhalt hatte ich ja ganz übersehen, danke für die Hinweise!

Die str_replce-Funktion werde ich wohl noch mal durchsehen und benchmarken. Zur Not gibt es halt ne Wrapper-Funktion. sprint() und Co. kommen jedoch nicht in frage, da sich die Anordnung der Platzhalter eventuell verschieben kann usw.

Wie schon mal erwähnt: Dies wird mein letztes PHP4-Projekt und du willst nicht wissen, wie oft ich die Beschränktheit während der Arbeit bereits verflucht habe. Besonders wenn man mal mit Java gewerkelt hat stört das immens. Aber hier soll die Kompatiblität vorgehen.

Autor:  Garlant [ Mo 10 Dez, 2007 12:23 ]
Betreff des Beitrags: 

Ich hab mich gerade mal rein gelesen und find es so weit super. (Auf Arbeit ist gerade nix zu tun und die Zeit soll man ja nutzen, aber pssst *g*)

Ist dies denn die Final, oder ist es eine preview Version?


Mfg Garlant

Autor:  Harthas [ Mo 10 Dez, 2007 12:24 ]
Betreff des Beitrags: 

Zitat:
Zumindest in dem, was es einmal werden soll, denn bei dem angestrebten Umfang wird der erste echte Release wohl doch noch etwas auf sich warten lassen.


Da erübrigt sich die Frage wohl ;-)


Schön dich wieder mal hier zu sehen.

Autor:  Garlant [ Mo 10 Dez, 2007 12:34 ]
Betreff des Beitrags: 

Huch, dann habe ich das wohl irgendwie überlesen, sry. (schämen sollte ich mich :D)

Mhm, mal sehen. In den Fingern kribbelt es mir schon lange, Ideen habe ich auch a mass und ich lese hier gelegentlich noch mit.
Also ist es wohl möglich von mir nochmal etwas zu sehen. :-)

Bis zum nächsten Mal.

Garlant

Autor:  Voxdomini [ Di 18 Dez, 2007 16:14 ]
Betreff des Beitrags: 

Warning: Cannot modify header information - headers already sent by (output started at /var/www/web123/html/lotgdphp5/haus/haus_build.php:189) in /var/www/web123/html/lotgdphp5/common.php on line 62

Kommt bei jemandem der das Sys mal angetestet hat..

Merkwürdig...

Schon Fehler erkannt. $this muss durch $siht ersetzt werden

Autor:  Harthas [ Di 18 Dez, 2007 16:24 ]
Betreff des Beitrags: 

Nein, wohl kaum.

Hier wird $this gebraucht, da das ganze Objekt-Orientiert ist. Da wird man $this kaum ersetzen müssen.

Autor:  Kevz [ Di 18 Dez, 2007 16:48 ]
Betreff des Beitrags: 

Bevor wir hier von "dritten" sprechen, können diese sich hier genau so selbst melden und dazu äußer, gell Voxdomini. Zudem ist die Funktion "getFinishText" in der OOP- Klasse haus_build ein var_dump enthalten, es reicht also vollkommen davor ein // oder ein # zu setzen. (war wohl zur Debug- nutzung)

Autor:  Avengar [ Mi 13 Feb, 2008 11:46 ]
Betreff des Beitrags:  Re: [dev] PHP4OOPWVSYS 1.0

Hallo... hab mal wieder ein Prob...

hab mir gerade das Modul installiert, und sofort ausprobiert.....

(ist was ich bisher gesehen habe super geworden)

nur ich hab da folgende probleme!!

1. Nach betreten des Wohnviertels kommt man nicht zum Dorf zurück!!!
2. Wenn ich das Haus fertig gestellt habe bekomme ich folgendes als meldung!!

$this->bbcode_second_pass_code('', 'object(haus_build)#3 (3) { ["id"]=> string(1) "2" ["data"]=> array(9) { ["house_id"]=> string(1) "2" ["gold"]=> string(5) "25000" ["gems"]=> string(2) "50" ["turn"]=> string(2) "30" ["name"]=> string(13) "Avengars Haus" ["description"]=> NULL ["level"]=> int(1) ["ausbauten"]=> NULL ["location"]=> string(1) "1" } ["changes"]=> array(2) { [0]=> string(5) "level" [1]=> string(4) "name" } }
Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\wconline\haus\haus_build.php:189) in C:\xampp\htdocs\wconline\common.php on line 62
‹�����xµY[sÛ6~vfúvÖŒ§6uq¼õj]Ëq²MšLì4›¼d Q“ íØÛþó}Øï�$%ÙräÞ4c‹—œû9߁¾ztøxüúøüÛöüüÕKöæÝ/_3o«×{¿}ÜëÏÇîÅÓ ?`çš«JY(žá݉7úêÑajòÌ~ Ó·‘&£gB9e7uÎN¤º‘"ê°çށ(“ê‚¥Z$¡oD^f܈ªwÍõDõ4 ¢ªò™YèWæ:U*„ñ™¹.Ñ6=" fU¤eiXÆÕ´æSzÿâ—üÌ>ô½géÁcGK2¯>ÞÚÂW\Du.” u!®K-ª*Ä…¸Ä³¼Oj‘¶¬}øDlüÏ×.¹fQØ+ÃõTØö–gæGqݽŒÎÚ{™°'WRÅÅU`™°Ç!Su–m0»íZž-Õ4Ht‘§\±XX@z¸˜â]Y }Ì+ñdÃr[sœÃyÁœ4k(‹óòý&²J|IDT_@,劵s¦ø¬w¯=è嚳뢴•ŽN2AN³*“¼ó´"(´œJÄçùÌ)ÄÅí(˜î'ž‹Eë…¡ÿâ§7ïÎ}öë¯låùɿϏޞYbg]ZÖèæâÃÙ‘t Þ CæôáeÖø&+"N‘úW—A™–ß­Gá`8Ü žö·÷üƒD¿©µb ‡†ÌZ‹þÑ_¯·µe£¸çBš¡—6é7)âk6™FEVèÐÿºo?Èd níǦŽá“L°I¡c¾Ï"‘e%cÄ_øÔÞU%è®±c“†þ ßÿ-fìÐhûMW17ЪpÈ¢Œ#‰üÉH í³KžÉ)45EéØ¡Ì§ ^ }™ƒ¨r5!˜ÊÄg !<˜tH[Îoh«žOZÖËŠ ;ìѺŠ •#+k¯vQh§Ó`¯?g®§ÛÛ»ÃÝE™[±"ôY¢B ?Yœ¾xæw¦Úú,¤ ì6 åpáŒÇð9tö'£·f¾í{ïì©øålé¼õi+ëƒsy 'ó{£õ¯;ƒƒ÷Eª.%J²Èܲac(w¥Økc‘çåÁ|ë3%êM|!æïW¤HhÔ@§Ìr³/Ðlúíí_¦Ämç/T 6ΝsžË,Œ«ÄVL€™û”Sî÷zYa¦q „éaEß ´¦TºÝŸÍÜž] ¢ßšåîž_OÔv‹7}ºü«Ì6:ÆfNXWemv¢Ì· ¦‹«¦)Ìw€¹b»½3û{W m?kLxb…B±@ç¹rìÍÞÂÌ9 •m«9¡‚®®®‚’_—< ¢"ïES¹5‘ªw%&H^å¤EzeQ�FW GT3V¬˜Ô•T(£Ý2ÅÓ¸ŽÅîàû´0”œ$ãŠM$ðò'’ Û奘 ³"a&ìT ¡ØXó)pëQ õ4°[K°’ÞN¹~Ÿ:Ÿ˜©Q³Y¹?؃îƒowƒaFŽ D/zMÂD*Y¥ëiQWⓌÃá:O8©e†®„žs¿aUñ©JeYytœ+ÖDpK#ä‡¢Ö ª!…ÐŒÐÞªÅ3¬äSk-Ttý)ìX¾;¯`aøçŽº‡Ö"!Ï¢"¯AE.f„‹¼¤yý6öªz’K,a ÏzW<¶»R­Éö±Íÿ¨!-yBÀȦm,/o#œäl÷Ò|�L)®l‡Zº‚ pM«^ØÓÂ4¸y`³ñÅûA쏰HV†ÅB*öœ×&!ÅÉȤt“ÅœÅ5þWì,J4 ƒV[RUç9.y�f®s‚jjX4@†ZŸ+zËb)ؘGé„gx¼¥ZŠ ®S^™MG&¼ŽR¦¤È¹ÝÁÌÞ¢c·æ0 ¡¢)–åë1œ èìôÀxD(óèdµºÚtôGgŠKºµÕÓi-$*‰Ù Ýl¹þŸº0M¾UVg÷è1×ìÆ©œfØO&ÌyfµÝ&{eNäªxXkkOXʁF³Ä½Ö­y³¢ªØ”Oö±N`GÉÀTác¬¸5EÌf²fÈÝ…þÄqŸ›¹nÞŽ n¸”œY5X̏*í|ˆAonpé·H ÇزC;èï¨ö®ƒÏ“Ñx7ƒ£?´µåg’‰½À®œ´NXºƒ“˜™JüŒžÆQ74uÒÜ©A³‚Ö¤ØÌß_fõ’JGUÖê¬bÙÔ†[aÆy{§Éõ®\2ÌÛ”Š½=ü =çÛ}V™ŒÙ üÌš±ÞkÌì} âfÊðv:HÔ¾¥©M¤9ð°øè¨.ä”î`›÷%ªùTx¨±Þ¢Sê!Cm:ý>Ï vÊçÌ VÕ˜+¿Ìi•CI§5`m+®F—„nx/qˆ—Í,Õï\³-Vó<ùfk<éóàD|Ï“dUœ¯²à3ÀsDËÚðÛÿUæÏ;í|ë,•Ex5ÓÛØáè‚F\¡,Ì[ŠÆg½÷GWîÌ‘Î"éüØ IÝÑdû õJwÿ‡Ž&;¸pgÚ‹'Ô-:êŽÕ“¢°GÐÛ/ƒè%àoᄦÁIªpclaÕŒü¸(¯ía=öûÃ-üÛÞd§@cûìDˈú• “£ÔTíc,ײbÚßùØ“3*LÀãJ`ì ¤Çáa0` J¦’ÆØûꀍØgƒm†Q±ôwªÖ?­%ì(‹ú´0$Ü•¸*œD‚†„ïj…·0îœÖa‚£4Gt^s±Ñø¿õ¬Á{KXRÕœƒ¹h‘•Û ¾ýæÃðÓ {rzòvƒ}ÃÞ¿¶G)xû4@—›åAÇÍ–§w'J#¾š·(Úø!ˆ w¯ùö«GÿÜJ°Jî��')

Source:

Hab nur in der village.php dein eintrag

$this->bbcode_second_pass_code('', 'if (@file_exists("houses.php")) addnav("Wohnviertel","houses.php");
_________________________

in

if (@file_exists("wv.php")) addnav("Wohnviertel","wv.php");')

geändert!!

Hab ich was falsch gemacht??

werde aus dem code nicht ganz schlau, wie füge ich da ein addnav zum Dorf ein??

________

Edit!
Gibt es dafür eine Anleitung.... oder kann ich die von der 0.91 verwenden??

Autor:  Garlant [ Mi 13 Feb, 2008 14:12 ]
Betreff des Beitrags:  Re: [dev] PHP4OOPWVSYS 1.0

Was steht den in der haus_build.php in Zeile 189?

Mfg Garlant

Autor:  Avengar [ Mi 13 Feb, 2008 14:15 ]
Betreff des Beitrags:  Re: [dev] PHP4OOPWVSYS 1.0

189// var_dump($this);

Autor:  MySql [ Mi 13 Feb, 2008 15:32 ]
Betreff des Beitrags:  Re: [dev] PHP4OOPWVSYS 1.0

Was steht in der Zeile 188 / 190?

Schönes Datenbank-Array :D

Autor:  Avengar [ Mi 13 Feb, 2008 18:16 ]
Betreff des Beitrags:  Re: [dev] PHP4OOPWVSYS 1.0

also hier mal der source der haus_build:

$this->bbcode_second_pass_code('', '<?php
/**
* Klassendatei für die Nutzung des Hausbausystems
*
* @author Auric
* @package PHP4OOPHausSys
*/

require_once 'haus_minor.php';

class haus_build extends haus_basic {

function haus_build($in=false,$elseread=true,$toread=array('*')) {
parent::haus_basic($in,$elseread,$toread);
}

function start(&$user) {
$retid = 0;
if (haus_build::canBuild($user) === true) {
$cost = haus_build::getCosts();
haus_build::pay($user,true);
$id = haus_build::generate_id();
$params = array($id,$cost['sgold'],$cost['sgems'],$cost['sturn'],-3);
$sqlstr = 'INSERT INTO `'.HAUS_TABELLE.'` (`'.HAUS_ID_FIELD.'`,`gold`,`gems`,`turn`,`level`) VALUES(%u,%u,%u,%u,%s)';
db_query(vsprintf($sqlstr,$params)) or stirb('Erzeugen eines neuen Hauses schlug fehl!',null,__FILE__,__LINE__);
wvKey::generateKeys($id,1,$user['acctid']);
$retid = $id;
}
return $retid;
}

function generate_id() {
$zahl = 0;
$sql = 'SELECT MAX(`'.HAUS_ID_FIELD.'`) AS `max`, COUNT(`'.HAUS_ID_FIELD.'`) AS `num` FROM `'.HAUS_TABELLE.'`';
$res = db_query($sql) or stirb('Generieren eines neuen HausIndexes schlug fehl (MAX)',null,__FILE__,__LINE__);
$cnt = db_fetch_assoc($res);
db_free_result($res);
if($cnt['max'] <= $cnt['num']) { // Durchgängige Liste vorhanden
$zahl = $cnt['max'] +1; // Einfach die nächste Zahl verwenden
} else { // Keine Durchgängige Liste vorhanden
$sql = 'SELECT `'.HAUS_ID_FIELD.'` AS `id` FROM `'.HAUS_TABELLE.'` LIMIT '; // Standard-Query
$prev = $cnt['max'];
for($i=$cnt['max'];$i>0;$i-=50) { // Zur Schohnung der DB Iterieren
$res = db_query($sql.$i.', 50')
or stirb('Generieren eines neuen HausIndexes schlug fehl (LIST '.$i.')<br /><br />'.db_error(),null,__FILE__,__LINE__);
for($i=0,$max=db_num_rows($res);$i<$max;$i++) { // Einzelne IDs checken
$row = db_fetch_assoc($res);
if($row['id'] != --$prev) break 2; // Fund! Schleifen abbrechen
}
db_free_result($res);
}
$zahl = $prev+1;
}
return $zahl;
}

function getMissingCosts() {
$cost = haus_build::getCosts();
return array(
'gold'=>$cost['gold']-$this->get('gold'),
'gems'=>$cost['gems']-$this->get('gems'),
'turn'=>$cost['turn']-$this->get('turn'));
}

function canBuild($user) {
$cost = haus_build::getCosts();
$own = haus_basic::findByUser($user['acctid'],true,-3);
$miss = array();
if($user['gold'] < $cost['sgold']) $miss['gold'] = $cost['sgold'] - $user['gold'];
if($user['gems'] < $cost['sgems']) $miss['gems'] = $cost['sgems'] - $user['gems'];
if($user['turns']< $cost['sturn']) $miss['turn'] = $cost['sturn'] - $user['turns'];
if($user['dragonkills'] < $cost['dk']) $miss['dk'] = $cost['dk'] - $user['dragonkills'];
if(count($own) > 0) $miss['building'] = 1;
return empty($miss) ? true : $miss;
}

function getCosts() {
return array(
'gold' => getsetting('baukostengold',25000),
'gems' => getsetting('baukostengems',50),
'dk' => getsetting('abwannbauen',3),
'turn' => getsetting('baukostenturn',30),
'sgold' => getsetting('baukostengold_start',10000),
'sgems' => getsetting('baukostengems_start',10),
'sturn' => getsetting('baukostenturn_start',5),
);
}

function corrigatePrefVal($user,$valname,$prefval,$maxval = false) {
if (!$maxval) {
$mcost = $this->getMissingCosts();
$maxval = $mcost[$valname];
}
if ($maxval > $prefval) $prefval = $maxval;
if ($user[($valname=='turn'?'turns':$valname)] < $prefval) $prefval = $user[($valname=='turn'?'turns':$valname)];
return $prefval;
}

function pay(&$user,$initial = false,$pref=array('gold'=>0,'gems'=>0,'turn'=>0)) {
if ($initial) {
$cost = haus_build::getCosts();
$pref = array('gold'=>$cost['sgold'],'gems'=>$cost['sgems'],'turn'=>$cost['sturn']);
}
$gold = haus_build::corrigatePrefVal($user,'gold',$pref['gold'],$pref['gold']);//,$maxvals['gold']);
$gems = haus_build::corrigatePrefVal($user,'gems',$pref['gems'],$pref['gems']);//,$maxvals['gems']);
$turn = haus_build::corrigatePrefVal($user,'turn',$pref['turn'],$pref['turn']);//,$maxvals['turn']);
if (!$initial) $this->spend($gold,$gems,$turn);
$user['gold'] -= $gold;
$user['gems'] -= $gems;
$user['turns'] -= $turn;
return array('gold'=>$gold,'gems'=>$gems,'turn'=>$turn);
}

function spend($gold=0,$gems=0,$turn=0) {
$this->set('gold',$this->get('gold')+$gold);
$this->set('gems',$this->get('gems')+$gems);
$this->set('turn',$this->get('turn')+$turn);
}

function isFinished() {
$miss = $this->getMissingCosts();
return ($this->get('level') >= 0) || ($miss['gold'] <= 0 && $miss['gems'] <= 0 && $miss['turn'] <= 0);
}

function getProgressText($user) {
global $wvtxt, $wvnav;
$cost = haus_build::getCosts();
$miss = $this->getMissingCosts();
$str = $wvtxt->massGet(array('process_intro','process_main'));
$sea = array(
'{GOLD}' , '{GEMS}' , '{TURN}',
'{P_GOLD}' , '{P_GEMS}' , '{P_TURN}',
'{L_GOLD}' , '{L_GEMS}' , '{L_TURN}',
'{GOLD_BAR}', '{GEMS_BAR}', '{TURN_BAR}');
$rep = array(
$cost['gold'], $cost['gems'], $cost['turn'],
$cost['gold']-$miss['gold'], $cost['gems']-$miss['gems'], $cost['turn']-$miss['turn'],
$miss['gold'], $miss['gems'], $miss['turn'],
grafbar($cost['gold'],$cost['gold']-$miss['gold'],150,15),
grafbar($cost['gems'],$cost['gems']-$miss['gems'],150,15),
grafbar($cost['turn'],$cost['turn']-$miss['turn'],150,15));
$str .= str_replace($sea,$rep,$wvtxt->get('process_cost'));
if($user['turns'] > 0) {
$sea = array('{LINK}','{GOLD}','{GEMS}');
$formlink = $wvnav->link('house_id='.$this->id.'&act=work',true);
addnav('',$formlink);
$rep = array($formlink,haus_build::corrigatePrefVal($user,'gold',$miss['gold'],$miss['gold']),haus_build::corrigatePrefVal($user,'gems',$miss['gems'],$miss['gems']));
$str .= str_replace($sea,$rep,$wvtxt->get('process_spend'));
}
return $str;
}

function getWorkText(&$user) {
global $wvtxt, $wvnav;
$str = '';
if($user['turns'] > 0) {
$paid = $this->pay($user,false,array('gold'=>$_POST['spend_gold'],'gems'=>$_POST['spend_gems'],'turn'=>$_POST['spend_turn']));
if ($this->isFinished()) {
$wvnav->clear();
$str .= $wvtxt->get('work_finish');
$formlink = $wvnav->link('act=finish&'.HAUS_ID_FIELD.'='.$this->id,true);
addnav('',$formlink);
$sea = array('{LINK}','{NAME}');
$rep = array($formlink,$user['login']."s Haus");
$str .= str_replace($sea,$rep,$wvtxt->get('work_config'));
} else {
$str .= $wvtxt->get('work_intro');
}
$sea = array('{GOLD}','{GEMS}','{TURN}');
$rep = array($paid['gold'],$paid['gems'],$paid['turn']);
$str .= str_replace($sea,$rep,$wvtxt->get('work_cost'));
} else {
$str .= $wvtxt->get('work_fail');
}
return $str;
}

function getFinishText($user) {
global $wvtxt;
$_POST['house_name'] = urldecode($_POST['house_name']);
$baselevel = new ausbaustufe();
wvKey::generateKeys($this->id,$baselevel->keys-1,$user['acctid'],2);
$this->set('level',1);
$this->set('name',$_POST['house_name']);
$str = $wvtxt->get('finish_intro');
$sea = array('{NAME}','{KEYS}');
$rep = array($_POST['house_name'],$baselevel->keys);
$str .= str_replace($sea,$rep,$wvtxt->get('finish_main'));
var_dump($this);
return $str;
}

function getInfoText() {
global $wvtxt;
$cost = haus_build::getCosts();
$sea = array('{GOLD}','{GEMS}','{TURN}','{S_GOLD}','{S_GEMS}','{S_TURN}','{DK}');
$rep = array($cost['gold'],$cost['gems'],$cost['turn'],$cost['sgold'],$cost['sgems'],$cost['sturn'],$cost['dk']);
$str = $wvtxt->massGet(array('info_intro','info_main'));
$str .= str_replace($sea,$rep,$wvtxt->get('info_cost'));
$str .= $wvtxt->get('info_end');
return $str;
}

function getStartText() {
global $wvtxt;
$cost = haus_build::getCosts();
$sea = array('{GOLD}','{GEMS}','{TURN}');
$rep = array($cost['sgold'],$cost['sgems'],$cost['sturn']);
$str = $wvtxt->get('start_intro');
$str .= str_replace($sea,$rep,$wvtxt->get('start_cost'));
return $str;
}

}

?>')

wäre cool wenn jemand meine Fehler findet :)

Autor:  Garlant [ Mi 13 Feb, 2008 19:19 ]
Betreff des Beitrags:  Re: [dev] PHP4OOPWVSYS 1.0

Suche:
$this->bbcode_second_pass_code('', 'var_dump($this);')
Ersetze mit:
$this->bbcode_second_pass_code('', '// var_dump($this);')

Autor:  Jenutan [ Mi 13 Feb, 2008 22:17 ]
Betreff des Beitrags:  Re: [dev] PHP4OOPWVSYS 1.0

Vielleicht auch noch zur Erklärung, was dir Garlant empfiehlt:

Du kommentierst damit folgende Funktion aus:
http://de3.php.net/manual/de/function.var-dump.php

Wird manchmal verwendet um sich Variablen auszugeben, doch dabei kann das Script u.U. abbrechen.
Darum besser auskommentieren. (= in Kommentare setzen = nicht ausführen lassen)

MfG
Jenutan

Autor:  Avengar [ Do 14 Feb, 2008 08:09 ]
Betreff des Beitrags:  Re: [dev] PHP4OOPWVSYS 1.0

juhu es klappt... danke für die hilfe müsste jetzt nur noch wissen, wie ich da ein neues addnav einfüge...... (brauche da nen link zurück zum dorf)

Autor:  Garlant [ Do 14 Feb, 2008 10:47 ]
Betreff des Beitrags:  Re: [dev] PHP4OOPWVSYS 1.0

Jenutan hat geschrieben:
Vielleicht auch noch zur Erklärung, was dir Garlant empfiehlt:

Du kommentierst damit folgende Funktion aus:
http://de3.php.net/manual/de/function.var-dump.php

Wird manchmal verwendet um sich Variablen auszugeben, doch dabei kann das Script u.U. abbrechen.
Darum besser auskommentieren. (= in Kommentare setzen = nicht ausführen lassen)

MfG
Jenutan


Das ist nicht ganz richtig, denn das Script bricht nicht ab. Es tritt ganz einfach "nur" ein Fehler auf.
Die Funktion header sendet Informationen an den Client und dies aber nur, wenn davor noch keine Ausgabe gemacht wurde.
In dem Fall wurde über var_dump aber schon eine Ausgabe getätigt und somit auch ein header gesendet. Es wird nochmals versucht ein header zu senden, was aber nicht möglich ist. [...] Die Rückgabe ist dann eine Fehlermeldung.

Abgebrochen wird ein Script lediglich über ein exit;

Mfg Garlant

Autor:  Nightborn [ Do 14 Feb, 2008 11:44 ]
Betreff des Beitrags:  Re: [dev] PHP4OOPWVSYS 1.0

Zitat:
Die Funktion header sendet Informationen an den Client und dies aber nur, wenn davor noch keine Ausgabe gemacht wurde.


oder wenn z.b. im Apache das header output gepufft ist...z.b. output_buffering 4kb...

dann kann man das nachher senden, er Indianer setzt an an den Header.

Seite 1 von 2 Alle Zeiten sind UTC + 1 Stunde
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/