2012-03-05 11 views
6

Intento reescribir el archivo core de magento. De alguna manera no sobrescribe el código. Intento sobreescribir la función getProduct().Magento: Rewrite Block no funciona

Tipfix/Bloquear/producto/view.php

<?php 

class WP_Tipfix_Block_Catalog_Product_View extends Mage_Catalog_Block_Product_View 
{ 

    public function getProduct() 
    { 

     if (!Mage::registry('product') && $this->getProductId()) { 
      $product = Mage::getModel('catalog/product')->load($this->getProductId()); 
      Mage::register('product', $product); 
     } 

     //return Mage::registry('product'); 
    } 
} 

Tipfix/etc/config.xml

<blocks> 
    <WP_Tipfix> 
     <class>WP_Tipfix_Block</class> 
    </WP_Tipfix> 
    <catalog> 
     <rewrite> 
      <product_view>WP_Tipfix_Block_Catalog_Product_View</product_view> 
     </rewrite> 
    </catalog> 
</blocks> 

tengo idea de saber lo que estoy haciendo mal.

Gr. Lex

+0

FYI el grupo de clases '' no es necesario a menos que esté creando clases de bloques. – benmarks

Respuesta

9

Su clase es WP_Tipfix_Block_Catalog_Product_View lo que significa que debe estar en la carpeta WP/Tipfix/Block/Catalog/Product/View.php. Debe mover su directorio de Producto a un nuevo directorio llamado Catálogo en ese lugar o cambiar el nombre de su clase (tanto la clase como en el XML) al WP_Tipfix_Block_Product_View. Recomiendo mover el archivo.

+0

¡Gracias por su información! – Lexperts

3

favor cambia el contenido config.xml de su módulo de esto, y estoy seguro de que debería funcionar: -

<?xml version="1.0" encoding="UTF-8"?> 
<config> 
    <modules> 
     <WP_Tipfix> 
      <version>1.0.0</version> 
     </WP_Tipfix> 
    </modules> 

    <global> 
     <blocks> 
      <wptipfix> 
       <class>WP_Tipfix_Block</class> 
      </wptipfix> 

      <catalog> 
       <rewrite> 
        <product_view>WP_Tipfix_Block_Catalog_Product_View</product_view> 
       </rewrite> 
      </catalog> 
     </blocks> 
    </global> 
</config> 

espero que ayude.


ACTUALIZACIÓN: - Después comentario Ben 's, siento que debería haber mencionado que el PO también debe utilizar la solución como se ha mencionado por Max en su answer. Entonces, el OP necesitará un esfuerzo combinado para solucionar su problema.

+1

Gracias que corrigió el problema. ¡Estupendo! – Lexperts

+0

Saludos y bienvenidos! –

+0

Esta solución * no * pudo haber solucionado el problema basándose en el código original del OP. – benmarks