I am getting mental break because I can't make my custom module which should rewrite 2 blocks and 1 model work. My module is loaded - I checked in admin panel System->Configuration->Advanced but Magento still reads core files. Overmore, I am trying to rewrite reviews form so when I am in admin panel watching reviews and make intentional mistake in name of class in Acme_Reviewed_Block_Adminhtml_Review_Edit_Form I get blank screen so it looks like it is reading my blocks and models. Maybe I made a mistake somewhere which I can't find.
config.xml
<config> <modules> <Acme_Reviewed> <version>1.0</version> </Acme_Reviewed> </modules> <global> <models> <reviewed> <class>Acme_Reviewed_Model</class> </reviewed> <review> <rewrite> <resource_review>Acme_Reviewed_Model_Resource_Review</resource_review> </rewrite> </review> </models> <blocks> <reviewed> <class>Acme_Reviewed_Block</class> </reviewed> <ajaxreviews> <rewrite> <reviews>Acme_Reviewed_Block_Reviews</reviews> </rewrite> </ajaxreviews> <adminhtml> <rewrite> <review_edit_form>Acme_Reviewed_Block_Adminhtml_Review_Edit_Form</review_edit_form> </rewrite> </adminhtml> </blocks> </global> </config> Acme_Reviewed.xml
<config> <modules> <Acme_Reviewed> <active>true</active> <codePool>local</codePool> <depends> <Mage_Adminhtml /> <Mage_Review /> <Magpleasure_Ajaxreviews /> </depends> </Acme_Reviewed> </modules> </config> I try to override:
Mage/Review/Model/Resource/Review.php Magpleasure/Ajaxreviews/Block/Reviews.php Mage/Adminhtml/Block/Review/Edit/Form.php With my files:
Acme/Reviewed/Model/Resource/Review.php Acme/Reviewed/Block/Reviews.php Acme/Reviewed/Block/Adminhtml/Review/Edit/Form.php Acme/Reviewed/Model/Resource/Review.php
<?php class Acme_Reviewed_Model_Resource_Review extends Mage_Review_Model_Resource_Review { protected function _afterSave(Mage_Core_Model_Abstract $object) { $adapter = $this->_getWriteAdapter(); /** * save detail */ Mage::log(var_export($object->getGemail(), TRUE), null, 'furoris.log'); $detail = array( 'title' => $object->getTitle(), 'detail' => $object->getDetail(), 'nickname' => $object->getNickname(), 'gemail' => $object->getGemail(), ); $select = $adapter->select() ->from($this->_reviewDetailTable, 'detail_id') ->where('review_id = :review_id'); $detailId = $adapter->fetchOne($select, array(':review_id' => $object->getId())); if ($detailId) { $condition = array("detail_id = ?" => $detailId); Mage::log("a", null, 'furoris.log'); $adapter->update($this->_reviewDetailTable, $detail, $condition); Mage::log("b", null, 'furoris.log'); } else { Mage::log($this->_reviewDetailTable, null, 'furoris.log'); $detail['store_id'] = $object->getStoreId(); $detail['customer_id']= $object->getCustomerId(); $detail['review_id'] = $object->getId(); $detail['gemail'] = $object->getGemail(); $adapter->insert($this->_reviewDetailTable, $detail); } /** * save stores */ $stores = $object->getStores(); if (!empty($stores)) { $condition = array('review_id = ?' => $object->getId()); $adapter->delete($this->_reviewStoreTable, $condition); $insertedStoreIds = array(); foreach ($stores as $storeId) { if (in_array($storeId, $insertedStoreIds)) { continue; } $insertedStoreIds[] = $storeId; $storeInsert = array( 'store_id' => $storeId, 'review_id'=> $object->getId() ); $adapter->insert($this->_reviewStoreTable, $storeInsert); } } // reaggregate ratings, that depend on this review $this->_aggregateRatings( $this->_loadVotedRatingIds($object->getId()), $object->getEntityPkValue() ); return $this; } } Acme_Reviewed_Block_Reviews
<?php class Acme_Reviewed_Block_Reviews extends Magpleasure_Ajaxreviews_Block_Reviews { public function getTemplateHtml() { /** @var Magpleasure_Common_Block_Template $block */ $block = $this->getLayout()->createBlock('magpleasure/template'); if ($block) { return $block->setTemplate('ajaxreviews/product/view/list/template-guest.phtml')->toHtml(); } } } Acme/Reviewed/Block/Adminhtml/Review/Edit/Form.php
<?php class Acme_Reviewed_Block_Adminhtml_Review_Edit_Form extends Mage_Adminhtml_Block_Review_Edit_Form { protected function _prepareForm() { $review = Mage::registry('review_data'); $product = Mage::getModel('catalog/product')->load($review->getEntityPkValue()); $customer = Mage::getModel('customer/customer')->load($review->getCustomerId()); $form = new Varien_Data_Form(array( 'id' => 'edit_form', 'action' => $this->getUrl('*/*/save', array('id' => $this->getRequest()->getParam('id'), 'ret' => Mage::registry('ret'))), 'method' => 'post' )); $fieldset = $form->addFieldset('review_details', array('legend' => Mage::helper('review')->__('Review Details'), 'class' => 'fieldset-wide')); $fieldset->addField('product_name', 'note', array( 'label' => Mage::helper('review')->__('Product'), 'text' => '<a href="' . $this->getUrl('*/catalog_product/edit', array('id' => $product->getId())) . '" onclick="this.target=\'blank\'">' . $product->getName() . '</a>' )); if ($customer->getId()) { $customerText = Mage::helper('review')->__('<a href="%1$s" onclick="this.target=\'blank\'">%2$s %3$s</a> <a href="mailto:%4$s">(%4$s)</a>', $this->getUrl('*/customer/edit', array('id' => $customer->getId(), 'active_tab'=>'review')), $this->escapeHtml($customer->getFirstname()), $this->escapeHtml($customer->getLastname()), $this->escapeHtml($customer->getEmail())); } else { if (is_null($review->getCustomerId())) { $customerText = Mage::helper('review')->__($review->getGemail()); } elseif ($review->getCustomerId() == 0) { $customerText = Mage::helper('review')->__('Administrator'); } } $fieldset->addField('customer', 'note', array( 'label' => Mage::helper('review')->__('Posted By'), 'text' => $customerText, )); $fieldset->addField('summary_rating', 'note', array( 'label' => Mage::helper('review')->__('Summary Rating'), 'text' => $this->getLayout()->createBlock('adminhtml/review_rating_summary')->toHtml(), )); $fieldset->addField('detailed_rating', 'note', array( 'label' => Mage::helper('review')->__('Detailed Rating'), 'required' => true, 'text' => '<div id="rating_detail">' . $this->getLayout()->createBlock('adminhtml/review_rating_detailed')->toHtml() . '</div>', )); $fieldset->addField('status_id', 'select', array( 'label' => Mage::helper('review')->__('Status'), 'required' => true, 'name' => 'status_id', 'values' => Mage::helper('review')->getReviewStatusesOptionArray(), )); /** * Check is single store mode */ if (!Mage::app()->isSingleStoreMode()) { $field = $fieldset->addField('select_stores', 'multiselect', array( 'label' => Mage::helper('review')->__('Visible In'), 'required' => true, 'name' => 'stores[]', 'values' => Mage::getSingleton('adminhtml/system_store')->getStoreValuesForForm(), )); $renderer = $this->getLayout()->createBlock('adminhtml/store_switcher_form_renderer_fieldset_element'); $field->setRenderer($renderer); $review->setSelectStores($review->getStores()); } else { $fieldset->addField('select_stores', 'hidden', array( 'name' => 'stores[]', 'value' => Mage::app()->getStore(true)->getId() )); $review->setSelectStores(Mage::app()->getStore(true)->getId()); } $fieldset->addField('nickname', 'text', array( 'label' => Mage::helper('review')->__('Nickname'), 'required' => true, 'name' => 'nickname' )); $fieldset->addField('title', 'text', array( 'label' => Mage::helper('review')->__('Summary of Review'), 'required' => true, 'name' => 'title', )); $fieldset->addField('detail', 'textarea', array( 'label' => Mage::helper('review')->__('Review'), 'required' => true, 'name' => 'detail', 'style' => 'height:24em;', )); $form->setUseContainer(true); $form->setValues($review->getData()); $this->setForm($form); return parent::_prepareForm(); } }