Jump to content
InvisionCommunity.de - Der Deutsche Invision Community Support
Sign in to follow this  
craxelburger

Was mache ich falsch?

Recommended Posts

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('/\%7Boption%7D/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

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

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}>&nbsp;{$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}>&nbsp;{$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}>&nbsp;{$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>&nbsp;{$r['message']}<br><br>

EOF;

}


}

?>

Edited by craxelburger

Share this post


Link to post

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

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

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 by craxelburger

Share this post


Link to post

Ok, ich habe mich jetzt einige Stunden mit dem Script beschäftigt.

Alle angezeigten und weiter von mir gefundenen SQL-Fehler sind korrigiert :D .

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? :unsure:

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 :D .

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 by craxelburger

Share this post


Link to post

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 benutzen

Wahrscheinlich 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

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 by craxelburger

Share this post


Link to post

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

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

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

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 by craxelburger

Share this post


Link to post

Hast ja recht, aber ich weiß auch nicht genau, wo welche Datei zugehört oder was sie macht. :P

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

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 by craxelburger

Share this post


Link to post

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

Super, Danke Stefan! :P

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 by craxelburger

Share this post


Link to post

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

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this  

×