Hallo, Gast! (Registrieren)

Letzte Ankündigung: MyBB 1.8.38 veröffentlicht (30.04.24)


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