Dropdown in Artikelkonfiguration

Gesperrt
deeloco
Beiträge: 6
Registriert: Fr 12. Sep 2008, 11:19
Kontaktdaten:

Dropdown in Artikelkonfiguration

Beitrag von deeloco »

Hätte da mal eine kleine Frage an die Profis hier. Bin leider nicht so die Php leuchte :P

Ich möchte ein Modul schreiben das mir alle XML Datein aus einem bestimmten Verzeichnis (in meinem Fall templates) ausliest und diesen dann in der Artikelkonfiguration als Dropdown liste ausgibt.

Mit der Xml soll ein Flash gefüttert werden. Jetzt habe ich folgendes Problem. Das kleine Script das ich geschrieben habe funktioniert wenn ich es im Output des Moduls platziere wunderbar. Sobald ich es in den Modulinput schiebe (wo es ja auch normalerweise sein muss) ist das Dropdown leer und gibt mir nichts aus. :(

Code: Alles auswählen

?><?php

//////// MODUL EINGABE

//verzeichnis lesen
$mydir = getcwd()."/templates/"; 
$verz = dir($mydir); 
while($entry=$verz->read()){ 
        if($entry != "." && $entry != ".."){ 
        $dateinamen[] = $entry; 
    } 
} 
$verz->close(); 

//Ausgabe 

echo '<select name="CMS_VALUE[1]">';

rsort($dateinamen); 
while(list($key, $val) = each($dateinamen)) { 

  if(substr($val, -9) == ".xml.html") { 
        echo '<option value="'.$val.'">'.$val.'</option>';
    } 
}
echo '</select>';
?><?php

.xml.html ergibt sich daraus das contenido .html automatisch an neue modultemplates anfügt. Ist aber kein problem da Flash da auch so verarbeiten kann.

Die Ausgabe des Muduls fehlt hier noch die ist auch nicht das Problem ich würde nur gerne wissen warum mir der Script im Eingabe bereich des Moduls nichts mehr ausgibt. Im Ausgabe Bereich jedoch tadellos den inhalt ausliest und auch ausgibt. Hat jemand einen Tip ??
Oldperl
Beiträge: 4316
Registriert: Do 30. Jun 2005, 22:56
Wohnort: Eltmann, Unterfranken, Bayern
Hat sich bedankt: 6 Mal
Danksagung erhalten: 4 Mal
Kontaktdaten:

Beitrag von Oldperl »

Hallo deeloco,

getcwd() gibt dir das Arbeitsverzeichnis zurück. welches aber für Modul In- und Output unterschiedlich ist. Da der Input nur im Backend vorhanden ist, wird dort das Arbeitsverzeichnis des Backend genommen, dort liegt aber dein template-Verzeichnis nicht.

Gruß aus Franken

Ortwin
ConLite 3.0.0-dev, alternatives und stabiles Update von Contenido 4.8.x unter PHP 8.x - Download und Repo auf Gitport.de
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog
OliverL
Beiträge: 870
Registriert: Do 28. Jun 2007, 09:28
Kontaktdaten:

Beitrag von OliverL »

ich benutze das:

Code: Alles auswählen

<select name="CMS_VAR[1]" style="width: 100%;" class="text_medium">
  <option value=""><?php echo i18n("Please select"); ?></option>
  <?php
    $myDir = opendir($cfgClient[$client]['tpl']['path']);
    $myTemplates = array();
            
    while( $myFile = readdir($myDir) ) {
        if( $myFile != '.' and $myFile != '..' and substr( $myFile,-4,4 ) == ".xml" ) 
            $myTemplates[] = '<option value="'.$myFile.'">'.$myFile.'</option>'."\n";
    }
    
    sort($myTemplates);
    $myTemplates = implode('', $myTemplates);
    $myTemplates = str_replace('value="'."CMS_VALUE[1]".'"', 
                                 'value="'."CMS_VALUE[1]".'" selected="selected"',
                                 $myTemplates);
    echo $myTemplates;
  ?>
</select>

Info:
1. im Select-Name muss CMS_VAR stehen und nicht CMS_VALUE
2. Als Basis-Verzeichnis nimmst du am besten die Client-Configs:
$cfgClient[$client]['tpl']['path']
3. im Output kannst du dann das machen:
$xml_template = $cfgClient[$client]['path']['htmlpath'].'template/'."CMS_VALUE[1]";

mfg OliverL
deeloco
Beiträge: 6
Registriert: Fr 12. Sep 2008, 11:19
Kontaktdaten:

Beitrag von deeloco »

Vielen Dank ertmal für die Antwort.

Ich werde deine Variante mal testen.

Grüße

Sven
Gesperrt