MyBB.de Forum
BB Code - Druckversion

+- MyBB.de Forum (https://www.mybb.de/forum)
+-- Forum: Anpassungen (https://www.mybb.de/forum/forum-47.html)
+--- Forum: Plugin-Diskussionen (https://www.mybb.de/forum/forum-38.html)
+--- Thema: BB Code (/thread-7326.html)

Seiten: Seiten: 1 2


BB Code - Chrissi - 07.10.2007

Hi,

ich bin gerade dabei ein Plugin für die BB Codes eines Browsergames zu schreiben bzw. fürs MyBB anzupassen.
Der Code sieht so aus:
PHP-Code:
function dsbbcodes_run() {
  global 
$mybb;
  include(
'get_id.php');
  
  function 
get_serverdomain($servername) {
  
$file file_get_contents('http://www.die-staemme.de/backend/get_servers.php');
  
$servers unserialize($file);
  
$domain $servers[$servername];
  
  if (empty(
$domain)) {
    return 
false;
  }
  else
  {
    return 
$domain;
  }
  }
  
  
$world $mybb->settings['dsbb_world'];
  
$domain get_serverdomain($world);

//Tag [player]
if(strpos($message,"\[player\]")){
  
$message=preg_replace("\[player\](.*?)\[/player\]",'<a href='.$domain.'/game.php?screen=info_player&id='.get_id_of_player($1).' target="_blank">'.$1.'</a>',$message);
    return 
$message;


natürlich mit dem ganzen anderen zeugs, blabla aktivierung etc,
natürlich ist auch das
PHP-Code:
$plugins->add_hook("parse_message""dsbbcodes_run"); 
drin, jedoch bekomme ich eine Fehlermeldung wenn ich das AdminCP betreten will:
Zitat:Parse error: syntax error, unexpected T_LNUMBER, expecting T_VARIABLE or '$' in C:\Users\Christopher\Desktop\xampp\htdocs\mybb\inc\plugins\dsbbcodes.php on line 152

Zeile 152 ist diese:
PHP-Code:
$message=preg_replace("\[player\](.*?)\[/player\]",'<a href='.$domain.'/game.php?screen=info_player&id='.get_id_of_player($1).' target="_blank">'.$1.'</a>',$message); 

get_id.php (ein Teil davon):
PHP-Code:
function get_id_of_player($name){
$selectname="SELECT * FROM ".TABLE_PREFIX."ds_tribe WHERE name='".$name."' LIMIT 1";
$ergebnis=mysql_query($selectname) or die("Fehler beim suchen von der Playerid im Code: <b>".$selectname."</b>".mysql_error());
if(
$player=mysql_fetch_assoc($ergebnis)){
  return 
$player['id'];
}else{
  return 
111111;
}


Was mache ich falsch?

lg


RE: BB Code - Chrissi - 07.10.2007

Okay, einen Fehler hab ich.

Jedoch: Wie mache ich das mit der get_id ?

Der Code sieht nun so aus:
PHP-Code:
//Tag [player]
if(strpos($message,"\[player\]")){
  
$message preg_replace("\[player\](.*?)\[/player\]"'<a href='.$domain.'/game.php?screen=info_player&id='.get_id_of_player('$1').' target="_blank">$1</a>'$message);
    return 
$message;


Fehler:
Zitat:Fatal error: Cannot redeclare get_id_of_player() (previously declared in C:\Users\Christopher\Desktop\xampp\htdocs\mybb\get_id.php:2) in C:\Users\Christopher\Desktop\xampp\htdocs\mybb\get_id.php on line 10



RE: BB Code - StefanT - 07.10.2007

Die Funktion "get_id_of_player()" ist in der get_id.php 2x definiert. Das ist nicht erlaubt.


RE: BB Code - Chrissi - 07.10.2007

Zeile 10 ist aber nur das Ende der get_id_of_player, die endklammer }.

Zitat:function get_id_of_player($name){
$selectname="SELECT * FROM ".TABLE_PREFIX."ds_tribe WHERE name='".$name."' LIMIT 1";
$ergebnis=mysql_query($selectname) or die("Fehler beim suchen von der Playerid im Code: <b>".$selectname."</b>".mysql_error());
if($player=mysql_fetch_assoc($ergebnis)){
return $player['id'];
}else{
return 111111;
}
}

Und: nein, sie ist nicht zweimal definiert.


RE: BB Code - Mak - 07.10.2007

Poste bitte mal die ganze Datei.


RE: BB Code - Chrissi - 07.10.2007

PHP-Code:
<?php
function get_id_of_player($name){
$selectname="SELECT * FROM ".TABLE_PREFIX."ds_tribe WHERE name='".$name."' LIMIT 1";
$ergebnis=mysql_query($selectname) or die("Fehler beim suchen von der Playerid im Code: <b>".$selectname."</b>".mysql_error());
if(
$player=mysql_fetch_assoc($ergebnis)){
  return 
$player['id'];
}else{
  return 
111111;
}
}

function 
get_id_of_village($x,$y){
$befehl="SELECT * FROM ".TABLE_PREFIX."ds_villages WHERE x=".$x." AND y=".$y." LIMIT 1";
$ergebnis=mysql_query($befehl) or die("Error".mysql_error());
if (
$village=mysql_fetch_assoc($ergebnis)) {
  return 
$village['id'];
}else{
  die(
"Fehler beim ermitteln der VillageID.");
  return 
false;
}
}

 function 
get_id_of_ally($name){
$befehl="SELECT * FROM ".TABLE_PREFIX."ds_ally WHERE name='".$name."' OR tag='".$name."' LIMIT 1";
$ergebnis=mysql_query($befehl) or die("Error beim suchen von der Allyid :<b>".$befehl."</b>".mysql_error()."<p>");
if(
$ally=mysql_fetch_assoc($ergebnis)){
  return 
$ally['id'];
}else{
  return 
111111;
}
}

function 
get_name_of_village($id){
$befehl="SELECT * FROM ".TABLE_PREFIX."ds_villages WHERE id=".$id." LIMIT 1";
$ergebnis=mysql_query($befehl);
if (
$village=mysql_fetch_assoc($ergebnis)) {
  return 
urldecode($village['name']);
}else{
  return 
"Dorf ungültig";
}
}
?>

Ist die ganze Datei, die anderen Funktionen sind aber immo unwichtig, da die BB Codes dazu erst später kommen. Erstmal den player Tag abschließen, dann werden die anderen ganz einfach Wink

lg

/edit : hallloooo? xD


RE: BB Code - Chrissi - 07.10.2007

Okay, der Fehler ist auch raus.
require_once() hats getan Wink

Zitat:Warning: preg_replace() [function.preg-replace]: Delimiter must not be alphanumeric or backslash in C:\Users\Christopher\Desktop\xampp\htdocs\mybb\inc\plugins\dsbbcodes.php on line 139

Warning: preg_replace() [function.preg-replace]: Delimiter must not be alphanumeric or backslash in C:\Users\Christopher\Desktop\xampp\htdocs\mybb\inc\plugins\dsbbcodes.php on line 139

Warning: preg_replace() [function.preg-replace]: Delimiter must not be alphanumeric or backslash in C:\Users\Christopher\Desktop\xampp\htdocs\mybb\inc\plugins\dsbbcodes.php on line 139

ist der nächste Fehler.

Zeile 139 ist wieder:
PHP-Code:
$message preg_replace('\[player\](.*?)\[/player\]''<a href='.$domain.'/game.php?screen=info_player&id='.get_id_of_player('$1').' target="_blank">$1</a>'$message); 

/edit: Sind drei Posts, deshalb drei Fehlermeldungen


RE: BB Code - Garlant - 07.10.2007

Hallo Chrissi,

Versuche es mal bitte hiermit:
PHP-Code:
$message preg_replace("\[player\](.*?)\[/player\]""<a href=\"".$domain."/game.php?screen=info_player&id=".get_id_of_player($1)." target=\"_blank\">$1</a>"$message); 

Mfg Garlant


RE: BB Code - Chrissi - 07.10.2007

Garlant schrieb:Hallo Chrissi,

Versuche es mal bitte hiermit:
PHP-Code:
$message preg_replace("\[player\](.*?)\[/player\]""<a href=\"".$domain."/game.php?screen=info_player&id=".get_id_of_player($1)." target=\"_blank\">$1</a>"$message); 

Mfg Garlant

Das hatte ich ja schon, da kommt
Zitat:Parse error: syntax error, unexpected T_LNUMBER, expecting T_VARIABLE or '$' in C:\Users\Christopher\Desktop\xampp\htdocs\mybb\inc\plugins\dsbbcodes.php on line 136



RE: BB Code - Garlant - 07.10.2007

Hallo Chrissi,

Der Fehler erscheint da $1 eine unzulässige Variable ist.
Ersetze diese Variable durch eine andere, anschließend sollte es ohne Probleme Funktionieren.

Mfg Garlant