Quantcast
Channel: OXID Community Forum
Viewing all articles
Browse latest Browse all 6951

Erweiterung der POST-Params bei "In den Warenkorb legen"

$
0
0
Hallo,

ich bin ein Frischling bei der Entwicklung von OXID-Modulen und habe sogleich eine Frage. Ich habe diverse neue Felder in die Detail-Ansicht der Produkte eingefügt. Das habe ich so angestellt, dass ich die DB erweitert habe, um bestimmten Produkten eine Anzahl X und den Typ der Input-Felder zuordnen kann. Daraufhin habe ich die Klasse oxList erweitert:

PHP Code:

<?php
class serializerForm extends oxList {

    protected 
$_sObjectsInListName 'formelement';

    public function 
getFormElements($sProductId$bOnlyActive true) {
        
//echo $sSelect;
        
$oBaseObject $this->getBaseObject();

        
$sSerializerTable $oBaseObject->getViewName();

        
$sProductId oxdb::getDb($iFetchMode)->quote($sProductId);

        
$sSelect "select $sSerializerTable.* from $sSerializerTable
                    left join dhserializermain on 
$sSerializerTable.oxmainid = dhserializermain.oxid
                    where 1 "
;

        if (
$bOnlyActive) {
            
$sSelect .= " and ".$oBaseObject->getSqlActiveSnippet()."";
        }
        
$sSelect .= " and dhserializermain.oxartid = $sProductId
                      order by 
$sSerializerTable.oxposition asc";

        
//startProfile("loadLocation");
        
$this->selectString($sSelect);
        
//stopProfile("loadLocation");

        
return $this;
    }
}

Letzteres mache auch noch für <fieldset> - das o.a. Bsp. sollte aber reichen.

Im folgenden Smarty-Template, gebe ich dann eine <ul> mit weiteren <input>-Feldern aus:

PHP Code:

[{$smarty.block.parent}]

<
span><p>Folgende Felder können Sie individualisieren:</p></span>

[{
assign var="sProductId" value=$oDetailsProduct->getId()}]
[{
assign var="aSerializerForm" value=$oView->getSerializerForm($sProductId)}]
[{
assign var="aSerializerFieldset" value=$oView->getSerializerFieldset($sProductId)}]
[{if 
$aSerializerForm|@count 0}]

    [{foreach 
from=$aSerializerFieldset item=oFieldset}]
    <
ul class="form">
        <
h3>[{$oFieldset->dhserializerblocks__oxname->value}]</h3>

        [{foreach 
from=$aSerializerForm item=oForm}]
            [{if 
$oForm->dhserializervariables__oxblockid->value == $oFieldset->dhserializerblocks__oxid->value}]
                [{if 
$oForm->dhserializervariables__oxtype->value == 'TEXTFIELD'}]
                <
li>
                    <
label class="inputlist" name="no1">[{$oForm->dhserializervariables__oxname->value}]</label><input type="text" maxlength="[{$oForm->dhserializervariables__oxmaxlength->value}]"/>
                </
li>
                [{elseif 
$oForm->dhserializervariables__oxtype->value == 'TEXTAREA'}]
                <
li>
                    <
label class="inputlist" name="no2">[{$oForm->dhserializervariables__oxname->value}]</label><textarea rows="[{$oForm->dhserializervariables__oxrows->value}]" cols="[{$oForm->dhserializervariables__oxcolumns->value}]"></textarea>
                </
li>
                [{elseif 
$oForm->dhserializervariables__oxtype->value == 'DATE'}]
                <
li>
                    <
label class="inputlist" name="no3">[{$oForm->dhserializervariables__oxname->value}]</label><input type="text" id="datepicker" />
                </
li>
                [{elseif 
$oForm->dhserializervariables__oxtype->value == 'IMAGE'}]
                <
li>
                    <
label class="inputlist" name="no4">[{$oForm->dhserializervariables__oxname->value}]</label><input type="file" />
                </
li>
                [{else}]
                <
li>
                    <
span>ErrorFeld ist nicht definiert!</span>
                </
li>
                [{/if}]
            [{/if}]
            [{/foreach}]
    </
ul>
    [{/foreach}]
        <!--<
button id="generateIDML" class="submitButton largeButton" onclick="#" >Preview generieren</button>-->
    [{/if}]
<
hr/> 

Wenn ich jetzt auf "In den Warenkorb" drücke, kommen die zusätzlichen POST-Params leider nicht an. Das Ziel ist es mit den zusätzlichen Angaben einen Prozess in Gang zu setzen, bei dem in Download-Inhalten Wörter ersetzt werden (str_replace). Dieser Vorgang ist im Prinzip schon vorbereitet, aber ich habe leider keine Ahnung, wie ich die Parameter zuverlässig weiterreichen kann. Danke für jede Hilfe.

Gruss
Domi

Edit: Bin aus Versehen im internationalen Forum gelandet. Sorry

Attached Images
File Type: png Bildschirmfoto 2013-05-13 um 16.18.00.png (54.1 KB)

Viewing all articles
Browse latest Browse all 6951

Trending Articles