Posting in the Magento forums has been disabled pending the implementation of a new and improved forum solution which should better serve the community.

For new questions please post at magento.stackexchange.com, the community-run support site for the Magento community. We will be providing updates on the new forum solution soon. For questions or concerns please email community@magento.com.

Magento Forum

Tabelle in neuem Tab unter Admin/Catalog/Produkt Information
 
RikeT
Jr. Member
 
Total Posts:  10
Joined:  2012-09-19
Germany - MV
 

Hallo!

Ich brauche Hilfe oder einen Anstoß, wo ich suchen kann.
Ich möchte unter “Produkt Information” in einem neuen Tab eine eigene Tabelle darstellen.

Eine eigene Tabelle in einem eigenen Tab habe ich schon einmal an anderer Stelle erzeugt (unter einem eigenen Menupunkt). Jetzt sollen aber die bestehenden Tabs unter “Produkt Information” erweitert werden.
Und mit Hilfe von
http://fishpig.co.uk/blog/custom-tabs-magento-product-admin.html

konnte ich auch schon einen Tab an der richtigen Stelle erzeugen. Darin wird dann der Inhalt eines Templates angezeigt. Statt dessen soll dort nun aber ein Grid hinein.
Ich habe mit “Up-Sells” verglichen, aber das hat mir leider auch noch nicht weiter geholfen.

Der Unterschied zu meinem eigenen Tab ist ja nun, dass ich das jetzt nicht selbst erzeuge, sondern der Tab von Magento intern erzeugt wird. Wie bekomme ich nun also die Tabelle dort hinein und wie weise ich den richtigen (also meinen eigenen) Controller zu? Der Controller muss ja, wenn ich das richtig verstanden habe, irgendwie den ProductController erweitern.
Auch das habe ich versucht, aber er wird nicht aufgerufen.

Ich habe schon mal im englischen Forum in einem bestehenden Thread nachgefragt, aber dort kam bisher keine Antwort.

Weiß hier jemand Rat? Oder ein kostenloses Modul, was ähnliches macht? Oder ein Tutorial?

Vielen, vielen Dank!!
Rike

 
Magento Community Magento Community
Magento Community
Magento Community
 
pietpl1
Jr. Member
 
Avatar
Total Posts:  21
Joined:  2009-11-15
Germany, NRW, Engelskirchen
 

Hallo

Als Anstoss:

Wenn in Deinem Fall bereits ein Template angezeigt wird, hast Du dann nicht die Möglichkeit Dein Grid dahinein zu legen?

Piet

 
Magento Community Magento Community
Magento Community
Magento Community
 
RikeT
Jr. Member
 
Total Posts:  10
Joined:  2012-09-19
Germany - MV
 

Danke schon einmal für die Antwort!

Das habe ich schon versucht. Aber es soll ja keine kleine feste Tabelle werden, sondern ein Mage_Adminhtml_Block_Widget_Grid mit Paging und Filter (im nächsten Schritt noch mit Serialisierung).

Ich hab mal unten den Code des Tab aus dem Tutorial reinkopiert, womit ich das Template anzeigen kann.

Da steht über der Funktion getSkipGenerateContent(), dass man einen Controller braucht. Wo und wie registriere ich den Controller, dass er den auch findet? In einem Versuch habe ich den ProductController erweitert. Aber entweder war das ganz falsch oder ich hab es nur nicht richtig gemacht - jedenfalls wurde der Controller nicht gefunden.

Oder geht das noch ganz anders?

<?php

class Namespace_Mymodule_Block_Adminhtml_Catalog_Product_Tab
extends Mage_Adminhtml_Block_Template
implements Mage_Adminhtml_Block_Widget_Tab_Interface {
 
    
/**
     * Set the template for the block
     *
     */
    
public function _construct()
    
{
        parent
::_construct();
         
        
$this->setTemplate('orderproposal/catalog/product/tab.phtml');
    
}
    
/*
    public function getGrid(){
           // ????????????????? das war ein Versuch
    }*/
     
    /**
     * Retrieve the label used for the tab relating to this block
     *
     * @return string
     */
    
public function getTabLabel()
    
{
        
return $this->__('Order Proposal / Orders');
    
}
     
    
/**
     * Retrieve the title used by this tab
     *
     * @return string
     */
    
public function getTabTitle()
    
{
        
return $this->__('Order Proposal / Orders');
    
}
     
    
/**
     * Determines whether to display the tab
     * Add logic here to decide whether you want the tab to display
     *
     * @return bool
     */
    
public function canShowTab()
    
{
        
return true;
    
}
     
    
/**
     * Stops the tab being hidden
     *
     * @return bool
     */
    
public function isHidden()
    
{
        
return false;
    
}
 
     
    
/**
     * AJAX TAB's
     * If you want to use an AJAX tab, uncomment the following functions
     * Please note that you will need to setup a controller to recieve
     * the tab content request
     *
     */
    /**
     * Retrieve the class name of the tab
     * Return 'ajax' here if you want the tab to be loaded via Ajax
     *
     * return string
     */
   
public function getTabClass()
   
{
      
// return 'my-custom-tab';
       
return 'ajax';
   
}
 
    
/**
     * Determine whether to generate content on load or via AJAX
     * If true, the tab's content won't be loaded until the tab is clicked
     * You will need to setup a controller to handle the tab request
     *
     * @return bool
     */
   
public function getSkipGenerateContent()
   
{
       
//return false;
       
return true;
   
}
 
    
/**
     * Retrieve the URL used to load the tab content
     * Return the URL here used to load the content by Ajax
     * see self::getSkipGenerateContent & self::getTabClass
     *
     * @return string
    */
   
public function getTabUrl()
   
{
             
// hier stellt er eine URL zusammen, findet er dann aber nicht...
        
return $this->_getData('grid_url') ? $this->_getData('grid_url') : $this->getUrl('*/*/orderGrid', array('_current'=>true));
   
}
  
}
?>

Controller config:

<admin>
    <
routers>
        <
catalog_product>
            <
args>
                <
modules>
                    <
namespace_mymodule before="Mage_Adminhtml_Catalog_ProductController">Namespace_Mymodule_Adminhtml_Catalog_Product</namespace_mymodule>
                </
modules>
            </
args>
        </
catalog_product>
    </
routers>
  </
admin>

Controller:

<?php
require_once 'Mage/Adminhtml/controllers/Catalog/ProductController.php';

class 
Namespace_Mymodule_Adminhtml_Catalog_ProductController extends Mage_Adminhtml_Catalog_ProductController
{
// hier kommt er nicht an...
    
public function orderGridAction()
    
{
        
echo "TEST";
    
}
}
?>
 
Magento Community Magento Community
Magento Community
Magento Community
Magento Community
Magento Community
Back to top