anpera.net
http://anpera.homeip.net/phpbb3/

Nav zum Dorf
http://anpera.homeip.net/phpbb3/viewtopic.php?f=43&t=1760
Seite 1 von 1

Autor:  Darkness [ Sa 24 Sep, 2005 14:54 ]
Betreff des Beitrags:  Nav zum Dorf

Da bei mir manchmal (bei neu programmierten Scripten) das Problem auftrat, dass keine Navs erschienen sind, und der user somit "feststeckte"
habe ich etwas geschrieben, damit automatisch ein Nav zum Dorf erscheint, wenn keine anderen Navs da sind.

Einbau:
[php]Öffne common.php

Suche*:
function page_footer(){
$forumlink=getsetting("forum","http://lotgd.net/forum");
//$forumlink="http://www.anpera.net/forum/index.php?c=12#";
global $output,$nestedtags,$header,$nav,$session,$REMOTE_ADDR,$REQUEST_URI,$pagestarttime,$dbtimethishit,$dbqueriesthishit,$quickkeys,$template,$logd_version;

Füge danach ein:
if (!count($session[allowednavs])){
addnav("Navs beschädigt!");
addnav("Zurück zum Dorf","village.php");
addnav("Navs beschädigt!");
}[/php]

*Ich bin vom "Original" page_footer ausgegangen,
bei mir sieht das etwas anders aus, daher bin ich mir nicht 100% sicher, ob das auch so funktioniert.
Wer will, kann sich test.php runterladen und mit
if ($session[user][superuser]>2)addnav("Test.php","test.php");
im Dorf verlinken.
Dort kann man sehen, ob es auch richtig funktioniert.


EDIT:
So, habs mal überarbeitet, geht so einfachwandfrei.
Ist jetzt wenig zu ändern, aber meiner Meinung nach trotzdem nützlich^^

Danke an Eliwood

Autor:  Meteora [ Sa 24 Sep, 2005 17:11 ]
Betreff des Beitrags: 

Richtuger SQL-Befehl:

$this->bbcode_second_pass_code('', '
ALTER TABLE `accounts` ADD `badnav` TINYINT( 4 ) DEFAULT '0' NOT NULL
')

sonst gut gemacht

Autor:  Tidus [ Sa 24 Sep, 2005 17:36 ]
Betreff des Beitrags: 

krass^^ genau sowas hab ich geuscht *g*






alle anderen außer darkness diesen teil einfach ignoerieren *g*

Edit: Darkness meld dich doch mal bei mir es tut mir echt leid man -.-

Autor:  anpera [ Sa 24 Sep, 2005 17:50 ]
Betreff des Beitrags: 

Nun, das ist für die Spieler sehr komfortabel und erspart Admins die Reparatur von Accounts, birgt aber auch ein Risiko:

Fehlende Navs, wie sie von dieser Erweiterung abgefangen werden, kommen ausschließlich durch fehlerhaften Code zustande. Bei fehlerfreiem Code ist diese Erweiterung also nicht nötig.
Und wenn es nach einem Fehler trotzdem weiter geht, werden sich noch weniger Spieler aufgefordert fühlen, den Fehler zu melden - und einige Admins/Schreiberlinge würden wohl darauf verzichten, ihre Nav-Fehler überhaupt noch zu suchen.

Für Entwicklungssysteme durchaus geeignet, aber für laufende Server sollte die Erweiterung nicht nötig sein. Auch im Hinblick auf die Änderungen bezüglich der Platzierung von Navs und page_header() im Code. Da könnte diese Lösung auf manchem Server mehr Probleme mit eigentlich fehlerfreiem Code verursachen, als sie bei fehlerhaftem Code "beseitigt".

Ansonsten ne nette Idee :)

Autor:  Tidus [ Sa 24 Sep, 2005 18:26 ]
Betreff des Beitrags: 

hmm hmmm also dann eigentlich doch net ganz so doll ... naja aber ich find trotzdem das es ne gute idee ist^^ bei mir im wald kommen manchmal leere ereignisse da hilft das vorerst xD

Autor:  Darkness [ Do 29 Sep, 2005 12:06 ]
Betreff des Beitrags: 

anpera hat geschrieben:
Nun, das ist für die Spieler sehr komfortabel und erspart Admins die Reparatur von Accounts, birgt aber auch ein Risiko:

Fehlende Navs, wie sie von dieser Erweiterung abgefangen werden, kommen ausschließlich durch fehlerhaften Code zustande. Bei fehlerfreiem Code ist diese Erweiterung also nicht nötig.
Und wenn es nach einem Fehler trotzdem weiter geht, werden sich noch weniger Spieler aufgefordert fühlen, den Fehler zu melden - und einige Admins/Schreiberlinge würden wohl darauf verzichten, ihre Nav-Fehler überhaupt noch zu suchen.

Für Entwicklungssysteme durchaus geeignet, aber für laufende Server sollte die Erweiterung nicht nötig sein. Auch im Hinblick auf die Änderungen bezüglich der Platzierung von Navs und page_header() im Code. Da könnte diese Lösung auf manchem Server mehr Probleme mit eigentlich fehlerfreiem Code verursachen, als sie bei fehlerhaftem Code "beseitigt".

Ansonsten ne nette Idee :)

