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
Danke, funktioniert nun alles. Noch Feinarbeiten, dann kann ich meinen ersten Hack veröffentlichen *freu*
lg
Ich schon wieder
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 -.-
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?
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