Wednesday, 5 March 2014

Magento How to show/hide template path hints of admin panel/backend.

To show template path hints in admin panel of magento you need to login to your phpmyadmin then run the following sql command.

INSERT INTO core_config_data (scope, scope_id, path, value) VALUES ('default', 0, 'dev/debug/template_hints', 1),
('default', 0, 'dev/debug/template_hints_blocks', 1);

To hide template path hints of admin panel or backed just run the top code by changing 1 to 0, then the template path hints will be hide.
You also can run the following sql command to hide template path hints.


UPDATE core_config_data SET value = '0' WHERE core_config_data.path ='dev/debug/template_hints' OR core_config_data.path ='dev/debug/template_hints_blocks';

Now if you want to show again template path hints in admin panel of magento then run the following sql command.

UPDATE core_config_data SET value = '1' WHERE core_config_data.path ='dev/debug/template_hints' OR core_config_data.path ='dev/debug/template_hints_blocks';

Magento Get methods of an object.

First, use get_class to get the name of an object’s class.

<?php $class_name = get_class($object); ?>

Then, pass that get_class_methods to get a list of all the callable methods on an object

<?php
$class_name = get_class($object);
$methods = get_class_methods($class_name);
foreach($methods as $method)
{
    var_dump($method);
}
?>
 

Magento Check if customer is logged in.

<?php
    $_customer = Mage::getSingleton('customer/session')->isLoggedIn();
    if ($_customer) {}
?>

Magento Get products id, name, price, quantity, etc. present in your cart.

<?php
    $items = Mage::getSingleton('checkout/session')->getQuote()->getAllItems();
   
    foreach($items as $item) {
        echo 'ID: '.$item->getProductId().'<br />';
        echo 'Name: '.$item->getName().'<br />';
        echo 'Sku: '.$item->getSku().'<br />';
        echo 'Quantity: '.$item->getQty().'<br />';
        echo 'Price: '.$item->getPrice().'<br />';
        echo "<br />";
    }
?>

Magento Load Products by Category ID

<?php
$_category = Mage::getModel('catalog/category')->load(47);
$_productCollection = $_category->getProductCollection();
if($_productCollection->count()) {
    foreach( $_productCollection as $_product ):
        echo $_product->getProductUrl();
        echo $this->getPriceHtml($_product, true);
        echo $this->htmlEscape($_product->getName());
    endforeach;
}
?>

Magento Get Current Url

<?php echo Mage::helper('core/url')->getCurrentUrl(); ?>

Tuesday, 18 February 2014

Magento Add wysiwyg editor in custom module.

Step-1

Go to following path and open Edit.php
app\code\local\Namespace\Modulename\Block\Adminhtml\Modulename\Edit.php
and Add this Function


protected function _prepareLayout()
{
    // Load Wysiwyg on demand and Prepare layout
    if (Mage::getSingleton('cms/wysiwyg_config')->isEnabled() && ($block = $this->getLayout()->getBlock('head'))) {
    $block->setCanLoadTinyMce(true);
    }
    parent::_prepareLayout();

}

Step-2

Go to following path and open Form.php
app\code\local\Namespace\Modulename\Block\Adminhtml\Modulename\Edit\Tab\Form.php
and find function protected function_prepareForm() and add


$form = new Varien_Data_Form();
$this->setForm($form);

$form->setHtmlIdPrefix('yourmodulename');
$wysiwygConfig = Mage::getSingleton('cms/wysiwyg_config')->getConfig(array('tab_id' => 'form_section'));
$wysiwygConfig["files_browser_window_url"] = Mage::getSingleton('adminhtml/url')->getUrl('adminhtml/cms_wysiwyg_images/index');
$wysiwygConfig["directives_url"] = Mage::getSingleton('adminhtml/url')->getUrl('adminhtml/cms_wysiwyg/directive');
$wysiwygConfig["directives_url_quoted"] = Mage::getSingleton('adminhtml/url')->getUrl('adminhtml/cms_wysiwyg/directive');
$wysiwygConfig["widget_window_url"] = Mage::getSingleton('adminhtml/url')->getUrl('adminhtml/widget/index');
$wysiwygConfig["files_browser_window_width"] = (int) Mage::getConfig()->getNode('adminhtml/cms/browser/window_width');
$wysiwygConfig["files_browser_window_height"] = (int) Mage::getConfig()->getNode('adminhtml/cms/browser/window_height');
$plugins = $wysiwygConfig->getData("plugins");
$plugins[0]["options"]["url"] = Mage::getSingleton('adminhtml/url')->getUrl('adminhtml/system_variable/wysiwygPlugin');
$plugins[0]["options"]["onclick"]["subject"] = "MagentovariablePlugin.loadChooser('".Mage::getSingleton('adminhtml/url')->getUrl('adminhtml/system_variable/wysiwygPlugin')."', '{{html_id}}');";
$plugins = $wysiwygConfig->setData("plugins",$plugins);

and add this code to display wysiwyg editor

$fieldset->addField('content', 'editor', array(
'name' => 'content',
'label' => Mage::helper('news')->__('Content'),
'title' => Mage::helper('news')->__('Content'),
'style' => 'width:700px; height:500px;',
'wysiwyg' => true,
'required' => true,
'state' => 'html',
'config' => $wysiwygConfig,
));

Step-3

Go to following path and open yourmodulename.xml if its not available than create xml file
app\design\adminhtml\default\default\layout\yourmodulename.xml
and add

<?xml version="1.0"?>
<layout>
  <news_adminhtml_news_edit>
    <update handle="editor"/>
  </news_adminhtml_news_edit>
</layout>