Google+

Pages

Wednesday, December 16, 2015

Attribute options are not deleting in magento

It may happen due to lesser php value of max_input_variable.

To fix this problem open .htaccess file of magento's document root and write this in it:

php_value max_input_vars 2500
You can also do the same by adding/changing max_input_vars value from active php.ini of your server.
example:
max_input_vars = 2500

Thursday, September 10, 2015

Add link to category page by id from cms static block/cms page in Magento

If you want to add a link for category page from cms page or cms static block, simply use the category link widget inline link code:


{{widget type="catalog/category_widget_link" anchor_text="Displayed Text" title="Title attribute text" template="catalog/category/widget/link/link_block.phtml" id_path="category/22"}}

There is no need to add <a> tag from cms pages or static blocks.

Sunday, July 6, 2014

Magento: Set page layout on specific pages programmatically

If you want to set page layout on specific pages programmatically; for example you need to change layout from 1column.phtml to 2columns-left.phtml in some condition or so, then you need to create a simple module for it.

Steps to do so are given below:


Under app/etc/modules folder create your module's definition file (Package_Module.xml) and put this code in it:

<?xml version="1.0"?>
<config>
    <modules>
        <Package_Module>
            <codePool>local</codePool>
            <active>true</active>
        </Package_Module>
    </modules>
</config>
 
Now create config.xml file under 
app/code/local/Your/Module/etc folder and put this code in it:
 
<?xml version="1.0"?>
<config>
    <modules>
        <Package_Module>
            <version>0.1.0</version>
        </Package_Module>
    </modules> 
    <global> 
        <models>
            <module>
                <class>Package_Module_Model</class>
            </module>
        </models>
        <events> 
            <controller_action_layout_generate_blocks_after>
                <observers>
                    <any_unique_name>
                        <type>singleton</type>
                        <class>Module/Observer</class>
                        <method>controllerActionLayoutGenerateBlocksAfter</method>
                    </any_unique_name>
                </observers>
            </controller_action_layout_generate_blocks_after>
        </events>
    </global>
</config>
 
Now create Observer.php under app/code/local/Your/Module/Model folder and put this 
code in it:
 
<?php
class Package_Module_Model_Observer
{
    public function controllerActionLayoutGenerateBlocksAfter ($observer)
    {
        $controller = $observer->getAction();

        if ($controller->getFullActionName() == 'catalog_product_view') {
            $layout = $controller->getLayout();
            $rootBlock = $layout->getBlock('root');

            if (Mage::getSingleton('customer/session')->isLoggedIn()) {
                $rootBlock->setTemplate('page/1-column.html');
            } else {
                $rootBlock->setTemplate('page/2-columns.html');
            }
        }
    }
}
 
That's it. Cheers.. :) 

Friday, May 30, 2014

Magento: admin/admin in path in magento admin

Are you facing problem of getting 'admin/admin/' instead of 'admin/' in Magento admin URLs. Don't worry..

Here are some easy steps to get your admin URLs back to original.
  1. Check the values in /magentofolder/app/etc/local.xml and ensure all is good.
  2. Log in and check the values at System > configuration > Web > Unsecure URL (and Secure URL) - make sure they are good (they should be, otherwise you’d not be able to log in very easily.
  3. Go to System > configuration > Advanced > Admin and set the value of use custom admin url to 'No' and remove any values, if any, in the URL box underneath it. Then save config.
  4. If all these settings are correct, and you’re seeing admin/admin, then check:
System > Configuration > General > Web > URL options > Add store code to URL

There you must have set its value 'Yes'.

What this does is on the front end it includes the store code (actually store view code) to the URL for mutli-store setups, so that you can access a store like this : http://url/index.php/storecode1/ or http://url/index.php/storecode2/ ... etc.

But unfortunately it also does it for the admin (which has store code admin) - therefore, the path to your admin is now admin/admin - the first being the store code, the second being the path to serve the application. And so, some extensions that don’t use dynamic admin URL path won’t work - probably you’ll get a 404 where you expect your content to be in the main body of the page.

Enabling the second option in that admin (System > configuration > General > Web > URL options), i.e. "Redirect to Base URL if requested URL doesn’t match it" should fix all the problem.

If it still does not fix your problem then the last option to fix it to turn 'No' for 'Add Store Code to URLs'  option.

Hope this will help.. :)

Wednesday, May 28, 2014

How to reset admin password in Magento

If you have forgot your admin login password in Magento, there is an easy way to reset it.
Let's first find all users in 'admin_user' table.To do so, either you can view 'admin_user' table contents or fire below query:

SELECT * FROM admin_user;

Now to change password, you need to fire below query:

UPDATE `admin_user` SET `password` = CONCAT(MD5('qXpassword'), ':qX') WHERE `username` = 'USERNAME';

where 'qX' is salt value for encryption and it can be any other string and 
'USERNAME' is the desired user name for which you want to reset password.

For example:

user name is 'admin' for which you want to reset password.

Suppose after reset you want to set password 123456 and salt value you like is 'mK', 
then query to be fired will be:

UPDATE admin_user SET password=CONCAT(MD5('mK123456'), ':mK') WHERE username='admin';

Hope it will help. :)

Tuesday, June 4, 2013

Catalog Search not returning expected results in Magento

Many customers complain about Magento's default catalog search results. Here is the solution to get better results from Magento Catalog Search.

1. Copy app/code/core/Mage/CatalogSearch/Model/Resource/Fulltext.php to app/code/local/Mage/CatalogSearch/Model/Resource/ folder and open file.

2. Navigate to function prepareResult() and find below set of code:

$words = Mage::helper('core/string')->splitWords($queryText, true, $query->getMaxQueryWords());
foreach ($words as $word) {
$like[] = $helper->getCILike('s.data_index', $word, array('position' => 'any'));
}

and replace it with:

$like[] = '`s`.`data_index` LIKE :likew';
$bind[':likew'] = '%' . $queryText . '%';

Next replace

$likeCond = '(' . join(' OR ', $like) . ')';

with

$likeCond = '(' . join(' AND ', $like) . ')';

3. Login to Admin Panel of your magento. Navigate to System --> Configuration.

4. Now click on  Catalog --> Catalog tab on left. In Catalog Search panel, set Search Type to like.

5. Just reindex all data and your store's search should be working fine now.
 
This process was tested on magento version 1.7.0 and  above.

Saturday, February 16, 2013

Magento: Redirect to login page if user not login

Here is simple magento code to redirect to login page, if user is not logged in:

<?php
    $redirect_url = Mage::getUrl('customer/account/login/');
    $current_url = Mage::helper('core/url')->getCurrentUrl();
    if((!$this->helper('customer')->isLoggedIn()) && ($current_url != $redirect_url)){
        Mage::app()->getFrontController()->getResponse()->setRedirect($redirect_url);
    }
?>

Use this code and enjoy.. :)