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

Erweiterung Kundeninformation im Backend
 
fl711
Jr. Member
 
Total Posts:  3
Joined:  2009-04-23
 

Hallo,

nachdem ich bereits viel hier im Forum gelesen habe und trotzdem noch nicht den richtigen Einstieg in Magento gefunden habe, möchte ich hier mal eine erste Frage stellen. Eventuell komme ich mit Antworten zu meinen konkreten Problemen schneller zum Verständnis bzgl. Magento.

Ich würde gerne im Backend den Bereich der Kundeninformation erweitern.
Das Menü auf der linken Seite konnte ich inzwischen schon um einen neuen Eintrag erweitern.
Hierfür habe ich per eigenem Modul die class “Mage_Adminhtml_Block_Customer_Edit_Tabs” um einen Eintrag analog der bereits vorhandenen Einträge erweitert.
Die Einträge enthalten Links entsprechend der zugeordneten Funktion, z.B.  ‘url’ => $this->getUrl(’*/*/productTags’, array(’_current’ => true)) für die Tags.
Abgesehen davon, dass ich die Notation mit den */*/ noch nicht richtig verstanden habe, weiß ich nun nicht, wie ich meine eigene Funktion integrieren kann. Vermutlich benötige ich einen Controller, oder?
Fürs erste würde ich einfach nur ein “Hallo Welt” auf diesem Wege ausgeben wollen.

Kann mir hier jemand bei den ersten Schritten weiter helfen?
Vielen Dank und Gruß
Thomas

 
Magento Community Magento Community
Magento Community
Magento Community
 
ds_1984
Mentor
 
Avatar
Total Posts:  3116
Joined:  2008-12-09
Potsdam, Germany
 

Habe zwar nicht die große Checkung was das angeht aber ich kann dir das hier empfehlen zur Backend Integration:
http://www.magentocommerce.com/extension/898/attributes-manager

(Kategorie, Kunden & Kundenaddressattribute) Das klappt auch wunderbar, jedoch ist es im Moment noch so, dass du wenn du es im Frontend etwa durch Kundeneingabe realisieren möchtest es selber entsprechend hineincoden mußt, habe das selber aber noch nicht hinbekommen.  confused

LG - Daniel

 
Magento Community Magento Community
Magento Community
Magento Community
 
fl711
Jr. Member
 
Total Posts:  3
Joined:  2009-04-23
 

Hallo Daniel,

vielen Dank für Deine Antwort.
Den Attributemanager kannte ich bereits, habe aber seit dem letzten Update von Magento Probleme mit dem Modul.
Ich komme immer nur bis zu der Seite, wo ich entscheiden kann in welchem Bereich ich Attribute bearbeiten möchte ("Choose attributes to manage").
Beim Klick auf einen der drei Möglichkeiten passiert dann gar nichts mehr.
Ein Reinstall des Attributemanagers hat auch nichts gebracht.
Vor dem Magento-Update auf 1.3.0 hat das Modul aber korrekt funktioniert.

Das Studium des Quelltextes hilft mir leider auch nicht so recht weiter. Das Modul ist für den Anfang doch schon zu komplex.
Ich möchte, wenn möglich, in kleinen Schritten zum Ziel kommen, damit ich jeden Schritt begreifen kann.

LG
Thomas

 
Magento Community Magento Community
Magento Community
Magento Community
 
ds_1984
Mentor
 
Avatar
Total Posts:  3116
Joined:  2008-12-09
Potsdam, Germany
 

Klassisches Fehlverhalten nach Update auf Versionen ab 1.3.0 (Die Pfade stimmen nicht mehr).
Geh mal im Admin Panel nach System->Konfiguration->Admin und in der Panele Security setzt du bei “Add Secret Key to URLs” ein “Nein”.

Danach fleißig Cache aktualisieren bzw. löschen und du solltest wieder die Attributarten erreichen.
Wenn du schon in der Cache-Verwaltung bist, dann solltest du auch gleich die Rewrites neu aufbauen.

Ich nutze selbst eine ursprüngliche 1.2.0er die mehrmals upgedatet wurde & somit treffen mich diese Dinge nach Updates genau so.

LG - Daniel

 
Magento Community Magento Community
Magento Community
Magento Community
 
fl711
Jr. Member
 
Total Posts:  3
Joined:  2009-04-23
 

Hallo Daniel,

vielen Dank für Deinen genialen Tipp mit dem “Add Secret key to Urls” auf Nein setzen. grin
Da wäre ich so schnell nicht selbst drauf gekommen.
Nun funzt der Attributemanager wieder perfekt.

Hast Du mir eventuell noch einen Tipp, wie ich bei Customer/Edit/Tabs.php eine beliebige url aufrufen kann?
Ich habe dort nach dem vorgegebenen Schema eine zusätzliche Eintrag gemacht.
Die Class sieht als so aus:

class Gm_Kunden_Block_Customer_Edit_Tabs extends Mage_Adminhtml_Block_Widget_Tabs
{

    
public function __construct()
    
{
        parent
::__construct();
        
$this->setId('customer_info_tabs');
        
$this->setDestElementId('edit_form');
        
$this->setTitle(Mage::helper('customer')->__('Customer Information'));
    
}

    
protected function _beforeToHtml()
    
{
        
if (Mage::registry('current_customer')->getId()) {
            $this
->addTab('view', array(
                
'label'     => Mage::helper('customer')->__('Customer View'),
                
'content'   => $this->getLayout()->createBlock('adminhtml/customer_edit_tab_view')->toHtml(),
                
'active'    => true
            
));
        
}

        $this
->addTab('account', array(
            
'label'     => Mage::helper('customer')->__('Account Information'),
            
'content'   => $this->getLayout()->createBlock('adminhtml/customer_edit_tab_account')->initForm()->toHtml(),
            
'active'    => Mage::registry('current_customer')->getId() ? false true
        
));

        
$this->addTab('addresses', array(
            
'label'     => Mage::helper('customer')->__('Addresses'),
            
'content'   => $this->getLayout()->createBlock('adminhtml/customer_edit_tab_addresses')->initForm()->toHtml(),
        ));


        
// load: Orders, Shopping Cart, Wishlist, Product Reviews, Product Tags - with ajax

        
if (Mage::registry('current_customer')->getId()) {
            $this
->addTab('orders', array(
                
'label'     => Mage::helper('customer')->__('Orders'),
                
'class'     => 'ajax',
                
'url'       => $this->getUrl('*/*/orders', array('_current' => true)),
             ));

            
$this->addTab('cart', array(
                
'label'     => Mage::helper('customer')->__('Shopping Cart'),
                
'class'     => 'ajax',
                
'url'       => $this->getUrl('*/*/carts', array('_current' => true)),
            ));

            
$this->addTab('wishlist', array(
                
'label'     => Mage::helper('customer')->__('Wishlist'),
                
'class'     => 'ajax',
                
'url'       => $this->getUrl('*/*/wishlist', array('_current' => true)),
            ));

            
$this->addTab('newsletter', array(
                
'label'     => Mage::helper('customer')->__('Newsletter'),
                
'content'   => $this->getLayout()->createBlock('adminhtml/customer_edit_tab_newsletter')->initForm()->toHtml()
            ));

            
$this->addTab('reviews', array(
                
'label'     => Mage::helper('customer')->__('Product Reviews'),
                
'class'     => 'ajax',
                
'url'       => $this->getUrl('*/*/productReviews', array('_current' => true)),
            ));

            
$this->addTab('tags', array(
                
'label'     => Mage::helper('customer')->__('Product Tags'),
                
'class'     => 'ajax',
                
'url'       => $this->getUrl('*/*/productTags', array('_current' => true)),
            ));

// hier steht mein Eintrag
            
$this->addTab('comments', array(
                
'label'     => 'Neuer Eintrag',
                
'class'     => 'ajax',
                
'url'       => $this->getUrl('*/*/neueseite', array('_current' => true)), // was muss hier stehen?
            
));
        
}
        
        $this
->_updateActiveTab();
        
Varien_Profiler::stop('customer/tabs');
        return 
parent::_beforeToHtml();
    
}

    
protected function _updateActiveTab()
    
{
        $tabId 
$this->getRequest()->getParam('tab');
        if( 
$tabId {
            $tabId 
preg_replace("#{$this->getId()}_#"''$tabId);
            if(
$tabId{
                $this
->setActiveTab($tabId);
            
}
        }
    }
}

Vermutlich ist das Problem total simpel, ich blicke aber die Notation mit getUrl in obiger Schreibweise noch nicht.

LG
Thomas

 
Magento Community Magento Community
Magento Community
Magento Community
Magento Community
Magento Community
Back to top