$this->getConfig()->getParamete() Problem

Hallo Leute ich habe ein kleines Problem.

Und Zwar versuche ich mir aus einem Template eine Variable zu ziehen um genauer zu seien poste ich hier mal den Code.

PHP Code:
$sCsvField = $this->getConfig()->getParameter(‘sCsvField’);
Das ist meine PHP Datei und die Variable wird hier erzeugt

PHP Code:
[{foreach from=$aCsvFieldsList item=sCsvField }]
Leider zieht sich der Code nix und die Daten bleiben leer.

Hallo,
übergibst du die Daten mit PHP auch ans Frontend? Also mit $this->_aViewData zum Beispiel. Schöner ist es wenn im Template eine Getter-Methode aufrufst, die dir dann den Wert zurückliefert.

Schick mal den kompletten PHP Code der Methode, die du hier verwendest.

Grüße
Fabian

[{foreach from=$aCsvFieldsList item=sCsvField }] generiert doch die $sCsvField variable in der TPL oder liege ich da Falsch ?

Das ist das Standard import Script von OXID also die Genimport_main.tpl und die Genimport_main.php die ich nutze ich will nur eine Automatische Auswahl der DB Tabellen dazu implementieren um z.B. von Groupon die csv schnell zu importieren.

Hallo,
die foreach generiert aus dem Array $aCsvFieldsList die $sCsvField Variable. Das ist richtig. Allerdings kennt das Template das Array $aCsvFieldsList ja nicht automatisch. Du musst diese Variable per PHP an das Template übergeben. In der genimport_main.php werden die Variablen in der render Methode mit $this->_aViewData übergeben. Zum Beispiel so:

$this->_aViewData['sNavStep'] = $sNavStep;

Das musst du mit deinem array auch machen.

Grüße
Fabian

Ich glaub wir reden an einander vorbei.

Ich will die Variable $sCsvField aus der TPL datei in mein PHP Scrypt ziehen.

Das ich mit dem befehl: $this->_aViewData[‘sNavStep’] = $sNavStep; von PHP nach TPL Pushen kann weis ich ja.

aber wie ziehe ich den aus der TPL die $sCsvField in das PHP Scyrpt…

public function fill(){
$sort = "geht nit";
$this->_sort = $sort;
$this->_aViewData['sort'] = $sort;
$sCsvField = $this->getConfig()->getParameter( 'sCsvField' );
$this->_sCsvField = $sCsvField;
echo "ICH FUNKTIONIERE " . $sCsvField . " + " . $sort;
/* Wählt die Passenden Tabellen aus */
if ($this->_sCsvField == "fulfillment_line_item_id")
{$sort = "OXID";}
elseif ($this->_sCsvField == "groupon_number")
{$sort = "OXORDERNR";}
else
{$sort = "Nicht gefunden";}

}

Ansonsten funktioniert alles bis halt der Rot gegenzeichnete Code.

Du hast Recht wir reden aneinander vorbei :wink:

Jetzt weiß ich aber was du willst. Hierfür gibt es sogar bereits eine Methode in der genimport_main.php. Wenn du in der genimport_main bist (oder einer Erweiterung davon), kannst du dir die Felder mit $this->_getCsvFieldsNames(); holen. Dann bekommst du das Array, das auch ans Template übergeben wird.

Grüße
Fabian

ist es nicht möglich das ich mir immer wieder die sCsvField hole weil ich rufe das so auf in der tpl.

    [{foreach from=$aCsvFieldsList item=sCsvField }]
  [{ $gpimp }]
  <tr>
        <td class="edittext" width="1%" nowrap>[{$sCsvField}]:  </td>
        <td class="edittext">
            <select name="aCsvFields[[{$sCsvField}]]" style="width: 210px;">
                <option value="">[{ $sort }]</option>
            [{foreach from=$aDbFieldsList item=sDbField }]
                <option value="[{ $sDbField }]" [{ if $sDbField == $sCsvField }]selected[{/if}]>[{ $sDbField }]</option>
            [{/foreach}]
            </select>
            [{ oxinputhelp ident="HELP_GENIMPORT_DBFIELDS" }]
        </td>
    </tr>
    [{/foreach}]

Somit könnte ich ja für jeden foreach Aufruf meine Funktion startet die checked die $sCsvField und gibt mir dann meine $sort aus.