php tut für c/c++ umsteiger
-
Danke,
habe mich schon gefagt woher das db kommtdu schreibst
$sql = "SELECT topic_title FROM " . TOPICS_TABLE . " t WHERE topic_id = '$x'";
sollte das nicht ehr
$sql = "SELECT topic_title FROM " . TOPICS_TABLE . " t WHERE topic_id = " . $x;
?
und ich krige aus der zeile
if ( !($result = $db->sql_query($sql)) )
Fatal error: Call to a member function on a non-object in C:\WAMP\Root\phpBB2\includes\bbcode.php on line 623
hilfe
-
1. Wenn du in PHP "" verwendest kannst du Variablen-Namen darin direkt verwenden, also z.B. echo "Name: $name";
Außerdem würde ich für die DB-Abfrage den Inhalt schon in '' einschließen - ist sicherer
2. Er hat sich wohl ein DB-Objekt erstellt
-
hast du die include in der gettopictitel function?
function gettopictitel($x) { $phpbb_root_path = "c:\\www\\phpBB2\\"; include $phpbb_root_path."extension.inc"; include $phpbb_root_path."config.".$phpEx; include $phpbb_root_path."includes/db.".$phpEx; $sql = "SELECT topic_title FROM " . TOPICS_TABLE . " WHERE topic_id = '$x'"; if ( !($result = $db->sql_query($sql)) ) { message_die(GENERAL_ERROR, "Could not get title information", '', __LINE__, __FILE__, $sql); } $titel = $db->sql_fetchfield(0,0); return $titel; }
die sql query kann man auch wie du machen, kommt aber das selbe raus.
[ Dieser Beitrag wurde am 10.03.2003 um 19:49 Uhr von Michi_M editiert. ]
-
*grussel* includes in funktionen
naja wenn ich die includes in die funktion mache dann krige ich dieWarning: mysql_result() [function.mysql-result]: Unable to jump to row 0 on MySQL result index 27 in C:\WAMP\Root\phpBB2\db\mysql4.php on line 259
Warning: mysql_result() [function.mysql-result]: Unable to jump to row 0 on MySQL result index 32 in C:\WAMP\Root\phpBB2\db\mysql4.php on line 259
Warning: Cannot modify header information - headers already sent by (output started at C:\WAMP\Root\phpBB2\db\mysql4.php:259) in C:\WAMP\Root\phpBB2\includes\page_header.php on line 460
Warning: Cannot modify header information - headers already sent by (output started at C:\WAMP\Root\phpBB2\db\mysql4.php:259) in C:\WAMP\Root\phpBB2\includes\page_header.php on line 466
Warning: Cannot modify header information - headers already sent by (output started at C:\WAMP\Root\phpBB2\db\mysql4.php:259) in C:\WAMP\Root\phpBB2\includes\page_header.php on line 467
und
Warning: mysql_result() [function.mysql-result]: Unable to jump to row 0 on MySQL result index 48 in C:\WAMP\Root\phpBB2\db\mysql4.php on line 259
Warning: mysql_result() [function.mysql-result]: Unable to jump to row 0 on MySQL result index 53 in C:\WAMP\Root\phpBB2\db\mysql4.php on line 259
Warning: mysql_result() [function.mysql-result]: Unable to jump to row 0 on MySQL result index 58 in C:\WAMP\Root\phpBB2\db\mysql4.php on line 259
Warning: mysql_result() [function.mysql-result]: Unable to jump to row 0 on MySQL result index 63 in C:\WAMP\Root\phpBB2\db\mysql4.php on line 259
Warning: mysql_result() [function.mysql-result]: Unable to jump to row 0 on MySQL result index 68 in C:\WAMP\Root\phpBB2\db\mysql4.php on line 259
Warning: mysql_result() [function.mysql-result]: Unable to jump to row 0 on MySQL result index 73 in C:\WAMP\Root\phpBB2\db\mysql4.php on line 259
-
ich habs mal verbessert:
unter
if ( !defined('IN_PHPBB') ) { die("Hacking attempt"); }
das:
$phpbb_root_path = "c:\\www\\phpBB2\\"; include $phpbb_root_path."extension.inc"; include $phpbb_root_path."config.".$phpEx; include $phpbb_root_path."includes/db.".$phpEx;
dann die gettopictitel:
function gettopictitel($x) { global $db; $sql = "SELECT topic_title FROM " . TOPICS_TABLE . " WHERE topic_id = '$x'"; if ( !($result = $db->sql_query($sql)) ) { message_die(GENERAL_ERROR, "Could not obtain newer/older topic information", '', __LINE__, __FILE__, $sql); } $titel = $db->sql_fetchrow(); return $titel[0]; }
Gruß
Michi
-
jupie mein erster mod, danke Michi_M & flenders ohne euch wäre das nicht möglich
//unter if ( !defined('IN_PHPBB') ) { die("Hacking attempt"); } //das: $phpbb_root_path = "./"; // <- anpassen include $phpbb_root_path."extension.inc"; include $phpbb_root_path."config.".$phpEx; include $phpbb_root_path."includes/db.".$phpEx; // über function make_clickable($text) { // pad it with a space so we can match things at the start of the 1st line. $ret = ' ' . $text; // das function get_topic_titel($x) { global $db; $sql = "SELECT topic_title FROM " . TOPICS_TABLE . " WHERE topic_id = '$x'"; if ( !($result = $db->sql_query($sql)) ) { message_die(GENERAL_ERROR, "Could not obtain newer/older topic information", '', __LINE__, __FILE__, $sql); } $titel = $db->sql_fetchrow(); return $titel['topic_title']; } function raw_topic_url_to_url_with_topic_titel($mat) { return $mat[1]."<a href=\"".$mat[2].$mat[3].$mat[4]."\" target=\"_blank\">".get_topic_titel($mat[3])."</a>"; } // unter function make_clickable($text) { // pad it with a space so we can match things at the start of the 1st line. $ret = ' ' . $text; // das $ret = preg_replace_callback ( "#(\s)(http://localhost/phpbb2/viewtopic\.php\?t=)(\d*)(\S*)([^ \"\n\r\t<]*)#i", 'raw_topic_url_to_url_with_topic_titel', $ret ); // hier müsste man den pattern an sein Forum anpassen // ich muss mal kucken obs eine konstante gibt die es erleichtern würde
-
Das funktioniert jetzt aber wohl nur für eine URL - denke ich
Also auch wenn mehrere URLs dieser Form enthalten sind bekommst du nur einen Treffer
-
Original erstellt von flenders:
Das funktioniert jetzt aber wohl nur für eine URL - denke ich
Also auch wenn mehrere URLs dieser Form enthalten sind bekommst du nur einen Trefferne das geht schon
mixed preg_replace_callback ( mixed pattern, callback callback, mixed subject [, int limit])
The behavior of this function is almost identical to preg_replace(), except for the fact that instead of replacement parameter, one should specify a callback that will be called and passed an array of matched elements in the subject string. The callback should return the replacement string.
preg_replace hört ja auch nicht nach den ersten treffer auf
ps. ich habe es etwas erweitert so das es jetzt auch mit foren geht
//unter if ( !defined('IN_PHPBB') ) { die("Hacking attempt"); } //das: $phpbb_root_path = "./"; // <- anpassen include $phpbb_root_path."extension.inc"; include $phpbb_root_path."config.".$phpEx; include $phpbb_root_path."includes/db.".$phpEx; // über function make_clickable($text) { // pad it with a space so we can match things at the start of the 1st line. $ret = ' ' . $text; // das function get_topic_titel($x) { global $db; $sql = "SELECT topic_title FROM " . TOPICS_TABLE . " WHERE topic_id = '$x'"; if ( !($result = $db->sql_query($sql)) ) { message_die(GENERAL_ERROR, "Could not obtain newer/older topic information", '', __LINE__, __FILE__, $sql); } $titel = $db->sql_fetchrow(); return $titel['topic_title']; } function get_forum_titel($x) { global $db; $sql = "SELECT forum_name FROM " . FORUMS_TABLE . " WHERE forum_id = '$x'"; if ( !($result = $db->sql_query($sql)) ) { message_die(GENERAL_ERROR, "Could not obtain newer/older topic information", '', __LINE__, __FILE__, $sql); } $titel = $db->sql_fetchrow(); return $titel['forum_name']; } function raw_url_to_url_with_titel($subpattern) { $url = $subpattern[2].$subpattern[3].$subpattern[4].$subpattern[5]; if($subpattern[3] == "viewtopic.php?t=") $titel = get_topic_titel($subpattern[4]); else $titel = get_forum_titel($subpattern[4]); return $subpattern[1]."<a href=\"".$url."\" target=\"_blank\">".$titel."</a>"; } // unter function make_clickable($text) { // pad it with a space so we can match things at the start of the 1st line. $ret = ' ' . $text; // das $phpbb_url = "http://localhost/phpbb2/"; // anpassen $ret = preg_replace_callback ( "#(\s)(".$phpbb_url.")(viewtopic\.php\?t=|viewforum\.php\?f=)(\d+)(\S*)([^ \"\n\r\t<]*)#i", 'raw_url_to_url_with_titel', $ret );
ich bin schon die ganze zeit auf der suche wie ich
$phpbb_root_path = "./"; // <- anpassen $phpbb_url = "http://localhost/phpbb2/"; // anpassen
automatisch bekommen kann
-
In welchem Ordner liegt denn dein Script?
-
document_root/phpbb
-
c:\wamp\root\phpbb2\include\bbcode.php
aber ich glaube $phpbb_root_path = "./"; muss ich nicht anpassen(eigentlich müsste es ../ sein, aber wahrscheinlich wird bbcode.php selber auch im phpbb2 ordner includet und von da aus ist ./ richtig),
dann bleibt noch $phpbb_url = "http://localhost/phpbb2/";[ Dieser Beitrag wurde am 11.03.2003 um 15:35 Uhr von Dimah editiert. ]
-
Probie es mal so:
$phpbb_url = "http://".$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF'])."/";
-
jup hat geklapt
ps. hier ist so ein template dings bums
############################################################## ## MOD Title: Raw Url Converter ## MOD Version: 0.9 ## MOD Author: Dimah; choinka@web.de; Gerard Choinka ## MOD Description: This mod converts raw urls of topics or forums to urls with the topic or forum titel. ## ## Installation Level: easy ## Installation Time: 5 Minutes ## Files To Edit: bbcode.php ## Included Files: ############################################################## ## For Security Purposes, Please Check: http://www.phpbb.com/mods/downloads/ for the ## latest version of this MOD. Downloading this MOD from other sites could cause malicious code ## to enter into your phpBB Forum. As such, phpBB will not offer support for MOD's not offered ## in our MOD-Database, located at: http://www.phpbb.com/mods/downloads/ ############################################################## ## This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ############################################################## ## Before Adding This MOD To Your Forum, You Should Back Up All Files Related To This MOD ############################################################## # #-----[ OPEN ]------------------------------------------ # includes/bbcode.php # #-----[ FIND ]------------------------------------------ # if ( !defined('IN_PHPBB') ) { die("Hacking attempt"); } # #-----[ AFTER, ADD ]------------------------------------------ # include "./extension.inc"; include "./config.".$phpEx; include "./includes/db.".$phpEx; # #-----[ FIND ]------------------------------------------ # function make_clickable($text) { // pad it with a space so we can match things at the start of the 1st line. $ret = ' ' . $text; # #-----[ BEFORE, ADD ]------------------------------------------ # function get_topic_titel($id) { global $db; $sql = "SELECT topic_title FROM " . TOPICS_TABLE . " WHERE topic_id = '$id'"; if ( !($result = $db->sql_query($sql)) ) { message_die(GENERAL_ERROR, "Could not obtain newer/older topic information", '', __LINE__, __FILE__, $sql); } $titel = $db->sql_fetchrow(); return $titel['topic_title']; } function get_forum_titel($id) { global $db; $sql = "SELECT forum_name FROM " . FORUMS_TABLE . " WHERE forum_id = '$id'"; if ( !($result = $db->sql_query($sql)) ) { message_die(GENERAL_ERROR, "Could not obtain newer/older Forum information", '', __LINE__, __FILE__, $sql); } $titel = $db->sql_fetchrow(); return $titel['forum_name']; } function preg_replace_callback_func_raw_url_to_url_with_titel($subpattern) { $url = $subpattern[2].$subpattern[3].$subpattern[4].$subpattern[5]; if($subpattern[3] == "viewtopic.php?t=") $titel = get_topic_titel($subpattern[4]); else $titel = get_forum_titel($subpattern[4]); return $subpattern[1]."<a href=\"".$url."\" target=\"_blank\">".$titel."</a>"; } function raw_url_to_url_with_titel($ret) { $phpbb_url = "http://".$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF'])."/"; $ret = preg_replace_callback ( "#(\s)(".$phpbb_url.")(viewtopic\.php\?t=|viewforum\.php\?f=)(\d+)(\S*)([^ \"\n\r\t<]*)#i", 'preg_replace_callback_func_raw_url_to_url_with_titel', $ret ); return $ret; } # #-----[ FIND ]------------------------------------------ # function make_clickable($text) { // pad it with a space so we can match things at the start of the 1st line. $ret = ' ' . $text; # #-----[ AFTER, ADD ]------------------------------------------ # $ret = raw_url_to_url_with_titel($ret); # #-----[ SAVE/CLOSE ALL FILES ]------------------------------------------ # # EoM
-
Original erstellt von Dimah:
**jup hat geklaptps. hier ist so ein template dings bums
############################################################## ## MOD Title: Raw Url Converter ## MOD Version: 0.9 ## MOD Author: Dimah; choinka@web.de; Gerard Choinka ## MOD Description: This mod converts raw urls of topics or forums to urls with the topic or forum titel. ## ## Installation Level: easy ## Installation Time: 5 Minutes ## Files To Edit: bbcode.php ## Included Files: ```**
du könntest wenigsten auch die nennen die den mod gemacht haben. eigenlob stinkt und vor allem wenn die anderen die arbeit gemacht haben.
-
ich habe mich nur hier dran gehalten http://www.phpbb.com/kb/article.php?article_id=39&sid=7658a631ebc914935ba2ded1de68e7bc
natürlich haben die helfer meinen dank, ich denke das wissen sie auch ohne das ich wo was schreiben muss
deswegen hielt ich es nicht für notwendigps. bevor ich weiter mit dir diskutieren soll, schreibe ich das irgend wo rein. das kostet mich weniger zeit
-
Original erstellt von Dimah:
**ich habe mich nur hier dran gehalten http://www.phpbb.com/kb/article.php?article_id=39&sid=7658a631ebc914935ba2ded1de68e7bc
natürlich haben die helfer meinen dank, ich denke das wissen sie auch ohne das ich wo was schreiben muss
deswegen hielt ich es nicht für notwendigps. bevor ich weiter mit dir diskutieren soll, schreibe ich das irgend wo rein. das kostet mich weniger zeit**
ich meine nicht das layout sondern den code...
-
Ist doch OK so
-
ich meine nicht das layout sondern den code...
ja ich auch
'The phpBB Group' has a specially designed "MOD Template" that is required for all submissions of MOD's, into our MOD database.
lies dir den link durch und sag mir wo ich das danke hinein tuen soll?
[ Dieser Beitrag wurde am 11.03.2003 um 22:18 Uhr von Dimah editiert. ]
-
Original erstellt von <jens>:
du könntest wenigsten auch die nennen die den mod gemacht haben. eigenlob stinkt und vor allem wenn die anderen die arbeit gemacht haben.klar ich habe die ganze zeit dauem gedreht und gewartet bis sie posten :p
[ Dieser Beitrag wurde am 12.03.2003 um 00:34 Uhr von Dimah editiert. ]
-
Macht das unter euch aus, nicht hier!
Dimah, wenn du noch gezielte Fragen hast, kannst du ja einen neuen Thread eröffnen.