craxelburger 0 Report post Posted January 5, 2004 Bekomme den folgenden Fehler wenn ich die Datei aufrufe: Fatal error: Call to undefined function: iframe_step_one() in C:\Programme\foxserv\www\forum\sb_iframe.php on line 349 Ich habe die betreffende Stelle im Code mal rot markiert. <?php /* +-------------------------------------------------------------------------- | Shoutbox v2.2 Iframe Componant | ======================================== | by Manick | © 2001,2002 IBPlanet.com | http://www.ibplanet.com | ======================================== +--------------------------------------------------------------------------- | | > Shoutbox Iframe module | > Module written by Manick | > Module Version Number: 2.2.0 +-------------------------------------------------------------------------- */ ///// //User Configurable Elements ///// //Set this to the Iframe box Height $iframe_height = 360; //Set this to the iframe box Width $iframe_width = "100%"; //Set this to the number of shouts you want to show $num_shouts = 10; //num shouts a person can shout consecutivily (set to outrageously high number to disable) $flood_control = 5; //Set to 1 to use with Portal, Set to 0 to not use with portal. $portal = 1; set_magic_quotes_runtime(0); error_reporting (E_ERROR | E_WARNING | E_PARSE); define( 'ROOT_PATH', "./" ); require ROOT_PATH.'conf_global.php'; //****************************************Taken from index.php********// class info { var $member = array(); var $input = array(); var $session_id = ""; var $base_url = ""; var $vars = ""; var $skin_id = "0"; // Skin Dir name var $skin_rid = ""; // Real skin id (numerical only) var $lang_id = "en"; var $skin = ""; var $lang = ""; var $server_load = 0; var $version = "v1.1"; var $lastclick = ""; var $location = ""; function info() { global $sess, $std, $DB, $INFO; $this->vars = &$INFO; $this->vars['TEAM_ICON_URL'] = $INFO['html_url'] . '/team_icons'; $this->vars['AVATARS_URL'] = $INFO['html_url'] . '/avatars'; $this->vars['EMOTICONS_URL'] = $INFO['html_url'] . '/emoticons'; $this->vars['mime_img'] = $INFO['html_url'] . '/mime_types'; } } //Global Functions require ROOT_PATH."sources/functions.php"; $std = new FUNC; $print = new display(); $sess = new session(); //Database Functions $INFO['sql_driver'] = !$INFO['sql_driver'] ? 'mySQL' : $INFO['sql_driver']; $to_require = ROOT_PATH."sources/Drivers/".$INFO['sql_driver'].".php"; require ($to_require); $DB = new db_driver; $DB->obj['sql_database'] = $INFO['sql_database']; $DB->obj['sql_user'] = $INFO['sql_user']; $DB->obj['sql_pass'] = $INFO['sql_pass']; $DB->obj['sql_host'] = $INFO['sql_host']; $DB->obj['sql_tbl_prefix'] = $INFO['sql_tbl_prefix']; // Get a DB connection $DB->connect(); $ibforums = new info(); //-------------------------------- // Set up our vars //-------------------------------- $ibforums->input = $std->parse_incoming(); $ibforums->member = $sess->authorise(); $ibforums->skin = $std->load_skin(); $ibforums->lastclick = $sess->last_click; $ibforums->location = $sess->location; $ibforums->session_id = $sess->session_id; $ibforums->base_url = $ibforums->vars['board_url'].'/index.'.$ibforums->vars['php_ext'].'?s='.$ibforums->session_id; $ibforums->skin_rid = $ibforums->skin['set_id']; $ibforums->skin_id = 's'.$ibforums->skin['set_id']; $ibforums->vars['img_url'] = 'style_images/' . $ibforums->skin['img_dir']; //-------------------------------- // Set up our language choice //-------------------------------- $ibforums->lang_id = $ibforums->member['language'] ? $ibforums->member['language'] : 'en'; if ( ($ibforums->lang_id != 'en') and (! is_dir( ROOT_PATH."lang/".$ibforums->lang_id ) ) ) { $ibforums->lang_id = 'en'; } require ROOT_PATH."lang/".$ibforums->lang_id."/lang_global.php"; $ibforums->lang = $lang; unset($lang); //-------------------------------- require ROOT_PATH."Skin/".$ibforums->skin_id."/skin_global.php"; $skin_universal = new skin_global(); //-------------------------------- $TAGS = $DB->query("SELECT macro_value, macro_replace FROM ibf_macro WHERE macro_set='{$ibforums->skin['macro_id']}'"); //*************************************END Taken from index.php********// //-------------------------------- // Decide what to do //-------------------------------- $shoutbox = new shoutbox; class shoutbox { var $html; var $output = ""; var $base_url = ""; var $nav; //------------------------------------------------ //shoutbox(); //============ //Main shoutbox function //------------------------ function shoutbox() { global $ibforums, $DB, $std; //Load up Shoutbox language files $ibforums->lang = $std->load_words($ibforums->lang, 'lang_shoutbox', $ibforums->lang_id); //Load up Shoutbox skin files $this->html = $std->load_template('skin_shoutbox'); if (! $ibforums->member['id'] ) { $ibforums->input['last_visit'] = time(); } $this->base_url = "{$ibforums->vars['board_url']}"; $this->iframe(); } //------------------------------------------------ //Post_Shout(); //============== //Function which handles posting of new shouts //------------------------ function Post_Shout() { global $ibforums, $DB, $std, $flood_control; $name = $ibforums->member['name']; $message = $ibforums->input['Post']; $DB->query("SELECT name FROM shoutbox ORDER BY id DESC LIMIT " . $flood_control); $num1 = 0; while ($namearray=$DB->fetch_row()) { $name1 = $namearray['name']; if ($name1==$ibforums->member['name']) { $num1++; } if ($num1 >= $flood_control) { $this->iframe_error('no_flood_shoutbox'); } } if($ibforums->member['g_post_shoutbox'] != 1) { $this->iframe_error('no_post_shoutbox'); } if($ibforums->member['name']=="Guest" OR $ibforums->member['name']=="") { $this->iframe_error('guest_no_post'); } if(trim($message)=="") { $this->iframe_error('no_message'); } require "./sources/lib/post_parser.php"; $parser = new post_parser(1); $message = preg_replace('/\/i', '', $message); $message = preg_replace('/\[\/img]/i', '', $message); $message = preg_replace('/<img/i', '', $message); $message = trim($parser->convert( array( TEXT => $message, SMILIES => 1, CODE => 1, HTML => 0 ) )); $message = addslashes($message); $time = date("jS F Y"); $query="INSERT INTO shoutbox(id,name,message,time, time_time)VALUES('NULL','$name','$message','$time', ".time().")"; $DB->query($query); } //------------------------------------------------ //Render_Shouts(); //======================== //Display all the shouts //------------------------ function Render_Shouts() { global $ibforums, $DB, $std, $print, $skin_universal, $num_shouts; $shouts = ""; $DB->query("SELECT g.prefix, g.suffix, m.id AS mid, m.use_shout, s.* FROM shoutbox s, ibf_members m, ibf_groups g WHERE s.name=m.name AND m.mgroup=g.g_id ORDER BY id DESC LIMIT 0, $num_shouts"); $class = 1; while($r= $DB->fetch_row()) { $r['prefix'] = stripslashes($r['prefix']); $r['suffix'] = stripslashes($r['suffix']); $r['message'] = stripslashes($r[message]); $r['message'] = preg_replace("/([^\n\r ?&\.\/<>\"\\-]{15})/i"," \\1<br>",$r['message']); if ($r['time_time']<>'0') { $std->time_options['SB'] = 'H:i'; $r['time'] = $std->get_date( $r[time_time], 'SB'); } $r['class'] = $class; $shouts .= $this->html->iframe_shout($r); if ($class == 1) { $class = 2; continue; } $class = 1; } return $shouts; } //------------------------------------------------ //iframe(); //=========== //Display an Iframe for items such as portals //------------------------ function iframe() { global $ibforums, $DB, $iframe_width, $iframe_height; //check to see if someone is posting a shout if($ibforums->input['Post']<>"") { $this->Post_Shout(); $this->refresh(); } if ($ibforums->input['step']=="") { $this->output( $this->html->iframe_step_one($iframe_width, $iframe_height) ); return; } if ($ibforums->input['step']=="two") { if (!$ibforums->member['id']) $data = $this->html->sb_iframe_login(); else $data = $this->html->sb_iframe_button(); $height = $iframe_height - 100; $this->output( $this->html->iframe_step_two($data, $height) ); return; } if ($ibforums->input['step']<>"three") return; //-------------------------------- // Do we have permission to view // the board? //-------------------------------- if ($ibforums->member['g_view_board'] != 1) { $this->iframe_error('no_view_shoutbox'); } //-------------------------------- // Is the board offline? //-------------------------------- if ($ibforums->vars['board_offline'] == 1) { if ($ibforums->member['g_access_offline'] != 1) { $this->iframe_error('board_offline'); } } //-------------------------------- // Is log in enforced? //-------------------------------- if ( (! $ibforums->member['id']) and ($ibforums->vars['force_login'] == 1) ) { $this->iframe_error('please_login'); } $DB->query("SELECT use_shout FROM ibf_members WHERE id='".$ibforums->member['id']."'"); $stuff = $DB->fetch_row(); $ibforums->member['use_shout'] = $stuff['use_shout']; //-------------------------------- // Do we have permission to view // the shoutbox? //-------------------------------- if ($ibforums->member['g_view_shoutbox'] != 1 OR $ibforums->member['use_shout'] != 1) { $this->iframe_error('no_view_shoutbox'); } $shouts = $this->Render_Shouts(); $this->output( $this->html->iframe_step_three($shouts) ); return; } //------------------------------------------------ //iframe_error(); //================ //Handles error routines for Iframes //------------------------ function iframe_error($error) { global $ibforums; echo $this->html->iframe_step_three("<tr vAlign='top'><td class='post1'>{$ibforums->lang[$error]}<br><a href='java script:history.go(-1)'>Back</a></td></tr>"); exit; } //------------------------------------------------ //refresh(); //=========== //Simple function to refresh the shoutbox (lossless) //------------------------ function refresh() { global $std, $ibforums; $std->boink_it("sb_iframe.php?step=two"); exit; } //------------------------------------------------ //output(); //=========== //Replace Macros and output data //------------------------ function output($data) { global $std, $ibforums, $TAGS, $DB; while ( $row = $DB->fetch_row($TAGS) ) { if ($row['macro_value'] != "") { $data = str_replace( "<{".$row['macro_value']."}>", $row['macro_replace'], $data ); } } echo $data; } } ?> Share this post Link to post
TroubleYou 0 Report post Posted January 5, 2004 In Deiner Klasse fehlt die Methode iframe_step_one($iframe_width, $iframe_height) Share this post Link to post
craxelburger 0 Report post Posted January 5, 2004 hmm, wenn ich ehrlich bin bringt mich das jetzt aber auch nicht viel weiter, da ich keine sehr guten Programmierkenntnisse habe. Ich will meine Shoutbox einfach nur in einem Iframe anzeigen. Demo: http://www.boobkettle.net/forums/ Share this post Link to post
Stefan 0 Report post Posted January 6, 2004 In deiner skin_shoutbox.php sollte folgende Funktion drin stehen: function iframe_step_one($width, $height) { global $ibforums; return <<<EOF <table width='100%' vAlign=top border='0' cellspacing='1' align='right' cellpadding='0' bgcolor='<{tbl_border}>'> <tr> <td class='maintitleback' background='{$ibforums->vars['img_url']}/tile_back.gif'> <table width='100%' border='0' cellspacing='0' cellpadding='3'> <tr> <td><img src='{$ibforums->vars['img_url']}/nav_m.gif' alt='' width='8' height='8'></td> <td width='100%' class='maintitle'><b>{$ibforums->lang['shoutbox']}</b></i></a></b></td> </tr> </table> </td> </tr> <tr> <td class='mainbg'> <table width='100%' border='0' cellspacing='0' cellpadding='0'> <tr> <td class='mainbg'> <table width='100%' border='0' cellspacing='0' cellpadding='0'> <tr> <td class='alt1' valign='top'> <iframe name='SB_ONE' src='{$ibforums->vars['board_url']}/sb_iframe.php?s={$ibforums->session_id}&step=two' width='100%' height='$height' scrolling='no' align='center' frameborder='0' marginwidth='0' marginheight='0'> </iframe> </td> </tr> </table> </td> </tr> </table> </td></tr></table> EOF; } Nebenbei, den Mod findet man hier. Demnächst bitte solche Infos dazu schreiben, dann braucht man auch nicht suchen. Share this post Link to post
craxelburger 0 Report post Posted January 6, 2004 (edited) Oh, Sorry Stefan. Hatte vergessen Angaben zur Quelle zu machen. Das es nicht klappt wird wahrscheinlich daran liegen das ich eine neuere Version des Mods benutze. Siehe hier. Jedenfalls habe ich die alte und die neue Version der Skindatei verglichen und die fehlenden Funktionen eingefügt. Scheinbar wurde in der neueren Version die Iframe-Lösung herausgenommen. Die Mods sind aber immer noch sehr ähnlich, so das mir dies ohne Probleme gelingen konnte. Leider bekomme ich jetzt folgenden Fehler: Warning: load_words(ROOT_PATHlang/2/lang_shoutbox.php): failed to open stream: No such file or directory in /var/www/web1852/html/sources/functions.php on line 1272 DEMO: hier. Ich hoffe das das kein schwerwiegendes Problem ist. Falls Du Dir die Dateien mal im Original ansehen willst, kannst Du die selben Zugangsdaten verwenden die ich Dir vor kurzem schonmal wegen eines anderen Problems per PM gegeben hatte. Nur die URL hat sich geändert. Du findest das Testboard mit der Shoutbox jetzt unter http://skypeflirt.s3.cybton.com. So, nun hier noch meine skin_shoutbox.php die ich jetzt verwende: <?php class skin_shoutbox { function Shout_Stats() { global $ibforums; return <<<EOF <div class="tableborder"> <div class='maintitle' align='left'><{CAT_IMG}> {$ibforums->vars['board_name']} {$ibforums->lang['shoutbox']}</div> <table width="100%" align='center' border="0" cellspacing="1" cellpadding="4"> <tr><td width=50%>{$data['Shouters_Today']}</td> <td width=50%>{$data['Top_Shouters']}</td></tr></table></div> EOF; } function Top_Shouters($info) { global $ibforums; return <<<EOF <br /> <div class="tableborder"> <div class='maintitle' align='left'><{CAT_IMG}>{$ibforums->lang['all_time_top']}</div> <table width="100%" border="0" cellspacing="1" cellpadding="4"> <tr> <td class='titlemedium'><b>{$ibforums->lang['shouter']}</b></td> <td class='titlemedium'><b>{$ibforums->lang['shouts']}</b></td> </tr> {$info['top_shouters']} <tr> <td class='row4' colspan='2'><b>{$ibforums->lang['total_shouts']} {$info['count']}</b></td> </tr> </table> </div> <br /> EOF; } function Render_Name($info) { global $ibforums; return <<<EOF <tr> <td class='row4'><a href='{$ibforums->base_url}act=Profile&CODE=03&MID={$info['id']}'>{$info['prefix']}{$info['name']}{$info['suffix']}</a></td> <td class='row4'><a href= '{$ibforums->base_url}act=Shoutbox&author={$info['name']}'>{$info['count']}</a></td> </tr> EOF; } function PageFoot() { global $ibforums; return <<<EOF </td> </tr> </table> </td></tr> <tr><td class='maintitle' align=center>D-Shoutbox2 Creater By <a href=mailto:dean@dscripting.com>Dean</a> -- © 2003-2004 <a href=http://www.dscripting.com target='_blank'>D-Scripting</a></td></tr> </table> </div> EOF; } function sb_iframe_button() { global $ibforums; return <<<EOF <center> [ <a href='javascript:emo_pop()'>{$ibforums->lang['smilies']}</a> | <a target='_blank' href='{$ibforums->vars['board_url']}/index.{$ibforums->vars['php_ext']}?s={$ibforums->session_id}&act=shoutbox'>{$ibforums->lang['view']}</a> ]<br> <form action='{$ibforums->vars['board_url']}/sb_iframe.php?s={$ibforums->session_id}&step=two' name='REPLIER' method='post' onsubmit='document.REPLIER.submit.disable = True;'> <input type='text' size='15' name='Post' value='' class='forminput'><br><br> <table align='center' cellpadding='2' cellspacing='0'> <tr> <td align='center' > <input type='submit' name='submit' class='forminput' value='{$ibforums->lang['iframe_shout']}'> </td> </tr> <tr> <td align='center' > <input type="button" value="{$ibforums->lang['refresh']}" class='forminput' onclick="location.reload()"> </td> </tr> </table> </form> </center> EOF; } function iframe_step_one($width, $height) { global $ibforums; return <<<EOF <table width='100%' vAlign=top border='0' cellspacing='1' align='right' cellpadding='0' bgcolor='<{tbl_border}>'> <tr> <td class='maintitleback' background='{$ibforums->vars['img_url']}/tile_back.gif'> <table width='100%' border='0' cellspacing='0' cellpadding='3'> <tr> <td><img src='{$ibforums->vars['img_url']}/nav_m.gif' alt='' width='8' height='8'></td> <td width='100%' class='maintitle'><b>{$ibforums->lang['shoutbox']}</b></i></a></b></td> </tr> </table> </td> </tr> <tr> <td class='mainbg'> <table width='100%' border='0' cellspacing='0' cellpadding='0'> <tr> <td class='mainbg'> <table width='100%' border='0' cellspacing='0' cellpadding='0'> <tr> <td class='alt1' valign='top'> <iframe name='SB_ONE' src='{$ibforums->vars['board_url']}/sb_iframe.php?s={$ibforums->session_id}&step=two' width='100%' height='$height' scrolling='no' align='center' frameborder='0' marginwidth='0' marginheight='0'> </iframe> </td> </tr> </table> </td> </tr> </table> </td></tr></table> EOF; } function iframe_step_three($shouts) { global $ibforums; return <<<EOF <html><head> <style type='text/css'> {$ibforums->skin['css_text']} </style> </head> <body> <table height='100%' width='100%' border='0' class='forum2' cellspacing='0' cellpadding='0'> <tr vAlign='top'><td> <table width='100%' border='0' bgcolor='<{tbl_border}>' cellspacing='1' cellpadding='2'> $shouts </table> </td></tr></table> </body> </html> EOF; } function Shouters_Today($info) { global $ibforums; return <<<EOF <br /> <div class="tableborder"> <div class='maintitle' align='left'><{CAT_IMG}> {$ibforums->lang['todays_top']}</div> <table width="100%" border="0" cellspacing="1" cellpadding="4"> <tr> <td class='titlemedium'><b>{$ibforums->lang['shouter']}</b></td> <td class='titlemedium'><b>{$ibforums->lang['shouts']}</b></td> </tr> {$info['shouters']} <tr> <td class='row4' colspan='2'><b>{$ibforums->lang['shouts_today']} {$info['count']}</b></td> </tr> </table> </div> EOF; } function iframe_shout($info) { global $ibforums; return <<<EOF <tr vAlign='top'> <td class='post{$info['class']}'> <font size='1'><u>[{$info['time']}] (<a target='_blank' href='index.php?act=Profile&CODE=03&MID={$info['mid']}&s={$ibforums->session_id}'>{$info['prefix']}{$info['name']}{$info['suffix']}</a>)</u><br>{$info['message']}</font> </td> </tr> EOF; } function Submit_Box_h() { global $ibforums; return <<<EOF <br /> <form action='{$ibforums->base_url}act=Shoutbox' name='REPLIER' method='post' onsubmit='REPLIER.submit.disabled = true;'> {$ibforums->lang['your_shout']} [ <a href='javascript:emo_pop()'>{$ibforums->lang['smilies']}</a> ] [ <a href=javascript:location.reload()>Refresh</a> ] <br /> <textarea class='forminput' name='Post' ROWS='6' COLS='40'></textarea> <br /> EOF; } function Submit_Box_c() { global $ibforums; return <<<EOF {$ibforums->lang['your_color']} <br /> <input type='radio' name='Color' value='black' style='FILTER: Glow(color:black)' checked> <input type='radio' name='Color' value='blue' style='FILTER: Glow(color:blue)'> <input type='radio' name='Color' value='fuchsia' style='FILTER: Glow(color:fuchsia)'> <input type='radio' name='Color' value='green' style='FILTER: Glow(color:green)'> <input type='radio' name='Color' value='maroon' style='FILTER: Glow(color:maroon)'> <input type='radio' name='Color' value='navy' style='FILTER: Glow(color:navy)'> <input type='radio' name='Color' value='purple' style='FILTER: Glow(color:purple)'> <input type='radio' name='Color' value='red' style='FILTER: Glow(color:red)'> <input type='radio' name='Color' value='dodgerblue' style='FILTER: Glow(color:dodgerblue)'> <input type='radio' name='Color' value='teal' style='FILTER: Glow(color:teal)'> <input type='radio' name='Color' value='tomato' style='FILTER: Glow(color:tomato)'> <br /> EOF; } function Submit_Box_f() { global $ibforums; return <<<EOF <input type='submit' name='submit' value='{$ibforums->lang['shout_now']}' class='forminput'> </form> <br /> EOF; } function Content_Separate() { global $ibforums; return <<<EOF </iframe></td> <td valign='top' align='center' width='50%'> EOF; } function iframe_step_two($data, $height) { global $ibforums; return <<<EOF <html><head> <style type='text/css'> {$ibforums->skin['css_text']} </style> </head> <body> <script language="Javascript"> <!-- function emo_pop() { window.open('index.php?act=legends&CODE=emoticons&s=<?php echo {$ibforums->session_id}; ?>','Legends','width=250,height=500,resizable=yes,scrollbars=yes'); } //--> </script> <table height='100%' width='100%' border='0' class='forum2' cellspacing='0' cellpadding='0'> <tr vAlign='top'><td> <table width='100%' border='0' cellspacing='0' cellpadding='5'> <tr> <td> <iframe name='SB_TWO' src='{$ibforums->vars['board_url']}/sb_iframe.php?s={$ibforums->session_id}&step=three' width='100%' height='$height' scrolling='yes' align='center' frameborder='1' marginwidth='0' marginheight='0'> </iframe> </td> </tr> <tr vAlign=middle> <td > $data </td> </tr> </table> </td></tr></table> </body> </html> EOF; } function PageTop() { global $ibforums; return <<<EOF <script language="Javascript"> <!-- function emo_pop() { window.open('index.php?act=legends&CODE=emoticons&s=<?php echo $ibforums->session_id; ?>','Legends','width=250,height=500,resizable=yes,scrollbars=yes'); } //--> </script> <div class="tableborder"> <div class='maintitle' align='left'><{CAT_IMG}> {$ibforums->vars['board_name']} {$ibforums->lang['shoutbox']}</div> <table width="100%" align='center' border="0" cellspacing="1" cellpadding="4"> EOF; } function shoutfile($s) { global $ibforums; return <<<EOF <head> {$s['css']} <meta http-equiv='refresh' content='{$s['refresh']}'></head> <body> {$s['shouts']} </body> EOF; } function sb_iframe_login() { global $ibforums; return <<<EOF <!--<a target='_blank' href='{$ibforums->vars['board_url']}/index.{$ibforums->vars['php_ext']}?s={$ibforums->session_id}&act=Login'>--> <form name='REPLIER'> <center>{$ibforums->lang['must_login']}<br><br> <table align='center' cellpadding='2' cellspacing='0'> <tr> <td align='center' > <input type="button" value="{$ibforums->lang['login']}" class='forminput' onclick="parent.location='{$ibforums->vars['board_url']}/index.{$ibforums->vars['php_ext']}?s={$ibforums->session_id}&act=Login'"> </td> </tr> <tr> <td align='center' > <input type="button" value="{$ibforums->lang['refresh']}" class='forminput' onclick="location.reload()"> </td> </tr> </table> </form> </center> EOF; } function css_inline($css="") { global $ibforums; return <<<EOF <style type='text/css'> {$css} </style> EOF; } function begin_shoutbox() { global $ibforums; return <<<EOF <tr> <td class='post1'> <table border="0" cellspacing="0" cellpadding="10" width='100%'> <tr> <td vAlign='top' align='left' width='50%'> EOF; } function begin_shoutbox_w() { global $ibforums; return <<<EOF <tr> <td class='post1'> <table border="0" cellspacing="0" cellpadding="10" width='100%'> <tr> <td vAlign='top' align='left' width='50%'> <iframe src='{$ibforums->vars['board_url']}/sources/shouts.htm' frameborder='no' scrolling='auto' width='100%' height='725'>Your browser does not support inline frames (iframes) EOF; } function show_banner($bannerurl) { global $ibforums; return <<<EOF <tr> <td colspan=2 class='post1' align=center><img border='0' src='$bannerurl'></td> </tr> EOF; } function Render_Shout($r) { global $ibforums; return <<<EOF <table><tr><td>{$r['ava']}</td><td><b>{$ibforums->lang['posted_by']}</b> <a href='{$ibforums->base_url}act=Profile&CODE=03&MID={$r['mid']}'>{$r['prefix']}<b>{$r['name']}</b>{$r['suffix']}</a> - <b>{$r['time']}</b><br />Total Shouts: <a href='{$ibforums->base_url}act=Shoutbox&author={$r['name']}'>{$r['dshouts']}</a></td></tr></table><p align=left> {$r['message']}<br><br> EOF; } } ?> Edited January 6, 2004 by craxelburger Share this post Link to post
Stefan 0 Report post Posted January 6, 2004 Wahrscheinlich hast du in deiner sb_iframe.php das Macro ROOT_PATH nicht gesetzt. In der Datei direkt unter <?php setze mal define( 'ROOT_PATH', "./" ); Share this post Link to post
craxelburger 0 Report post Posted January 6, 2004 (edited) Super, Danke. Schon besser . Siehe hier. Naja, von einem Fehler zum nächsten. Aber warum wird eigentlich das Standardskin verwendet? Edited January 6, 2004 by craxelburger Share this post Link to post
Stefan 0 Report post Posted January 6, 2004 Der Datenbankfehler sagt dir, das die Spalte use_shout in der Tabelle ibf_members fehlt. An deiner Stelle würde ich den dinstaller.php mal ausführen, dann werden die fehlenden Spalten auch angelegt. Hast du die Anleitung mal gelesen? Nebenbei, so wie ich das sehe, nimmt er das Skin, was der jeweilige User ausgewählt hat. Share this post Link to post
craxelburger 0 Report post Posted January 6, 2004 (edited) Den SQL-Fehler finde ich bestimmt. Das sind wahrscheinlich nur Versionsunterschiede, da manche Variablen anders benannt sind. Aber mit dem Skin kann ich mir echt nicht erklären, da für Gäste ein anderes Standardskin ausgewählt ist. Edited January 6, 2004 by craxelburger Share this post Link to post
Stefan 0 Report post Posted January 6, 2004 In der neuen Version heißt die Spalte wohl use_dshoutbox. Also muß du das Query anpassen. Share this post Link to post
craxelburger 0 Report post Posted January 6, 2004 jepp, mache ich heute abend. Vielen Dank schonmal Stefan. Ich hoffe, dass ich jetzt klarkomme. Share this post Link to post
craxelburger 0 Report post Posted January 6, 2004 (edited) Ok, ich habe mich jetzt einige Stunden mit dem Script beschäftigt. Alle angezeigten und weiter von mir gefundenen SQL-Fehler sind korrigiert . Leider bleibt meine sb_iframe.php immer bei der Meldung "no_view_shoutbox" hängen. Eigentlich sollte es aber genauso wie diese sb_iframe.php von boobkettle.net reagieren. Es verwundert mich daher auch etwas, dass meine sb_iframe den eigentlich deaktivierten Invision-Originalskin verwendet. Aber diese beiden Problemchen sind bestimmt nur noch Kleinigkeiten, oder? Das Script erkennt schon korrekt, ob ein Member eingeloggt ist oder nicht und zeigt demendsprechend entweder "You must be logged in to use the shoutbox." oder das Shoutfenster an . So, hier noch der Download meiner derzeitigen sb_iframe.php, shoutbox.php und der Skindatei... EDIT: Ich habe jetzt das komplette (von mir bis hierhin editierte) Script ins Archiv gepackt, falls es jemand testweise installieren will. Edited January 6, 2004 by craxelburger Share this post Link to post
Stefan 0 Report post Posted January 7, 2004 Ich hab mal ganz kurz geschaut. Das du immer bei no_view_shoutbox hängen bleibst, kann folgende Ursachen haben:Die Gruppe, wo das Mitglied drin ist, darf das Forum nicht anschauen.Die Gruppe, wo das Mitglied drin ist, darf die Box nicht anschauen.Oder das Mitglied darf die Box nicht benutzenWahrscheinlich wird ein Wert nicht aus der DB geholt, könnte ich mir vorstellen. Klammere mal nacheinander folgenden Quelltext aus if ($ibforums->member['g_view_board'] != 1) { $this->iframe_error('no_view_shoutbox'); } if ($ibforums->member['g_view_shoutbox'] != 1 OR $ibforums->member['use_dshoutbox'] != 1) { $this->iframe_error('no_view_shoutbox'); } Und wenn man dann weiß, an welcher Abfrage es liegt, kann man mal schauen, welcher Wert nicht gesetzt ist. Share this post Link to post
craxelburger 0 Report post Posted January 7, 2004 (edited) Ah, ich glaub jetzt hab ichs. Das waren wieder versionsabhängige Probleme. Und zwar handelt es sich hier um die Ban-Funktion. Ist ein Member aus der Shoutbox gebannt, bekommt er sie auch nicht zu sehen. Ich habe jetzt die folgende Funktion so abgeändert: if ($ibforums->member['use_dshoutbox'] != 1) { $this->iframe_error('no_view_shoutbox'); } Stefan, aber wofür waren die der Originalfunktion zwei Variablen? Kannst Du das nachvollziehen? Ich habe jedenfalls wie Du siehst eine jetzt rausgenommen. Hier nochmal die Originalfunktion: if ($ibforums->member['g_view_shoutbox'] != 1 OR $ibforums->member['use_dshoutbox'] != 1) { $this->iframe_error('no_view_shoutbox');} Edited January 7, 2004 by craxelburger Share this post Link to post
Stefan 0 Report post Posted January 7, 2004 Bei der originalen Version kann man der Gruppe den Zugriff auf die Shoutbox abschalten und halt nochmal explizit für einen Benutzer, sprich auch wenn die Gruppe die Erlaubnis hat. Wobei die Abschaltung vorrangig ist, sprich wenn die Gruppe keine Erlaubnis hat, bringt es auch nichts, wenn du es dem User erlaubst. So interpretiere ich jedenfalls die IF-Anweisung. Hab den Mod ja nie installiert. :) Share this post Link to post
craxelburger 0 Report post Posted January 7, 2004 Ja, es gibt auch in der neuen Version diese Gruppenoption im ACP. Ich werde heute abend mal versuchen herauszufinden wie die Funktion dann korrekt lauten müsste. Share this post Link to post
craxelburger 0 Report post Posted January 7, 2004 sb_iframe.php läuft jetzt. Hatte noch ein paar Probleme, die ich aber selbst gelöst hab. Vielen Dank, Stefan. Demo: http://skypeflirt.s3.cybton.com/sb_iframe.php Nun werde ich mich an den Einbau ins Portal machen... Share this post Link to post
craxelburger 0 Report post Posted January 7, 2004 Stefan, wie bekomme ich das Farb-Auswahl-Menü (siehe hier) auch in meine sb_iframe.php rein? Die Auswahl der Farben ist eine neue Funktion der Shoutbox, die daher in sb_iframe.php noch nicht enthalten war. Ich habe es zwar hinbekommen das die sb_iframe.php Texte jetzt auch farbig darstellen kann (konnte sie vorher natürlich auch nicht), schaffe es aber nicht dieses Auswahlmenü hinenzubasteln. Hier nochmal der Link zu meiner sb_iframe.php: Link Und hier ein DL-Link zum aktuellem Quellcode aller Shoutbox-Dateien: Download Share this post Link to post
Stefan 0 Report post Posted January 8, 2004 Wenn das deine Shoutbox.php ist, dann sollte folgendes funktionieren: Überhalb von: $message = preg_replace('/\[img]/i', '', $message); $message = preg_replace('/\[\/img]/i', '', $message); $message = preg_replace('/<img/i', '', $message); trägst du folgendes ein: if (!empty($color)) { $message = "[COLOR=".$color."]".$message."[/COLOR]"; } Natürlich dann im Skin das entsprechende Feld mit der Auswahl hinzufügen. Share this post Link to post
craxelburger 0 Report post Posted January 8, 2004 (edited) In der Shoutbox.php? Ich dachte das ich es irgendwie in die sb_iframe.php und in die Skindatei hinenkriegen muss, da die Shoutbox.php doch normalerweise mit der generierten Iframe-Box nichts zu tun hat... Edited January 8, 2004 by craxelburger Share this post Link to post
Stefan 0 Report post Posted January 8, 2004 Hast ja recht, aber ich weiß auch nicht genau, wo welche Datei zugehört oder was sie macht. Dennoch kannst du die beschriebene Änderung auch in der sb_iframe.php machen und in der Skindatei dann im Formular noch den entsprechenden Code einbauen. Share this post Link to post
craxelburger 0 Report post Posted January 8, 2004 (edited) Was ich noch rausgefunden hab: Also es handelt sich auf jeden Fall um die "function Submit_Box_c()", die bereits in der Skindatei drin ist. Diese sorgt für das Farbauswahlmenü. In der Shoutbox.php wird das folgendermassen aufgerufen: if ($ibforums->vars['sb_showcolors']==1){ $this->output .= $this->html->Submit_Box_c(); } Aber wie krieg ich das jetzt hin das das Menü hier auch untendrunter angezeigt wird? EDIT: Natürlich nur wenn man eingeloggt ist und posten kann. (also in iframe_step_two) Edited January 8, 2004 by craxelburger Share this post Link to post
Stefan 0 Report post Posted January 8, 2004 Suchen in der Skindatei: function sb_iframe_button() { global $ibforums; return <<<EOF <center> [ <a href='javascript:emo_pop()'>{$ibforums->lang['smilies']}</a> | <a target='_blank' href='{$ibforums->vars['board_url']}/index.{$ibforums->vars['php_ext']}?s={$ibforums->session_id}&act=Shoutbox'>{$ibforums->lang['view']}</a> ]<br> <form action='{$ibforums->vars['board_url']}/sb_iframe.php?s={$ibforums->session_id}&step=two' name='REPLIER' method='post' onsubmit='document.REPLIER.submit.disable = True;'> <input type='text' size='15' name='Post' value='' class='forminput'><br><br> Darunter einfügen: <!--color_spaceholder--> In der Sourcedatei dann folgendes suchen: if ($ibforums->input['step']=="two") { if (!$ibforums->member['id']) $data = $this->html->sb_iframe_login(); else $data = $this->html->sb_iframe_button(); Dort dann die Zeile $data = $this->html->sb_iframe_button(); ändern in $data = ($ibforums->vars['sb_showcolors']==1) ? str_replace("<!--color_spaceholder-->", $this->html->Submit_Box_c(), $this->html->sb_iframe_button()) : $this->html->sb_iframe_button(); Nun kannst du auch entscheiden, ob es eingefügt werden soll oder nicht mittels dem Parameter sb_showcolors in der conf_global.php bzw. an der entsprechenden Stelle im ACP. Share this post Link to post
craxelburger 0 Report post Posted January 8, 2004 (edited) Super, Danke Stefan! Genauso hab ich mir das vorgestellt. Es gibt jetzt nur noch ein kleines Problem: Die ausgewählte Messagefarbe wird beim Post nicht mit in die Nachricht übernommen. USER: test PASS: test Edited January 8, 2004 by craxelburger Share this post Link to post
Stefan 0 Report post Posted January 8, 2004 Suchen: function Post_Shout() { global $ibforums, $DB, $std, $flood_control; $name = $ibforums->member['name']; $message = $ibforums->input['Post']; Darunter einfügen: $color = $ibforums->input['Color']; Share this post Link to post