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

[Admin-Mod] Fast Nav
http://anpera.homeip.net/phpbb3/viewtopic.php?f=43&t=4423
Seite 1 von 1

Autor:  MySql [ So 23 Mär, 2008 00:45 ]
Betreff des Beitrags:  [Admin-Mod] Fast Nav

Frohe Osteeern,

Ja der Hartas, hat mich vorhin auf ne Idee gebracht. o.O
Ich sagte ja, das man es so einbauen kann, das der Admin keine Badnav's mehr hat.
Nun.... Hartas, sagte mir dann per PN, das man dann die Badnav's die, die Spieler haben nicht erkenne können...
Was natürlich auch stimmt... Also habe ich mir überlegt, wie man einem Superuser, gestatten kann, zu jedem beliebigen Ort zu switchen, ohne Ihm die Badnav verweigerung zu erlauben... Dabei ist der Mod "Fast Nav" herraus gekommen!
Dazu auch ein Editor... Nun... Habe einfach den Titel-Editor von mir zum Fast Nav editor umgeschrieben, daher ich gerade nicht die größte Lust hatte nochmal nen neuen zu schreiben, wo doch einer vorhanden ist. Mal sehen, vielleicht bekommt Fast Nav auch mal seinen eigenen Editor, doch gehen tut es auch, mit dem Editor der mit im *.zip / *.rar ist!

Einbau:^^

Öffne deine Common.php und füge an eine beliebige Stelle diese Funktion ein: (ABER IN KEINE ANDERE FUNKTION!!!!!!)

