Seite 1 von 1

Beim konfigurieren falsche/doppelte Module in Container

Verfasst: So 18. Jun 2006, 20:55
von Martuno
Hallo,

habe ein seltsames Verhalten mit Contenido und hoffe jemand hat eine zündende Idee! Habe ein konfigurierbares Modul, welches wunderbar funktioniert. Nun habe ich ein zweites Modul gemacht, welches dem ersten sehr ähnlich ist und auf genau die gleiche Art konfigurierbar ist.

Wenn ich nun beide Module im gleichen Template einbaue, zeigt die Config-Seite immer 2x das erste der beiden an. D.h. beim konfigurieren sehe ich dann den Namen des 1. Moduls in beiden Containern, obwohl der zweite Container ein anderes Modul haben sollte. Die konfigurierbaren Felder entsprechen ebenfalls 2x denjenigen des ersten Moduls. Interessant, nicht?!?

Das Modul mit input und output (auf das wesentliche reduziert):

Code: Alles auswählen

?>
<table cellspacing="0" cellpadding="0" cellpadding="4">
    <tr>
        <td class="text"><?php echo mi18n("Kursname");?>:</td>
        <td><select name="CMS_VAR[13]" size="1">
            <option value=""><kein Kurs></option>
<?php
$kursDD = create_function('', '
  //connect to db (with var $db)
  $db = mysql_connect("localhost", $user, $pwd);
  $select = mysql_select_db("abc", $db);
  if ($db) {
    $sql = "SELECT distinct(typ) FROM abc_agenda WHERE bereich=\'abc\' AND kategorie=\'kurs\'";
    $rs = mysql_query($sql, $db);
    if ($rs) {
        while ($row=mysql_fetch_array($rs, MYSQL_ASSOC)) {
          $line = implode(";!", $row);
          unset($row);
          $row = explode(";!", $line);
          $selected = ($row[0] == "CMS_VALUE[13]") ? "selected" : "";
          print "<option $selected>$row[0]</option>\n";
        }
    }
  }
');
$kursDD();
?>
        </select></td>
    </tr>
    </table>
<?php

Code: Alles auswählen

Gewählter Kurs: CMS_VALUE[13]
Dabei mache ich einen Zugriff auf eine externe Datenbank. Habe das ganze extra in einer anonymen php Funktion gekapselt, damit die Variablen nur lokale Gültigkeit haben.
Wie schon oben geschrieben, solang ich nur _ein_ solches Modul habe, funktioniert das ganze bestens! Any idea?!?

Contenido-Version 4.6.2

Gruss & Danke!
Martin

Verfasst: So 18. Jun 2006, 20:57
von Halchteranerin
du musst verschiedene Zahlen bei CMS_VALUE benutzen, sonst klappt das nicht, wenn beide Module auf derselben Seite eingesetzt werden.

Verfasst: So 18. Jun 2006, 21:16
von Martuno
Danke! Das war aber prompt!

dachte die Variablen wären pro container gesetzt. Aber jetzt wo ich das weiss ist das kein Problem. Tut soweit wieder. Danke! Dann muss ich dies wohl als Anfängerfrage anschauen?!? ;-)

D.h. dann am besten gleich bei allen Modulen unterschiedliche CMS_VALUE[n] zu verwenden, oder?


Gruss
Martin

Verfasst: So 18. Jun 2006, 21:53
von Halchteranerin
Bei allen Modulen, die innerhalb einer Seite eingesetzt werden. Wenn du z.B. mehrmals das Modul Text/HTML auf EINER Seite einsetzen willst, musst du auch Kopien davon anlegen und die Nr. bei den Variablen aendern, so dass es eben jede Nr. bei gleichen Variablen nur jeweils einmal gibt. Wenn du Module auf verschiedenen Seiten einsetzt, da ist es egal.

Verfasst: So 18. Jun 2006, 22:55
von HerrB
Ähm ... CMS_VAR und CMS_VALUE werden Container-abhängig gespeichert - das ist es nicht. Die Aussage gilt aber für CMS_HTML usw.

Gruß
HerrB

Verfasst: Mo 19. Jun 2006, 07:12
von Halchteranerin
HerrB hat geschrieben:Ähm ... CMS_VAR und CMS_VALUE werden Container-abhängig gespeichert - das ist es nicht.
Aehm, ich wusste es nicht mehr ganz genau, fuer wen das gilt, aber wieso hat dann bei ihm die Aenderung des Zahlenwerts beim CMS_VALUE geholfen? :roll:

Verfasst: Mo 19. Jun 2006, 07:22
von Martuno
Vor dem 1. Post habe ich verschiedenes ausprobiert, u.a. die drop-down Auswahlliste anstatt dynamisch per externe db statisch (hardcoded) abzufüllen. Dann haben sich die beiden Module nicht mehr gebissen, obwohl ich ja noch immer die gleichen CMS_VAR[n] und CMS_VALUE[n] verwendet hatte.

Interessant, nicht?

Bin eigentlich ganz froh, dass CMS_VAR/CMS_VALUE Container abhängig gespeichert werden. Wenn ich sonst ein fremdes Modul importierte, müsste ich ja alle CMS_VAR durch eigene Nummern ersetzen um auf Nummer sicher zu gehen.

Nun bin ich aber erst recht gespannt, woran es liegt! Schliesslich zeigt bereits die Modul-config ein doppeltes Modul. :-)


Gruss
Martin