MyBB.de Forum

Normale Version: BB Code
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
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
Du musst die Funktion preg_replace_callback benutzen.
Danke, funktioniert nun alles. Noch Feinarbeiten, dann kann ich meinen ersten Hack veröffentlichen *freu* Big Grin

lg
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 -.-
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?
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
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
Seiten: 1 2