Hallo, Gast! (Registrieren)

Letzte Ankündigung: MyBB 1.8.39 veröffentlicht (02.06.25)


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste
BB Code
#11
Hi,

und wie lautet diese? bei preg_replace ist $1 die Variable, die angibt, was zwischen [player] und [/player] steht, also wenn ich [player]blablae[/player] schreibe, ist $1 = "blablae".

lg
Zitieren
#12
Du musst die Funktion preg_replace_callback benutzen.

Gruß,
Michael
[Bild: banner.png]
Support erfolgt NUR im Forum!
Bitte gelöste Themen als "erledigt" markieren.
Beiträge mit mangelhafter Rechtschreibung/Grammatik werden kommentarlos gelöscht.
Zitieren
#13
Danke, funktioniert nun alles. Noch Feinarbeiten, dann kann ich meinen ersten Hack veröffentlichen *freu* Big Grin

lg
Zitieren
#14
Ich schon wieder Big Grin

Ich hab noch einen Fehler:

PHP-Code:
function get_villageid($x, $y){
global
$db;
if(isset(
$x) and isset($y)) {
$query = $db->simple_select(TABLE_PREFIX."ds_villages", "*", "x = '".$x."' AND y = '".$y."'");
$dsvillage = $db->fetch_array($query);
if (isset(
$dsvillage['id'])) {
return
$dsvillage['id'];
}else{
return
"false"; // überall so beabsichtigt!
}
}else{
return
"false"; // überall so beabsichtigt!
}
}

Liefert false (ja extra als string) zurück, obwohl das ganze in der Datenbank enthalten ist.
var_dumps:
$query
resource(59) of type (mysql result)
resource(61) of type (mysql result)
$dsvillage
bool(false)
bool(false)

Der BB Code [village] wurde in dem Thread zweimal angewandt, die $x und $y Werte werden richtig übergeben.
Eine Suche per phpmyadmin hat ergeben, dass das Dorf vorhanden ist.
Auch wenn ich $db nicht verwende und mysql_query() und mysql_fetch_array() selber nutze, bekomme ich false zurück. Mit dem gleichen mysql_query Befehl kann ich aber in der phpmyadmin suchen!

Was mache ich falsch?

Danke im Vorraus!

lg

/edit: Die Funktion:
PHP-Code:
function dsbb_village($vstring){
global
$mybb, $lang;
$world = $mybb->settings['dsbb_world'];
$dsdomain = get_serverdomain($world);
$vid = get_villageid($vstring[1], $vstring[2]);
if(
$vid == "false") {
return
$vstring[1].'|'.$vstring[2].' ('.$lang->village_na.')';
}else{
return
'<a href="'.$dsdomain.'/page.php?page=inbound&screen=info_village&id='.$vid.'">'.get_villagename($vid).'</a>';
}
}
Und
PHP-Code:
function dsbbcodes_run($message) {
global
$mybb, $lang;
$lang->load("dsbbcodes");
require_once(
MYBB_ROOT."inc/functions_dsbb.php");

$message = preg_replace_callback("#\[player\](.*?)\[/player\]#i", "dsbb_player", $message);
$message = preg_replace_callback("#\[ally\](.*?)\[/ally\]#i", "dsbb_ally", $message);
$message = preg_replace_callback("#\[village\](.*?)\|(.*?)\[/village\]#i", "dsbb_village", $message);
return
$message;

}

In der Plugin Datei.
Vielen Dank für eure Antworten -.-
Zitieren
#15
Ich sehe leider keinen Fehler im Code, vermutlich musst du Zeile für Zeile debuggen. Befindet sich die Tabelle PREFIX_ds_villages in der gleichen Datenbank wie die Tabellen des Forums?

Gruß,
Michael
[Bild: banner.png]
Support erfolgt NUR im Forum!
Bitte gelöste Themen als "erledigt" markieren.
Beiträge mit mangelhafter Rechtschreibung/Grammatik werden kommentarlos gelöscht.
Zitieren
#16
Ja, befindet sie sich.

Dazu auch mal der Hilfe Artikel über die Weltdaten, wobei diese hier auch richtig importiert werden...

http://de10.die-staemme.de/help2.php?article=map_data
Zitieren
#17
Hallo Chrissi,

Ist dein Addon öffentlich verfügbar? Ich würde es mir gerne anschauen und gegebenfalls gerne einbauen, wenn du nichts dagegen hast.

Gruß

Markus
Zitieren