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

Widget Controller zurück zum Produkt

$
0
0
Hallo, ich habe mir ein Widget gebaut, welches in manchen Produkten auftauchen soll.
Dieses Widget beinhaltet eine "externe" suche.
Grober geplanter ablauf:
Quote:

Öffnen des Produktes > Etwas in die Suchbox eingeben > Zurück zum Produkt mit Suchergebnissen.
Leider weiß ich nicht wie ich wieder zu meinem parent controller komme.
Sicherlich könnte ich das ganze mit ajax lösen und die werte mit JS in das entsprechende Feld schreiben, das ist aber nicht wirklich Sinnvoll.

Meine Metadata:
PHP Code:

$aModule = array(
    
'id'           => 'document_search',
    
'title'        => 'Document Search',
    
'description'  => 'Dokumenten Suche in Produkt',
    
'thumbnail'    => '',
    
'version'      => '0.1',
    
'extend' => array(
    ),
    
'files' => array(
        
'document_search' => 'document_search/controllers/document_search.php',
    ),
    
'templates' => array(
        
'document_search.tpl' => 'document_search/views/document_search.tpl'
    
),
    
'blocks' => array(
        array(
'template' => 'page/details/inc/productmain.tpl''block' => 'details_productmain_variantselections''file' => 'blocks/block_document_search.tpl'),
    ),
); 

template document_search.tpl
PHP Code:

    </form> <!-- schließe parent form -->



    <
form action="[{$oView->getWidgetLink()}]" method="get" style="min-height: 60px; min-width: 60px; background: blue;">
        [{
$oViewConf->getHiddenSid()}]
        [{
$oViewConf->getNavFormParams()}]
        <
input type="hidden" name="cl" value="document_search" />
        <
input type="hidden" name="fnc" value="search" />
        <
input type="hidden" name="oxwparent" value="details">
        <
input type="hidden" name="cnid" value="[{$oView->getCategoryId()}]">
        <
input type="hidden" name="anid" value="[{if !$oDetailsProduct->oxarticles__oxparentid->value}][{$oDetailsProduct->oxarticles__oxid->value}][{else}][{$oDetailsProduct->oxarticles__oxparentid->value}][{/if}]">
        <
input type="hidden" name="actcontrol" value="[{$oViewConf->getTopActiveClassName()}]"
      
        <
input type="text" name="search" />
        <
input type="submit" name="name" />
    </
form

block document_search
PHP Code:

[{$smarty.block.parent}]
classname

[{
oxid_include_widget cl="document_search" _parent=$oView->getClassName() nocookie=1 _navurlparams=$oViewConf->getNavUrlParams() _object=$oView->getProduct() anid=$oViewConf->getActArticleId() skipESIforUser=}] 

der controller / document_search
PHP Code:

class document_search extends oxWidget
{
  


    protected 
$_sThisTemplate 'document_search.tpl';

    protected 
$_aComponentNames = array( 'oxcmp_cur' => 1'oxcmp_shop' => 1'oxcmp_basket' => 1'oxcmp_user' => );




    public function 
render()
    {
        
parent::render();
        return 
$this->_sThisTemplate;
    }


    public function 
search()
    {
        
$sSearchQuery oxConfig::getParameter'search' );
        echo 
'<h1> query: ' $sSearchQuery '</h1>';


    } 

Wie kann ich erzwingen das ich nach dem klick auf suche, wieder in meinem Produkt, in dem ich die suche gestartet habe, lande. Und dort dann die ergebnisse der suche anzeige?

Viewing all articles
Browse latest Browse all 6951

Trending Articles