Skip to content

Chris' Laboratory

chrislee.kr – Personal blog as bookshelves

Menu
  • Home
  • Github
  • Contact Me
Menu

Magento Creare SEO overrides default page titles

Posted on 22/10/201411/09/2016 by Chris Lee
Read Time:1 Minute, 25 Second

I had installed Magento Creare SEO extensions (http://www.magentocommerce.com/magento-connect/creare-seo.html)

The extension is good and did what I wanted to achieve.

However, the extension override the page title to default page title in these pages, such as Login, Signup, Popular Search Terms, Search Results, etc. So it created duplicate page titles.

After researching the code, I found most pages are configured default titles by itself. So if Creare SEO is using default title, then all problems will be solved.

So here is what I changed.

Note

  1. This is not good practice, since I am modifying core extension code. Or there could be the configuration to fix this issue. Or this is something that Creare developer can update. In anyway, this is not good practice.
  2. I am using Creare SEO 1.1.7 (stable).

File: /app/code/community/Creare/CreareSeoCore/Model/Observer.php:223

    public function setTitle($observer)
    {
        if (Mage::getStoreConfig('creareseocore/defaultseo/forcehptitle') && $observer->getEvent()->getAction()->getFullActionName() == "cms_index_index") return;
	if ($observer->getEvent()->getAction()->getFullActionName() == "contacts_index_index") return;
            $layout = $observer->getEvent()->getLayout();
            $title = $this->getTitle();
            if($title)
            {
                if ($head = $layout->getBlock('head'))
                {
                    $head->setTitle($title);
                }
            }
            
            $layout->generateXml();
    }

to

public function setTitle($observer)
    {
    	$ignore_actions = array(
			"contacts_index_index", "catalogsearch", "customer_account"
		);
        if (Mage::getStoreConfig('creareseocore/defaultseo/forcehptitle') && $observer->getEvent()->getAction()->getFullActionName() == "cms_index_index") return;
		foreach($ignore_actions as $action)
		{
			if (stristr($observer->getEvent()->getAction()->getFullActionName(), $action) !== false) return;	
		}
		
            $layout = $observer->getEvent()->getLayout();
            $title = $this->getTitle();
            if($title)
            {
                if ($head = $layout->getBlock('head'))
                {
                    $head->setTitle($title);
                }
            }
            
            $layout->generateXml();
    }

Share

Facebook
Twitter
LinkedIn
Email

Related

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Categories

  • Databases (11)
    • MongoDB (4)
    • MS-SQL (1)
    • MySQL (6)
  • E-Commerce (8)
    • Magento (8)
  • Finance (2)
  • Frameworks (84)
    • Adobe Flex (1)
    • Angular (ngx) (3)
    • Codeigniter (6)
    • CSS (5)
    • Django (2)
    • Javascript (13)
    • Node.js (6)
    • PHP (17)
    • React Native (4)
    • React.js (1)
    • Sencha Touch (4)
    • Terraform (1)
    • Vue.js (1)
    • WordPress (4)
    • Yii2 (3)
  • General Documents (15)
  • Marketing (3)
  • Mobile Development (33)
    • Android (20)
    • iPhone (13)
  • Platforms (21)
    • Arduino (2)
    • Docker (5)
    • Google App Engine (5)
    • Raspberry Pi (5)
    • Samsung Smart TV (4)
  • Security (17)
  • Server (31)
    • Linux (13)
  • Tools (14)
    • SVN (7)
  • Uncategorized (3)

Search

Recent Posts

  • helm list error stream ID 3; INTERNAL_ERROR
  • Bootstrapping Kubernetes cluster with kubeadm
  • Taint all resources in the one module
  • Alpine – Plugin caching_sha2_password could not be loaded
  • npm link with peerDependencies

Recent Comments

  • Obayed on Binance Auto Trading Bot – Buy low/Sell high with stop loss limit/Trade multiple coins
  • Ari on How to install memcache.so/memcached.so for MAMP Pro (Mac)
  • Mida ali on Binance Auto Trading Bot – Buy low/Sell high with stop loss limit/Trade multiple coins
  • Chris Lee on How to install memcache.so/memcached.so for MAMP Pro (Mac)
  • Chris Lee on Setting Up A VPN Server On OSX 10.6

Tags

1 ajax amazon android android-addpart browser chrislee-kr codeigniter codeigniter-tcpdf com-apple-net-racoon CSS CSS history hack delpaigmail-com entity-addpart-double exception-printing-is-disabled-by-default-for-security-reasons ext-plugins-listpagingplugin ext-plugins-listpagingplugin-example f iphone javascript jquery-defaultchecked jquery-samsung-smart-tv listpagingplugin mac magento-exception-printing-is-disabled-by-default-for-security-reasons magento-sample-data-exception-printing-is-disabled-by-default-for-security-reasons nu-vot null-core-errors-confignotfound-config-mk9engine-ini php samsung-smart-tv-jquery samsung-smart-tv-sdk-ajax samsung-smart-tv-sdk-jquery samsung-tv-sdk samsung-tv-sdk-jquery samsung tv sencha-smart-tv sencha-touch-list-paging smart-tv-jquery sqlite subversion svn tcedook tcpdf-codeigniter uilinebreakmodecharacterwrap-is-deprecated unknown-column-link-area

Meta

  • Log in
  • Entries feed
  • Comments feed
  • WordPress.org
© 2023 Chris' Laboratory | Powered by Minimalist Blog WordPress Theme