2014-03-24 19 views
13

ich weiß, gibt es eine Menge Beiträge, die ich je gesehen habe und ich habe nicht den Fehler im Code finden Gebrüll: config.xml:Mage Registrierungsschlüssel „_singleton /“ existiert bereits Fehler

<events> 
      <core_block_abstract_to_html_after> 
       <observers> 
         <type>singleton</type> 
         <class>WebDirect_CustomPrice_Model_Observer</class> 
         <method>convertPricespanToInput</method> 
       </observers> 
      </core_block_abstract_to_html_after> 
     </events> 

Observer Klasse:

class WebDirect_CustomPrice_Model_Observer 
{ 
    const MODULE_NAME = 'WebDirect_CustomPrice'; 
    public function convertPricespanToInput($observer = NULL) 
    { 
     if (!$observer) { 
      return; 
     } 
     if ('product.info.simple' == $observer->getEvent()->getBlock()->getNameInLayout()) { 
      if (!Mage::getStoreConfig('advanced/modules_disable_output/'.self::MODULE_NAME)) { 
       $transport = $observer->getEvent()->getTransport(); 
       $block = new WebDirect_CustomPrice_Block_priceSpanToInput(); 
       $block->setPassingTransport($transport['html']); 
       $block->toHtml(); 
      } 
     } 
     return $this; 
    } 
} 

und eine Klasse, die einen benutzerdefinierten Javascript in Produktansicht Seite hinzufügen:

class WebDirect_CustomPrice_Block_priceSpanToInput extends Mage_Core_Block_Text { 
    //protected $_nameInLayout = 'selectify.qty_input_to_select'; 
    //protected $_alias = 'qty_input_to_select'; 
    public function setPassingTransport($transport) 
    { 
     $this->setData('text', $transport.$this->_generateQtyInputToSelectHtml()); 
    } 
    private function _generatepriceSpanToInputHtml() 
    { 
     $price = Mage::registry('current_product')->getPrice(); 
     $product_Id = Mage::registry('current_product')->getId(); 
     return ' 
      <script type="text/javascript"> 
      //<![CDATA[ 
      document.observe("dom:loaded", function() { 
       $("product-price-'.$product_Id.'").replace(\'<span class="price" id="product-price-'.$product_Id.'">&nbsp;<input type="text" id="CP_ID" class="input-text price" name="custom_price" style="width:auto;" value="'.$price.'" onchange="onChangeCP(this);"/></span><input type="hidden" id="custom_price_total" name="custom_price_total" value="'.$price.'">\'); 
      }); 
      //]]> 
      </script> 
     '; 
    } 
} 

gibt es einen Fehler in diesem Code? Ich kann nichts sehen!

+0

Haben Sie klare Caches nach der Installation? Ich hatte heute dasselbe Problem, aber für mich funktionierte das Löschen des Cache. – ParekhAbhishekN

+0

Clearing-Cache ist eine von vielen Lösungen, Lösung für mich in der markierten Antwort beschrieben :) – Souf

Antwort

22

Das Problem besteht in der Definition der Beobachterfunktion in Ihrer Datei config.xml.

 <events> 
      <core_block_abstract_to_html_after> 
       <observers> 
        <some_unique_identifier> 
         <type>singleton</type> 
         <class>WebDirect_CustomPrice_Model_Observer</class> 
         <method>convertPricespanToInput</method> 
        </some_unique_identifier> 
       </observers> 
      </core_block_abstract_to_html_after> 
     </events> 

wo "some_unique_identifier" kann jede eindeutige Zeichenfolge sein:

 <events> 
      <core_block_abstract_to_html_after> 
       <observers> 
         <type>singleton</type> 
         <class>WebDirect_CustomPrice_Model_Observer</class> 
         <method>convertPricespanToInput</method> 
       </observers> 
      </core_block_abstract_to_html_after> 
     </events> 

sollte ersetzt werden.

+0

das hat funktioniert, danke! – Souf

+3

In meinem Fall musste ich auch " COMPANY_MODULE/observer" zu " COMPANY_MODULE_Model_Observer" ändern. Verwenden von Magento 1.9 – karantan

-3

Kommentar aus den beiden definieren Funktionsaufrufe in includes/config.php Pfad:

#define('COMPILER_INCLUDE_PATH', dirname(__FILE__).DIRECTORY_SEPARATOR.'src'); 
#define('COMPILER_COLLECT_PATH', dirname(__FILE__).DIRECTORY_SEPARATOR.'stat'); 
Verwandte Themen