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

Fehler in der admin_skin.php

Recommended Posts

Hallo Zusammen,

ich stelle gerade fest, dass wenn ich unter 'Manage User Groups' -> 'Edit Group' oben die folgende Fehlermeldung steht:

Warning: Invalid argument supplied for foreach() in /forum/sources/Admin/admin_skin.php on line 369
Den Code dazu haben wir hier:
	function form_dropdown($name, $list=array(), $default_val="", $js="") {


  if ($js != "")

  {

 	 $js = ' '.$js.' ';

  }


  $html = "<select name='$name'".$js." class='dropdown'>\n";

  

  foreach ($list as $k => $v)

  {

  

 	 $selected = "";

 	 

 	 if ( ($default_val != "") and ($v[0] == $default_val) )

 	 {

    $selected = ' selected';

 	 }

foreach() steht genau in Zeile 369.

Kann mir jemand helfen?

Grüße,

Dirk

Share this post


Link to post

Einfach ist gut. Hab da ein paar Mods über den ModInstaller von Peter eingefügt. Da ist ersetzen nicht so einfach...

Share this post


Link to post

So, habe nochmal etwas rumgeschaut und die Mods entfernt und wieder eingefügt. (Was ja mit dem ModInstaller von Peter wunderbar einfach geht :thumb_up:) Dabei ist mir aufgefallen, dass es wohl an dem Mod "Create BBCodes in ACP Version 1.5b" von Peter liegt. Interessant ist, dass er gar keine Änderungen an der admin_skin.php macht... ???

Share this post


Link to post

Aber was da jetzt wie zusammenhängt und warum der mit dem Mod ein Problem hat weißt du nicht zufällig? Wäre was Feines.

Share this post


Link to post

Ich kann dir sagen, das der Parameter $list falsch übergeben wurde und deshalb der Fehler in der Funktion auftritt. Was aber an dem Mod falsch ist, kann ich dir aber nicht sagen, da ich Peters Mods nicht einsetze.

Du muß halt schauen, ob er irgendwo die Methode form_dropdown in dem Mod verwendet.

Share this post


Link to post

Ja, er fügt in die Datei sources/Admin/ad_groups.php unter dem Code:

                                                  $SKIN->form_yes_no("g_hide_from_list", $group['g_hide_from_list'] )

                                         )      );
das Folgende ein:
//-- mod_bbcode begin

        if ($IN['adsess'] == "") {

            $ADMIN->lang_id = $INFO['default_language']==""?'en':$INFO['default_language'];

        } else {

            $DB->query("SELECT m.language FROM ibf_members m LEFT JOIN ibf_admin_sessions s ON (m.id = s.member_id) WHERE (s.id = '".$IN['adsess']."')");

            while ($r = $DB->fetch_row() ) {

                $ADMIN->lang_id = $r['language'];

            }

            if ( $ADMIN->lang_id == "") { $ADMIN->lang_id = $INFO['default_language']==""?'en':$INFO['default_language']; }

        }

        

        $lang = $std->load_words($this->lang, 'mod_bbcode_lang', $ADMIN->lang_id);


        $DB->query("SELECT * FROM ibf_bbcodes_sets");


        while ($s = $DB->fetch_row())

            $sets[] = array('0' => $s['id'], '1' => $s['name'] );

        $ADMIN->html .= $SKIN->add_td_row( array($lang['ad_bbcodeset'],

                                                 $SKIN->form_dropdown("button_set", $sets, $group['mod_bbcodes_set']),

                                          )      );

//-- mod_bbcode end

Die form_dropdown wollte ich fett machen, ging aber nicht, sie ist ziemlich am Ende des neuen Codes zu finden. Kannst du da sehen was er falsch übergibt?

Ist auch die einzige Stelle an der die Funktion genutzt wird.

Vielen Dank schon mal.

Dirk

Edited by Dirk

Share this post


Link to post

      $DB->query("SELECT * FROM ibf_bbcodes_sets");

      while ($s = $DB->fetch_row())
          $sets[] = array('0' => $s['id'], '1' => $s['name'] );

Es wird ein DB Statement abgesetzt und anschließend ein Array mit den Ergebniszeilen gefüllt. Wenn es aber keine Ergebnisse in der DB gibt, wird die while-Schleife nicht ausgeführt und somit bleibt $sets undefiniert, weil Peter es vorher nicht initialisiert hat und auch diesen Fall nicht abgefangen hat. ;)

Schau mal in der Datenbank in die Tabelle ibf_bbcodes_sets, was da drin steht. Ich schätze mal vorsichtig, das dort nichts drin steht.

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  

×