Naja, das dies für Entwicklichssysteme und nicht für laufende Server gedacht ist, erklärt sich ja von selbst.
Das es nicht die perfekte Lösugn Lösung ist, uist mir auch klar, aber bei mir btachte es bisher keine Probleme und es ist fr micjh wesentlich besser, als wenn ich jeden User selbst "rausholen" müsste wenn etwas mit den Navs nicht klappt.
Und mich hält das sicher nicht vom reparieren des COdes ab

Autor:  Elfenkrieger [ Do 03 Nov, 2005 15:58 ]
Betreff des Beitrags: 

Hab ne Frage...
Kann man das irgendwie umschreiben, das das special "beleidigterpirat" ausgenommen ist???
is halt doch ein bissle blöd, wenn man am verlieren ist, und dann auf "zurück zum Dorf" klicken kann...

lg

p.s. lasst euch nicht von meinem Alter täuschen...
ich versteh schon verdammt viel von dem ganzen :D

Autor:  Devilzimti [ Do 03 Nov, 2005 16:45 ]
Betreff des Beitrags: 

Elfenkrieger hat geschrieben:
p.s. lasst euch nicht von meinem Alter täuschen...
ich versteh schon verdammt viel von dem ganzen :D

Aja :D
Mein Alter is eh ne Fake *hrhrhr*

[php]SUCHE:
if ($session[user][badnav]==0){
addnav("Navs beschädigt!");
addnav("Zurück zum Dorf","village.php");
addnav("Navs beschädigt!");
}

ERSETZE ES MIT:
if ($session[user][badnav]==0 && $sesssion['user']['specialinc']<>"beleidigterpriat.php"){
addnav("Navs beschädigt!");
addnav("Zurück zum Dorf","village.php");
addnav("Navs beschädigt!");
} [/php]

Bin mir net sicher wie der Dateienname des Events ist..
Musst möglicherweise anpassen :nene:

Autor:  Darkness [ Do 03 Nov, 2005 18:44 ]
Betreff des Beitrags: 

Ne, ich hab da nen kleinen Fehler gemacht,
hab ich bei mir schon behoben, aber hier vergessen...

da saß was an der falschen stelle, es muss nicht

[php]function addnav($text,$link=false,$priv=false,$pop=false,$newwin=false){
global $nav,$session,$accesskeys,$REQUEST_URI,$quickkeys;
$text = translate($text);
/*
if (date("m-d")=="04-01"){
$text = borkalize($text);
}
*/
if ($link===false){
$nav.=templatereplace("navhead",array("title"=>appoencode($text,$priv)));
}elseif ($link === "") {
$nav.=templatereplace("navhelp",array("text"=>appoencode($text,$priv)));
}else{
if ($text!=""){

Füge danach ein:
$session[user][badnav]=1;[/php]
heißen sondern:
[php]function addnav($text,$link=false,$priv=false,$pop=false,$newwin=false){
global $nav,$session,$accesskeys,$REQUEST_URI,$quickkeys;
$text = translate($text);
/*
if (date("m-d")=="04-01"){
$text = borkalize($text);
}
*/
if ($link===false){
$nav.=templatereplace("navhead",array("title"=>appoencode($text,$priv)));
}elseif ($link === "") {
$nav.=templatereplace("navhelp",array("text"=>appoencode($text,$priv)));
}else{

Füge danach ein:
$session[user][badnav]=1;[/php]

so kommt keine meldung wenn ein Nav ohne text (wie z.b. in beleidigter priat oder oldmanbet.php) vorkommt.
sry, hab ich anfangs nicht bedacht

Autor:  Elfenkrieger [ Do 03 Nov, 2005 18:48 ]
Betreff des Beitrags: 

Zitat:
SUCHE:
if ($session[user][badnav]==0){
addnav("Navs beschädigt!");
addnav("Zurück zum Dorf","village.php");
addnav("Navs beschädigt!");
}

ERSETZE ES MIT:
if ($session[user][badnav]==0 && $sesssion['user']['specialinc]<>"beleidigterpriat.php"){
addnav("Navs beschädigt!");
addnav("Zurück zum Dorf","village.php");
addnav("Navs beschädigt!");
}


Danke, hat gefunzt... aber kleina Fehler, an dem so manch unerfahrener scheitert^^:
[php]$sesssion['user']['specialinc']<>"beleidigterpriat.php"){[/php]

Autor:  Devilzimti [ Do 03 Nov, 2005 19:01 ]
Betreff des Beitrags: 

hatte ein ' nach specialinc vergessen..

Autor:  Eliwood [ Do 03 Nov, 2005 20:46 ]
Betreff des Beitrags:  Re: Nav zum Dorf

Sooo... eine Frage:
Warum ein zusätzliches Feld?


Alles, was du zum checken der Navs hast, ist gegeben.

if(count($session['allowednavs']) == 0)

Das reicht völlig aus, damit verhinderst du sogar noch den Fehler beim Piraten mit, sowie das in der village ist so überflüssig. ;)


(Und Superuser mit gebrochenen Navs bekommen ab ext GER 3 auch keine Meldung, weil sie auf "Anfragen" klicken können.)


Aber ansonsten:
Nette Idee :)

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