$this->bbcode_second_pass_code('', '
# Fast Nav by MySQL
Function fast_nav ()
{
Global $fast_nav;
$fast_nav .= "<select onchange='if(this.options[this.selectedIndex].value != \"#\") { window.location=this.options[this.selectedIndex].value }'>";
$fast_nav .= '<option value="#">Schnell Navi</option>';
$select_nav = db_query('SELECT * FROM fast_nav ORDER BY name ASC');

If (db_num_rows($select_nav) == 0):

$fast_nav .= '<option value="#">Keine Navs!</option>';

Else:

While ($row_nav = db_fetch_assoc($select_nav)):

$fast_nav .= '<option value="'.$row_nav['link'].'">'.$row_nav['name'].'</option>';
Addnav('',$row_nav['link']);

Endwhile;

Endif;

$fast_nav .= '</select>';
Return $fast_nav;
}')

Dann suchst du:

$this->bbcode_second_pass_code('', '
$charstat=appoencode(templatereplace("statstart")
.templatereplace("stathead",array("title"=>"Vital Info"))
.templatereplace("statrow",array("title"=>"Name","value"=>appoencode($u[name],false)))
,true);')

und Fügst danach ein:

$this->bbcode_second_pass_code('', '
If ($session['user']['superuser'] > 2):
$charstat.=appoencode(
templatereplace("statrow",array("title"=>"Navi:","value"=>fast_nav()))
,true);
Endif;')

Schließ die common und ladet Sie auf den Server.

Dann fügt Ihr das in phpMyAdmin ein:

$this->bbcode_second_pass_code('', 'CREATE TABLE fast_nav (
id INT( 11 ) unsigned NOT NULL auto_increment,
link VARCHAR( 55 ) NOT NULL default '#',
name VARCHAR( 100 ) NOT NULL,
PRIMARY KEY (id)
) Type=MyISAM;

INSERT INTO fast_nav (id, link, name) VALUES (1, 'academy.php', 'Akademie');
INSERT INTO fast_nav (id, link, name) VALUES (2, 'armor.php', 'Rüstungsladen');
INSERT INTO fast_nav (id, link, name) VALUES (3, 'armoreditor.php', 'Editor: Rüstungen');
INSERT INTO fast_nav (id, link, name) VALUES (4, 'avatars.php', 'Editor: Avatare');
INSERT INTO fast_nav (id, link, name) VALUES (5, 'badword.php', 'BadWord-Editor');
INSERT INTO fast_nav (id, link, name) VALUES (6, 'bank.php', 'Die alte Bank');
INSERT INTO fast_nav (id, link, name) VALUES (7, 'battlearena.php', 'Die Arena');
INSERT INTO fast_nav (id, link, name) VALUES (8, 'beggar.php', 'Der Bettelstein');
INSERT INTO fast_nav (id, link, name) VALUES (9, 'bios.php', 'Editor: Biographien');
INSERT INTO fast_nav (id, link, name) VALUES (10, 'configuration.php', 'Spieleinstellungen');
INSERT INTO fast_nav (id, link, name) VALUES (11, 'creatures.php', 'Editor: Kreaturen');
INSERT INTO fast_nav (id, link, name) VALUES (12, 'dag.php', 'Dag Durnicks');
INSERT INTO fast_nav (id, link, name) VALUES (13, 'donators.php', 'Editor: Donation');
INSERT INTO fast_nav (id, link, name) VALUES (14, 'dragon.php', 'Der Drachen');
INSERT INTO fast_nav (id, link, name) VALUES (15, 'forest.php', 'Der Wald');
INSERT INTO fast_nav (id, link, name) VALUES (16, 'gardens.php', 'Die Gärten');
INSERT INTO fast_nav (id, link, name) VALUES (17, 'graveyard.php', '(R) Der Friedhof');
INSERT INTO fast_nav (id, link, name) VALUES (18, 'gypsy.php', 'Die Zigeunerin');
INSERT INTO fast_nav (id, link, name) VALUES (19, 'healer.php', 'Der Heiler');
INSERT INTO fast_nav (id, link, name) VALUES (20, 'hexe.php', 'Die Hexe');
INSERT INTO fast_nav (id, link, name) VALUES (21, 'hof.php', 'Die Ruhmeshalle');
INSERT INTO fast_nav (id, link, name) VALUES (22, 'houses.php', 'Das Wohnviertel');
INSERT INTO fast_nav (id, link, name) VALUES (23, 'inn.php', 'Die Schenke');
INSERT INTO fast_nav (id, link, name) VALUES (24, 'innboard.php', 'Editor: Schwarzes Brett');
INSERT INTO fast_nav (id, link, name) VALUES (25, 'invhandler.php', 'Das Inventar');
INSERT INTO fast_nav (id, link, name) VALUES (26, 'itemeditor.php', 'Editor: Items');
INSERT INTO fast_nav (id, link, name) VALUES (27, 'list.php', 'Die Kämpferliste');
INSERT INTO fast_nav (id, link, name) VALUES (28, 'lodge.php', 'Die Jägerhütte');
INSERT INTO fast_nav (id, link, name) VALUES (29, 'logs.php', 'Editor: Logs & Mail');
INSERT INTO fast_nav (id, link, name) VALUES (30, 'lottery.php', 'Die Lottery');
INSERT INTO fast_nav (id, link, name) VALUES (31, 'mounts.php', 'Editor: Stalltiere');
INSERT INTO fast_nav (id, link, name) VALUES (32, 'newday.php', 'Neuer Tag');
INSERT INTO fast_nav (id, link, name) VALUES (33, 'newgiftshop.php', 'Der Geschenckeladen');
INSERT INTO fast_nav (id, link, name) VALUES (34, 'olddrawl.php', 'Old Drawls Tisch');
INSERT INTO fast_nav (id, link, name) VALUES (35, 'outhouse.php', 'Das Plumpsklo');
INSERT INTO fast_nav (id, link, name) VALUES (37, 'prefs.php', 'Dein Profil');
INSERT INTO fast_nav (id, link, name) VALUES (38, 'pvp.php', 'Die Felder');
INSERT INTO fast_nav (id, link, name) VALUES (39, 'pvparena.php', 'Kämpferarena');
INSERT INTO fast_nav (id, link, name) VALUES (40, 'rebirth.php' 'Schrein der Erneuerung');
INSERT INTO fast_nav (id, link, name) VALUES (41, 'referers.php', 'Referers');
INSERT INTO fast_nav (id, link, name) VALUES (42, 'referral.php', 'Empfehlungen');
INSERT INTO fast_nav (id, link, name) VALUES (43, 'retitle.php', 'Retitiler');
INSERT INTO fast_nav (id, link, name) VALUES (44, 'rock.php', 'Club der Veteranen');
INSERT INTO fast_nav (id, link, name) VALUES (45, 'shades.php', '(R) Die Schatten');
INSERT INTO fast_nav (id, link, name) VALUES (46, 'shrine.php', 'Schrein des Ramius');
INSERT INTO fast_nav (id, link, name) VALUES (47, 'stables.php', 'Merricks Ställe');
INSERT INTO fast_nav (id, link, name) VALUES (48, 'stats.php', 'Stats');
INSERT INTO fast_nav (id, link, name) VALUES (49, 'stonesgame.php', 'Steinchenglückspiel');
INSERT INTO fast_nav (id, link, name) VALUES (50, 'styx.php', '(R) Fluss der Seelen');
INSERT INTO fast_nav (id, link, name) VALUES (51, 'suhouses.php', 'Hausmeister');
INSERT INTO fast_nav (id, link, name) VALUES (52, 'superuser.php', 'Admin Grotte');
INSERT INTO fast_nav (id, link, name) VALUES (53, 'taunt.php', 'Editor: Spott');
INSERT INTO fast_nav (id, link, name) VALUES (54, 'train.php', 'Das Trainingslager');
INSERT INTO fast_nav (id, link, name) VALUES (55, 'user.php', 'Editor: User');
INSERT INTO fast_nav (id, link, name) VALUES (56, 'vendor.php', 'Der Wandlerhändler');
INSERT INTO fast_nav (id, link, name) VALUES (57, 'viewpetition.php', 'Editor: Anfragen');
INSERT INTO fast_nav (id, link, name) VALUES (58, 'village.php', 'Der Stadtplatz');
INSERT INTO fast_nav (id, link, name) VALUES (59, 'weaponeditor.php', 'Editor: Waffen');
INSERT INTO fast_nav (id, link, name) VALUES (60, 'weapons.php', 'Waffenladen');
INSERT INTO fast_nav (id, link, name) VALUES (61, 'well.php', 'Der Dorfbrunnen');')

Und fertig!

Dateianhänge:
fast_nav.zip [2.44 KIB]
56-mal heruntergeladen
fast_nav.rar [2.36 KIB]
46-mal heruntergeladen

Autor:  Montekar [ So 23 Mär, 2008 20:38 ]
Betreff des Beitrags:  Re: [Admin-Mod] Fast Nav

Ist soweit ich weiß nichts neues, ich habe etwas ähnliches auf meinem Testserver, allerdings reicht da ein Eingabefeld mit Submit-Button und eine Datei, die (,sofern die Datei vorhanden ist,) weiterleitet.

Autor:  MySql [ Mo 24 Mär, 2008 13:34 ]
Betreff des Beitrags:  Re: [Admin-Mod] Fast Nav

Naja... in dem Sinne ist es doch schon neu, dahr es noch niemand Public gestellt hat!

PS: Sig...

Autor:  dragonslayer [ Mo 24 Mär, 2008 13:46 ]
Betreff des Beitrags:  Re: [Admin-Mod] Fast Nav

Ist eine nette Idee, bedenke aber folgendes:
Addnav ist ne Funktion die auch nicht wenig macht. Also wird das die Seitenladezeit ganz schön erhöhen. Gut, bei wenigen Mods ist das nicht wild, aber wenn du 20 Mods hast die ebenfalls ordentlich mitklickern merkt man das schon. Außerdem ists eine weitere DB Abfrage beim Seitenabruf. Ich find dieMod gut, ich würds aber anders angehen.

Einmal einlesen, dann DB Ergebnis cachen und nur wenn der Mod drauf klickt die Dropdownbox füllen. Macht zwar mehr code, aber hält dein LOTGD flott.

Außerdem sollte/könnte man das in den Prefs für die Mods an und abschaltbar machen, denn nicht jeder mag so eine große "hässliche" Box in der Liste haben.

Wie gesagt, ich finds gut, ich baus bei mir vielleicht nachher mal ein, aber eben etwas anders und ohne DB dahinter, das ist mir zu fett und jede DB Abfrage ist böse :-D

Ps:
Wieso hast du dir so eine komische Programmiersemantik angewöhnt? Alle Wörter groß? die eher unkonventionelle if else Schreibweise?

Autor:  Montekar [ Mo 24 Mär, 2008 15:54 ]
Betreff des Beitrags:  Re: [Admin-Mod] Fast Nav

Abschalten kann man meine Lösung zwar nicht, aber es gibt keine zusätzliche Datenbank-Abfrage und nur 1 addnav.

PHP:
if ($session['user']['superuser']) {

addnav("","schnellnavi.php");
$charstat.="<form action='schnellnavi.php' method='post'>";
$charstat.="<input type='text' name='file' size='18'><input type='submit' value='Los' class='button'>";
$charstat.="<input type='hidden' name='back' value='".basename($_SERVER['PHP_SELF'])."'></form>";

}


Das ganze in die common.php, dazu diese Datei (schnellnavi.php) einbauen und es geht auch.

PHP:
<?
require_once "common.php";
$ziel = explode(".php",$_POST['file']);
if (file_exists($ziel['0'].".php")) {

redirect($_POST['file']);

} else {

redirect($_POST['back']);

}

page_footer();
?>

Autor:  MySql [ Mo 24 Mär, 2008 16:54 ]
Betreff des Beitrags:  Re: [Admin-Mod] Fast Nav

$this->bbcode_second_pass_code('', '
If ($sesion['user']['prefs']['see_switch'] == true && $session['user']['superuser'] == X):
# Befehle
Endif;
')

Man kann es also nicht abschalten? :?

- So. PC futsch..

Autor:  Montekar [ Mo 24 Mär, 2008 19:10 ]
Betreff des Beitrags:  Re: [Admin-Mod] Fast Nav

MySql hat geschrieben:
$this->bbcode_second_pass_code('', '
If ($sesion['user']['prefs']['see_switch'] == true && $session['user']['superuser'] == X):
# Befehle
Endif;
')

Man kann es also nicht abschalten? :?

- So. PC futsch..


Nein, ohne Änderungen, die ich noch nicht gemacht habe, ist es nicht Möglich. Was nicht bedeutet, das es unmöglich ist. Und warum verwendest du die alternative Syntax?

Autor:  Harthas [ Mo 24 Mär, 2008 21:46 ]
Betreff des Beitrags:  Re: [Admin-Mod] Fast Nav

Montekar... Eine Frage.
Was ist, wenn man beispielsweise nach testdatei.php?op=hier&parameter=das will? ;-)

Autor:  dragonslayer [ Di 25 Mär, 2008 09:07 ]
Betreff des Beitrags:  Re: [Admin-Mod] Fast Nav

Dann nehm wa den...glaub ich

$this->bbcode_second_pass_code('', '$arr_path = explode("?",$_POST['file']);

$arr_path_info = pathinfo($arr_path[0]);
$str_file = ($arr_path_info['dirname'] != ''?$arr_path_info['dirname'].'/':'').$arr_path_info['dirname'];
if(file_exists($str_file) == true)
{
addnav('',$str_file.'?'.$arr_path[1]);
...
}')

Autor:  Montekar [ Mi 26 Mär, 2008 13:45 ]
Betreff des Beitrags:  Re: [Admin-Mod] Fast Nav

Gib mal bitte paths.php?ziel=graeultat&op=escape ein, Harthas ;) (ohne Änderungen) Geht aber nur bei specials, die dann noch nicht zuende sind, aber das ist soweit ich weiß eine normale Beschränkung der paths.php.

Autor:  MySql [ Fr 28 Mär, 2008 02:31 ]
Betreff des Beitrags:  Re: [Admin-Mod] Fast Nav

Dragonslyer hat geschrieben:
Wie gesagt, ich finds gut, ich baus bei mir vielleicht nachher mal ein, aber eben etwas anders und ohne DB dahinter, das ist mir zu fett und jede DB Abfrage ist böse :-D


Mal schaun, vielleicht arbeite ich mich mal in die Kunst der FTP Funktionen ein und "versuche" es mal als Text-Mod zuveröffentlichen. Nur vielleicht..

Naja "Fett" ist Sie bestimmt nicht *g, eher "Saftig" *fg

Edit:

Ich wunder mich gerade *g, das auslesen, klappt direkt beim ersten versuch *fg, *sich mal bei Auric für sscanf bedank :), doch damit ging es leider nicht, fscanf musste her :)

$this->bbcode_second_pass_code('', 'output('<table><tr><td>id</td><td>title</td><td>linker</td></tr>',true);
$data = fopen ("text.txt","r");
while ($auslesen = fscanf($data, "(%u) %s (%s)"))
{
list($data_id, $data_title, $data_linker) = $auslesen;
output('<tr><td>'.$data_id.'</td><td>'.$data_title.'</td><td>'.$data_linker.'</td></tr>',true);

}

output('</table>',true);')

Sieht noch krüppelhaft aus, wollte erst einmal schaun, ob der das überhaupt ausliest.. *g

Autor:  Auric [ Fr 28 Mär, 2008 17:43 ]
Betreff des Beitrags:  Re: [Admin-Mod] Fast Nav

sscanf ist die variante für Strings während fscanf die für files ist... hängt halt immer davon ab, worin du sichen willst ;-)

Autor:  MySql [ Fr 28 Mär, 2008 17:50 ]
Betreff des Beitrags:  Re: [Admin-Mod] Fast Nav

Auric hat geschrieben:
sscanf ist die variante für Strings während fscanf die für files ist... hängt halt immer davon ab, worin du sichen willst ;-)


Stimmt, musste mich dort erst rein lesen.. *g
Das klappt bisher alles wunderbar.. Einzelne Zeilen löschen, Details einzelner Zeilen (auf Linkklick) anzeigen, eine neue Zeile hinzufügen etc. funktioniert alles, nur bin ich noch nicht dahinter gestiegen, wie man eine einzelne Zeile bearbeitet. Nun ja, reicht ja auch wenn man sie genrell bearbeitet.. Mal schaun..

*push* , phps

Steht aber noch net so viel drin *g, hatte es vorher im reinen php gestestet, mit echo usw.

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