diff --git a/app/code/core/Mage/Adminhtml/Block/Cms/Page/Edit/Tab/Meta.php b/app/code/core/Mage/Adminhtml/Block/Cms/Page/Edit/Tab/Meta.php index 77b53f21be9..83d672b1dc1 100644 --- a/app/code/core/Mage/Adminhtml/Block/Cms/Page/Edit/Tab/Meta.php +++ b/app/code/core/Mage/Adminhtml/Block/Cms/Page/Edit/Tab/Meta.php @@ -57,6 +57,14 @@ protected function _prepareForm() 'disabled' => $isElementDisabled ]); + $fieldset->addField('meta_robots', 'select', array( + 'name' => 'meta_robots', + 'label' => Mage::helper('cms')->__('Robots'), + 'title' => Mage::helper('cms')->__('Meta Robots'), + 'options' => $model->getAvailableRobots(), + 'disabled' => $isElementDisabled + )); + Mage::dispatchEvent('adminhtml_cms_page_edit_tab_meta_prepare_form', ['form' => $form]); $form->setValues($model->getData()); diff --git a/app/code/core/Mage/Adminhtml/Model/System/Config/Source/Design/Robots.php b/app/code/core/Mage/Adminhtml/Model/System/Config/Source/Design/Robots.php index d18646d4508..ad040f0484e 100644 --- a/app/code/core/Mage/Adminhtml/Model/System/Config/Source/Design/Robots.php +++ b/app/code/core/Mage/Adminhtml/Model/System/Config/Source/Design/Robots.php @@ -26,6 +26,9 @@ public function toOptionArray() ['value' => 'NOINDEX,FOLLOW', 'label' => 'NOINDEX, FOLLOW'], ['value' => 'INDEX,NOFOLLOW', 'label' => 'INDEX, NOFOLLOW'], ['value' => 'NOINDEX,NOFOLLOW', 'label' => 'NOINDEX, NOFOLLOW'], + ['value' => 'INDEX,FOLLOW,NOARCHIVE', 'label' => 'INDEX, FOLLOW, NOARCHIVE'], + ['value' => 'INDEX,NOFOLLOW,NOARCHIVE', 'label' => 'INDEX, NOFOLLOW, NOARCHIVE'], + ['value' => 'NOINDEX,NOFOLLOW,NOARCHIVE', 'label' => 'NOINDEX, NOFOLLOW, NOARCHIVE'], ]; } } diff --git a/app/code/core/Mage/Catalog/Block/Category/View.php b/app/code/core/Mage/Catalog/Block/Category/View.php index 6539f611edd..fabc6ee511d 100644 --- a/app/code/core/Mage/Catalog/Block/Category/View.php +++ b/app/code/core/Mage/Catalog/Block/Category/View.php @@ -47,12 +47,20 @@ protected function _prepareLayout() /** @var Mage_Catalog_Helper_Category $helper */ $helper = $this->helper('catalog/category'); + + if ($robots = $category->getMetaRobots()) { + if ($helper->canUseNoindexFollow() && Mage::helper('catalog/category')->isNotFirstCategoryPage()) { + $headBlock->setRobots(Mage::getSingleton('catalog/category_attribute_source_robots')->getOptionLabel(3)); + } else { + $headBlock->setRobots(Mage::getSingleton('catalog/category_attribute_source_robots')->getOptionLabel($robots)); + } + } + if ($helper->canUseCanonicalTag()) { $headBlock->addLinkRel('canonical', $category->getUrl()); } - /* - want to show rss feed in the url - */ + + // want to show rss feed in the url if ($this->isRssCatalogEnable() && $this->isTopCategory()) { $title = $this->helper('rss')->__('%s RSS Feed', $this->getCurrentCategory()->getName()); $headBlock->addItem('rss', $this->getRssLink(), 'title="' . $title . '"'); diff --git a/app/code/core/Mage/Catalog/Block/Product/View.php b/app/code/core/Mage/Catalog/Block/Product/View.php index 23e1cab33c5..9da8a0fa156 100644 --- a/app/code/core/Mage/Catalog/Block/Product/View.php +++ b/app/code/core/Mage/Catalog/Block/Product/View.php @@ -65,6 +65,12 @@ protected function _prepareLayout() } else { $headBlock->setDescription(Mage::helper('core/string')->substr($product->getDescription(), 0, 255)); } + $robots = $product->getMetaRobots(); + if ($robots) { + $headBlock->setRobots(Mage::getSingleton('catalog/product_attribute_source_robots')->getOptionLabel($robots)); + } else { + $headBlock->setRobots(Mage::getStoreConfig('design/head/default_robots')); + } /** @var Mage_Catalog_Helper_Product $helper */ $helper = $this->helper('catalog/product'); diff --git a/app/code/core/Mage/Catalog/Helper/Category.php b/app/code/core/Mage/Catalog/Helper/Category.php index 5ec837a85b1..b58caf5c002 100644 --- a/app/code/core/Mage/Catalog/Helper/Category.php +++ b/app/code/core/Mage/Catalog/Helper/Category.php @@ -24,6 +24,7 @@ class Mage_Catalog_Helper_Category extends Mage_Core_Helper_Abstract public const XML_PATH_CATEGORY_URL_SUFFIX = 'catalog/seo/category_url_suffix'; public const XML_PATH_USE_CATEGORY_CANONICAL_TAG = 'catalog/seo/category_canonical_tag'; public const XML_PATH_CATEGORY_ROOT_ID = 'catalog/category/root_id'; + public const XML_PATH_CHANGE_CATEGORY_PAGES_ROBOTS = 'catalog/seo/category_pages_robots'; protected $_moduleName = 'Mage_Catalog'; @@ -173,4 +174,32 @@ public function canUseCanonicalTag($store = null) { return Mage::getStoreConfig(self::XML_PATH_USE_CATEGORY_CANONICAL_TAG, $store); } + + /** + * Check if Robots NOINDEX,FOLLOW can be used for category pages + * + * @param null|string|bool|int|Mage_Core_Model_Store $store + * @return bool + */ + public function canUseNoindexFollow($store = null) + { + return Mage::getStoreConfig(self::XML_PATH_CHANGE_CATEGORY_PAGES_ROBOTS, $store); + } + + + /** + * Check if current category is first page + * + * @return boolean + */ + public function isNotFirstCategoryPage() + { + $url = Mage::helper('core/url')->getCurrentUrl(); + $parsedUrl = parse_url($url); + if (isset($parsedUrl['query']) && (preg_match("/p=/i", $parsedUrl['query'])) && (!preg_match("/p=1/i", $parsedUrl['query']))) { + return true; + } + + return false; + } } diff --git a/app/code/core/Mage/Catalog/Model/Api2/Product.php b/app/code/core/Mage/Catalog/Model/Api2/Product.php index 586f1db4acd..fe4346a4ee1 100644 --- a/app/code/core/Mage/Catalog/Model/Api2/Product.php +++ b/app/code/core/Mage/Catalog/Model/Api2/Product.php @@ -69,7 +69,7 @@ protected function _isAttributeVisible(Mage_Catalog_Model_Resource_Eav_Attribute } else { $systemAttributesForNonAdmin = [ 'sku', 'name', 'short_description', 'description', 'tier_price', 'meta_title', 'meta_description', - 'meta_keyword', + 'meta_keyword', 'meta_robots' ]; if ($attribute->getIsUserDefined()) { $isAttributeVisible = $attribute->getIsVisibleOnFront(); diff --git a/app/code/core/Mage/Catalog/Model/Category.php b/app/code/core/Mage/Catalog/Model/Category.php index 58cd0b2c7c9..b41faf8d884 100644 --- a/app/code/core/Mage/Catalog/Model/Category.php +++ b/app/code/core/Mage/Catalog/Model/Category.php @@ -56,6 +56,7 @@ * * @method string getMetaDescription() * @method string getMetaKeywords() + * @method int getMetaRobots() * @method string getMetaTitle() * @method int getMovedCategoryId() * @@ -93,6 +94,16 @@ class Mage_Catalog_Model_Category extends Mage_Catalog_Model_Abstract public const CACHE_TAG = 'catalog_category'; + /** + * Category robots + */ + public const META_ROBOTS_INDEX_FOLLOW = 1; + public const META_ROBOTS_INDEX_NOFOLLOW = 2; + public const META_ROBOTS_NOINDEX_FOLLOW = 3; + public const META_ROBOTS_NOINDEX_NOFOLLOW = 4; + public const META_ROBOTS_INDEX_FOLLOW_NOARCHIVE = 5; + public const META_ROBOTS_INDEX_NOFOLLOW_NOARCHIVE = 6; + public const META_ROBOTS_NOINDEX_NOFOLLOW_NOARCHIVE = 7; /** * Prefix of model events names * diff --git a/app/code/core/Mage/Catalog/Model/Category/Attribute/Source/Robots.php b/app/code/core/Mage/Catalog/Model/Category/Attribute/Source/Robots.php new file mode 100644 index 00000000000..43f3dc8eb93 --- /dev/null +++ b/app/code/core/Mage/Catalog/Model/Category/Attribute/Source/Robots.php @@ -0,0 +1,69 @@ + [ + 'value' => Mage_Catalog_Model_Category::META_ROBOTS_INDEX_FOLLOW, + 'label' => Mage::helper('cms')->__('INDEX,FOLLOW') + ], + Mage_Catalog_Model_Category::META_ROBOTS_INDEX_NOFOLLOW => [ + 'value' => Mage_Catalog_Model_Category::META_ROBOTS_INDEX_NOFOLLOW, + 'label' => Mage::helper('cms')->__('INDEX,NOFOLLOW') + ], + Mage_Catalog_Model_Category::META_ROBOTS_NOINDEX_FOLLOW => [ + 'value' => Mage_Catalog_Model_Category::META_ROBOTS_NOINDEX_FOLLOW, + 'label' => Mage::helper('cms')->__('NOINDEX,FOLLOW') + ], + Mage_Catalog_Model_Category::META_ROBOTS_NOINDEX_NOFOLLOW => [ + 'value' => Mage_Catalog_Model_Category::META_ROBOTS_NOINDEX_NOFOLLOW, + 'label' => Mage::helper('cms')->__('NOINDEX,NOFOLLOW') + ], + Mage_Catalog_Model_Category::META_ROBOTS_INDEX_FOLLOW_NOARCHIVE => [ + 'value' => Mage_Catalog_Model_Category::META_ROBOTS_INDEX_FOLLOW_NOARCHIVE, + 'label' => Mage::helper('cms')->__('INDEX,FOLLOW,NOARCHIVE') + ], + Mage_Catalog_Model_Category::META_ROBOTS_INDEX_NOFOLLOW_NOARCHIVE => [ + 'value' => Mage_Catalog_Model_Category::META_ROBOTS_INDEX_NOFOLLOW_NOARCHIVE, + 'label' => Mage::helper('cms')->__('INDEX,NOFOLLOW,NOARCHIVE') + ], + Mage_Catalog_Model_Category::META_ROBOTS_NOINDEX_NOFOLLOW_NOARCHIVE => [ + 'value' => Mage_Catalog_Model_Category::META_ROBOTS_NOINDEX_NOFOLLOW_NOARCHIVE, + 'label' => Mage::helper('cms')->__('NOINDEX,NOFOLLOW,NOARCHIVE') + ] + ]; + } + + /** + * @param int $key + * @return string + */ + public function getOptionLabel($key) + { + $options = $this->getAllOptions(); + return $options[$key]['label']; + } +} diff --git a/app/code/core/Mage/Catalog/Model/Product.php b/app/code/core/Mage/Catalog/Model/Product.php index 799a44cbe2b..82d46432ce6 100644 --- a/app/code/core/Mage/Catalog/Model/Product.php +++ b/app/code/core/Mage/Catalog/Model/Product.php @@ -135,6 +135,7 @@ * @method array getMediaGallery() * @method $this setMediaGallery(array $value) * @method string getMessage() + * @method int getMetaRobot() * @method string getMetaDescription() * @method string getMetaKeyword() * @method string getMetaTitle() @@ -262,6 +263,18 @@ class Mage_Catalog_Model_Product extends Mage_Catalog_Model_Abstract */ public const ENTITY = 'catalog_product'; public const CACHE_TAG = 'catalog_product'; + + /** + * Product robots + */ + public const META_ROBOTS_INDEX_FOLLOW = 1; + public const META_ROBOTS_INDEX_NOFOLLOW = 2; + public const META_ROBOTS_NOINDEX_FOLLOW = 3; + public const META_ROBOTS_NOINDEX_NOFOLLOW = 4; + public const META_ROBOTS_INDEX_FOLLOW_NOARCHIVE = 5; + public const META_ROBOTS_INDEX_NOFOLLOW_NOARCHIVE = 6; + public const META_ROBOTS_NOINDEX_NOFOLLOW_NOARCHIVE = 7; + protected $_cacheTag = 'catalog_product'; protected $_eventPrefix = 'catalog_product'; protected $_eventObject = 'product'; diff --git a/app/code/core/Mage/Catalog/Model/Product/Api.php b/app/code/core/Mage/Catalog/Model/Product/Api.php index b815107ac64..530509de34c 100644 --- a/app/code/core/Mage/Catalog/Model/Product/Api.php +++ b/app/code/core/Mage/Catalog/Model/Product/Api.php @@ -51,6 +51,7 @@ class Mage_Catalog_Model_Product_Api extends Mage_Catalog_Model_Api_Resource 'meta_title', 'meta_keyword', 'meta_description', + 'meta_robots', 'custom_design', 'custom_layout_update', 'options_container', diff --git a/app/code/core/Mage/Catalog/Model/Product/Attribute/Source/Robots.php b/app/code/core/Mage/Catalog/Model/Product/Attribute/Source/Robots.php new file mode 100644 index 00000000000..e8955fd30bb --- /dev/null +++ b/app/code/core/Mage/Catalog/Model/Product/Attribute/Source/Robots.php @@ -0,0 +1,77 @@ + + array( + 'value' => Mage_Catalog_Model_Product::META_ROBOTS_INDEX_FOLLOW, + 'label' => Mage::helper('cms')->__('INDEX,FOLLOW') + ), + Mage_Catalog_Model_Product::META_ROBOTS_INDEX_NOFOLLOW => + array( + 'value' => Mage_Catalog_Model_Product::META_ROBOTS_INDEX_NOFOLLOW, + 'label' => Mage::helper('cms')->__('INDEX,NOFOLLOW') + ), + Mage_Catalog_Model_Product::META_ROBOTS_NOINDEX_FOLLOW => + array( + 'value' => Mage_Catalog_Model_Product::META_ROBOTS_NOINDEX_FOLLOW, + 'label' => Mage::helper('cms')->__('NOINDEX,FOLLOW') + ), + Mage_Catalog_Model_Product::META_ROBOTS_NOINDEX_NOFOLLOW => + array( + 'value' => Mage_Catalog_Model_Product::META_ROBOTS_NOINDEX_NOFOLLOW, + 'label' => Mage::helper('cms')->__('NOINDEX,NOFOLLOW') + ), + Mage_Catalog_Model_Product::META_ROBOTS_INDEX_FOLLOW_NOARCHIVE => + array( + 'value' => Mage_Catalog_Model_Product::META_ROBOTS_INDEX_FOLLOW_NOARCHIVE, + 'label' => Mage::helper('cms')->__('INDEX,FOLLOW,NOARCHIVE') + ), + Mage_Catalog_Model_Product::META_ROBOTS_INDEX_NOFOLLOW_NOARCHIVE => + array( + 'value' => Mage_Catalog_Model_Product::META_ROBOTS_INDEX_NOFOLLOW_NOARCHIVE, + 'label' => Mage::helper('cms')->__('INDEX,NOFOLLOW,NOARCHIVE') + ), + Mage_Catalog_Model_Product::META_ROBOTS_NOINDEX_NOFOLLOW_NOARCHIVE => + array( + 'value' => Mage_Catalog_Model_Product::META_ROBOTS_NOINDEX_NOFOLLOW_NOARCHIVE, + 'label' => Mage::helper('cms')->__('NOINDEX,NOFOLLOW,NOARCHIVE') + ), + ); + } + + /** + * @param int $key + * @return string + */ + public function getOptionLabel($key) + { + $options = $this->getAllOptions(); + + return $options[$key]['label']; + } +} diff --git a/app/code/core/Mage/Catalog/Model/Resource/Setup.php b/app/code/core/Mage/Catalog/Model/Resource/Setup.php index 5552aec4665..d9e2f5ffca6 100644 --- a/app/code/core/Mage/Catalog/Model/Resource/Setup.php +++ b/app/code/core/Mage/Catalog/Model/Resource/Setup.php @@ -147,6 +147,16 @@ public function getDefaultEntities() 'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_STORE, 'group' => 'General Information', ], + 'meta_robots' => [ + 'type' => 'int', + 'label' => 'Robots', + 'input' => 'select', + 'source' => 'catalog/category_attribute_source_robots', + 'required' => false, + 'sort_order' => 9, + 'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_STORE, + 'group' => 'General Information', + ], 'display_mode' => [ 'type' => 'varchar', 'label' => 'Display Mode', @@ -516,6 +526,16 @@ public function getDefaultEntities() 'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_STORE, 'group' => 'Meta Information', ], + 'meta_robots' => [ + 'type' => 'int', + 'label' => 'Robots', + 'input' => 'select', + 'source' => 'catalog/product_attribute_source_robots', + 'default' => '1', + 'sort_order' => 4, + 'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_STORE, + 'group' => 'Meta Information', + ], 'image' => [ 'type' => 'varchar', 'label' => 'Base Image', diff --git a/app/code/core/Mage/Catalog/controllers/Product/CompareController.php b/app/code/core/Mage/Catalog/controllers/Product/CompareController.php index 5c4a6892227..83485698df4 100644 --- a/app/code/core/Mage/Catalog/controllers/Product/CompareController.php +++ b/app/code/core/Mage/Catalog/controllers/Product/CompareController.php @@ -53,6 +53,7 @@ public function indexAction() } $this->loadLayout(); + $this->getLayout()->getBlock('head')->setRobots(Mage::getStoreConfig('web/robots_configuration/compare')); $this->renderLayout(); } diff --git a/app/code/core/Mage/Catalog/controllers/Seo/SitemapController.php b/app/code/core/Mage/Catalog/controllers/Seo/SitemapController.php index 69962ab472a..bfb410945fe 100644 --- a/app/code/core/Mage/Catalog/controllers/Seo/SitemapController.php +++ b/app/code/core/Mage/Catalog/controllers/Seo/SitemapController.php @@ -50,6 +50,7 @@ public function categoryAction() } $this->loadLayoutUpdates(); $this->generateLayoutXml()->generateLayoutBlocks(); + $this->getLayout()->getBlock('head')->setRobots(Mage::getStoreConfig('web/robots_configuration/sitemap')); $this->renderLayout(); } @@ -60,6 +61,7 @@ public function categoryAction() public function productAction() { $this->loadLayout(); + $this->getLayout()->getBlock('head')->setRobots(Mage::getStoreConfig('web/robots_configuration/sitemap')); $this->renderLayout(); } } diff --git a/app/code/core/Mage/Catalog/etc/config.xml b/app/code/core/Mage/Catalog/etc/config.xml index 61cfb611821..c2d63d39cd8 100644 --- a/app/code/core/Mage/Catalog/etc/config.xml +++ b/app/code/core/Mage/Catalog/etc/config.xml @@ -17,7 +17,7 @@ - 1.6.0.0.19.1.6 + 1.6.0.0.19.1.7 diff --git a/app/code/core/Mage/Catalog/etc/system.xml b/app/code/core/Mage/Catalog/etc/system.xml index 3b099086c8b..ffb104a25dc 100644 --- a/app/code/core/Mage/Catalog/etc/system.xml +++ b/app/code/core/Mage/Catalog/etc/system.xml @@ -299,6 +299,16 @@ 1 1 + + + select + adminhtml/system_config_source_yesno + 9 + 1 + 1 + 1 + Set robots to NOINDEX, FOLLOW when page is > 1 + diff --git a/app/code/core/Mage/Catalog/etc/wsdl.xml b/app/code/core/Mage/Catalog/etc/wsdl.xml index 8b639cb8ee9..90d29fcd0fa 100644 --- a/app/code/core/Mage/Catalog/etc/wsdl.xml +++ b/app/code/core/Mage/Catalog/etc/wsdl.xml @@ -70,6 +70,7 @@ + @@ -101,6 +102,7 @@ + @@ -218,6 +220,7 @@ + @@ -243,6 +246,7 @@ + diff --git a/app/code/core/Mage/Catalog/etc/wsi.xml b/app/code/core/Mage/Catalog/etc/wsi.xml index 5abbda91213..dcf3d62aaaf 100644 --- a/app/code/core/Mage/Catalog/etc/wsi.xml +++ b/app/code/core/Mage/Catalog/etc/wsi.xml @@ -62,6 +62,7 @@ + @@ -196,6 +197,7 @@ + @@ -221,6 +223,7 @@ + diff --git a/app/code/core/Mage/Catalog/sql/catalog_setup/upgrade-1.6.0.0.19.1.6-1.6.0.0.19.1.7.php b/app/code/core/Mage/Catalog/sql/catalog_setup/upgrade-1.6.0.0.19.1.6-1.6.0.0.19.1.7.php new file mode 100644 index 00000000000..7d23a5b90d8 --- /dev/null +++ b/app/code/core/Mage/Catalog/sql/catalog_setup/upgrade-1.6.0.0.19.1.6-1.6.0.0.19.1.7.php @@ -0,0 +1,48 @@ +startSetup(); +$installer->addAttribute(Mage_Catalog_Model_Category::ENTITY, 'meta_robots', array( + 'type' => 'int', + 'label' => 'Robots', + 'input' => 'select', + 'source' => 'catalog/category_attribute_source_robots', + 'required' => false, + 'sort_order' => 9, + 'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_STORE, + 'group' => 'General Information', + 'user_defined' => false, +)); + +$installer->addAttribute(Mage_Catalog_Model_Product::ENTITY, 'meta_robots', array( + 'type' => 'int', + 'label' => 'Robots', + 'input' => 'select', + 'source' => 'catalog/product_attribute_source_robots', + 'sort_order' => 9, + 'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_STORE, + 'group' => 'Meta Information', + 'visible' => true, + 'required' => false, + 'user_defined' => false, + 'searchable' => false, + 'filterable' => false, + 'comparable' => false, + 'visible_in_advanced_search' => false, +)); + +$installer->endSetup(); diff --git a/app/code/core/Mage/CatalogSearch/Block/Advanced/Form.php b/app/code/core/Mage/CatalogSearch/Block/Advanced/Form.php index 2e0619b5121..2bd7685c35a 100644 --- a/app/code/core/Mage/CatalogSearch/Block/Advanced/Form.php +++ b/app/code/core/Mage/CatalogSearch/Block/Advanced/Form.php @@ -38,6 +38,8 @@ public function _prepareLayout() 'label' => Mage::helper('catalogsearch')->__('Catalog Advanced Search') ]); } + $this->getLayout()->getBlock('head')->setRobots(Mage::getStoreConfig('web/robots_configuration/search')); + return parent::_prepareLayout(); } diff --git a/app/code/core/Mage/CatalogSearch/Block/Advanced/Result.php b/app/code/core/Mage/CatalogSearch/Block/Advanced/Result.php index b4cc1ecc29c..00a0006c09e 100644 --- a/app/code/core/Mage/CatalogSearch/Block/Advanced/Result.php +++ b/app/code/core/Mage/CatalogSearch/Block/Advanced/Result.php @@ -42,6 +42,9 @@ protected function _prepareLayout() 'label' => Mage::helper('catalogsearch')->__('Results') ]); } + + $this->getLayout()->getBlock('head')->setRobots(Mage::getStoreConfig('web/robots_configuration/search')); + return parent::_prepareLayout(); } diff --git a/app/code/core/Mage/CatalogSearch/Block/Result.php b/app/code/core/Mage/CatalogSearch/Block/Result.php index 78535896292..d64f2601483 100644 --- a/app/code/core/Mage/CatalogSearch/Block/Result.php +++ b/app/code/core/Mage/CatalogSearch/Block/Result.php @@ -72,6 +72,7 @@ protected function _prepareLayout() // modify page title $title = $this->__("Search results for: '%s'", $helper->getEscapedQueryText()); $this->getLayout()->getBlock('head')->setTitle($title); + $this->getLayout()->getBlock('head')->setRobots(Mage::getStoreConfig('web/robots_configuration/search')); return parent::_prepareLayout(); } diff --git a/app/code/core/Mage/CatalogSearch/controllers/TermController.php b/app/code/core/Mage/CatalogSearch/controllers/TermController.php index 3b2452f161e..340d13227e4 100644 --- a/app/code/core/Mage/CatalogSearch/controllers/TermController.php +++ b/app/code/core/Mage/CatalogSearch/controllers/TermController.php @@ -34,6 +34,7 @@ public function preDispatch() public function popularAction() { $this->loadLayout(); + $this->getLayout()->getBlock('head')->setRobots(Mage::getStoreConfig('web/robots_configuration/searchterms')); $this->renderLayout(); } } diff --git a/app/code/core/Mage/Checkout/controllers/CartController.php b/app/code/core/Mage/Checkout/controllers/CartController.php index 3ad002536b1..9431893f439 100644 --- a/app/code/core/Mage/Checkout/controllers/CartController.php +++ b/app/code/core/Mage/Checkout/controllers/CartController.php @@ -185,6 +185,7 @@ public function indexAction() ->_initLayoutMessages('checkout/session') ->_initLayoutMessages('catalog/session') ->getLayout()->getBlock('head')->setTitle($this->__('Shopping Cart')); + $this->getLayout()->getBlock('head')->setRobots(Mage::getStoreConfig('web/robots_configuration/checkout')); $this->renderLayout(); Varien_Profiler::stop(__METHOD__ . 'cart_display'); } diff --git a/app/code/core/Mage/Checkout/controllers/OnepageController.php b/app/code/core/Mage/Checkout/controllers/OnepageController.php index 68af5285672..6eeb63a4f1b 100644 --- a/app/code/core/Mage/Checkout/controllers/OnepageController.php +++ b/app/code/core/Mage/Checkout/controllers/OnepageController.php @@ -200,6 +200,7 @@ public function indexAction() $this->getOnepage()->initCheckout(); $this->loadLayout(); $this->_initLayoutMessages('customer/session'); + $this->getLayout()->getBlock('head')->setRobots(Mage::getStoreConfig('web/robots_configuration/checkout')); $this->getLayout()->getBlock('head')->setTitle($this->__('Checkout')); $this->renderLayout(); } @@ -281,6 +282,7 @@ public function successAction() $this->loadLayout(); $this->_initLayoutMessages('checkout/session'); Mage::dispatchEvent('checkout_onepage_controller_success_action', ['order_ids' => [$lastOrderId]]); + $this->getLayout()->getBlock('head')->setRobots(Mage::getStoreConfig('web/robots_configuration/checkout')); $this->renderLayout(); } diff --git a/app/code/core/Mage/Cms/Block/Page.php b/app/code/core/Mage/Cms/Block/Page.php index abd6ea8c8c0..7680d01bcdd 100644 --- a/app/code/core/Mage/Cms/Block/Page.php +++ b/app/code/core/Mage/Cms/Block/Page.php @@ -100,8 +100,8 @@ protected function _prepareLayout() $head->setTitle($page->getTitle()); $head->setKeywords($page->getMetaKeywords()); $head->setDescription($page->getMetaDescription()); + $head->setRobots(Mage::getSingleton('page/source_robots')->getOptionLabel($page->getMetaRobots())); } - return parent::_prepareLayout(); } diff --git a/app/code/core/Mage/Cms/Model/Page.php b/app/code/core/Mage/Cms/Model/Page.php index a9e0b6739fd..6a77ecf59c9 100644 --- a/app/code/core/Mage/Cms/Model/Page.php +++ b/app/code/core/Mage/Cms/Model/Page.php @@ -50,6 +50,8 @@ * @method $this setMetaDescription(string $value) * @method string getMetaKeywords() * @method $this setMetaKeywords(string $value) + * @method int getMetaRobots() + * @method $this setMetaRobots(int $value) * @method string getPreviewUrl() * @method string getRootTemplate() * @method $this setRootTemplate(string $value) @@ -78,6 +80,17 @@ class Mage_Cms_Model_Page extends Mage_Core_Model_Abstract public const CACHE_TAG = 'cms_page'; protected $_cacheTag = 'cms_page'; + /** + * Page's Robots + */ + public const META_ROBOTS_INDEX_FOLLOW = 1; + public const META_ROBOTS_INDEX_NOFOLLOW = 2; + public const META_ROBOTS_NOINDEX_FOLLOW = 3; + public const META_ROBOTS_NOINDEX_NOFOLLOW = 4; + public const META_ROBOTS_INDEX_FOLLOW_NOARCHIVE = 5; + public const META_ROBOTS_INDEX_NOFOLLOW_NOARCHIVE = 6; + public const META_ROBOTS_NOINDEX_NOFOLLOW_NOARCHIVE = 7; + /** * Prefix of model events names * @@ -141,4 +154,25 @@ public function getAvailableStatuses() return $statuses->getData(); } + + /** + * Prepare page's robots. + * Available event cms_page_get_available_robots to customize robots behaviour. + * + * @return array + */ + public function getAvailableRobots() + { + $robots = new Varien_Object(array( + self::META_ROBOTS_INDEX_FOLLOW => Mage::helper('cms')->__('INDEX,FOLLOW'), + self::META_ROBOTS_INDEX_NOFOLLOW => Mage::helper('cms')->__('INDEX,NOFOLLOW'), + self::META_ROBOTS_NOINDEX_FOLLOW => Mage::helper('cms')->__('NOINDEX,FOLLOW'), + self::META_ROBOTS_NOINDEX_NOFOLLOW => Mage::helper('cms')->__('NOINDEX,NOFOLLOW'), + self::META_ROBOTS_INDEX_FOLLOW_NOARCHIVE => Mage::helper('cms')->__('INDEX,FOLLOW,NOARCHIVE'), + self::META_ROBOTS_INDEX_NOFOLLOW_NOARCHIVE => Mage::helper('cms')->__('INDEX,NOFOLLOW,NOARCHIVE'), + self::META_ROBOTS_NOINDEX_NOFOLLOW_NOARCHIVE => Mage::helper('cms')->__('NOINDEX,NOFOLLOW,NOARCHIVE'), + )); + + return $robots->getData(); + } } diff --git a/app/code/core/Mage/Cms/data/cms_setup/data-install-1.6.0.0.php b/app/code/core/Mage/Cms/data/cms_setup/data-install-1.6.0.0.php index 033bd3ae90d..70f141865bc 100644 --- a/app/code/core/Mage/Cms/data/cms_setup/data-install-1.6.0.0.php +++ b/app/code/core/Mage/Cms/data/cms_setup/data-install-1.6.0.0.php @@ -34,6 +34,7 @@ 'meta_keywords' => 'Page keywords', 'meta_description' => 'Page description', + 'meta_robots' => 1, 'identifier' => 'no-route', 'content' => "

Whoops, our bad...

diff --git a/app/code/core/Mage/Cms/etc/config.xml b/app/code/core/Mage/Cms/etc/config.xml index 5d391926c66..306ebc36c05 100644 --- a/app/code/core/Mage/Cms/etc/config.xml +++ b/app/code/core/Mage/Cms/etc/config.xml @@ -17,7 +17,7 @@ - 1.6.0.0.2 + 1.6.0.3 diff --git a/app/code/core/Mage/Cms/sql/cms_setup/install-1.6.0.0.php b/app/code/core/Mage/Cms/sql/cms_setup/install-1.6.0.0.php deleted file mode 100644 index c76ba5810b2..00000000000 --- a/app/code/core/Mage/Cms/sql/cms_setup/install-1.6.0.0.php +++ /dev/null @@ -1,191 +0,0 @@ -startSetup(); - -/** - * Create table 'cms/block' - */ -$table = $installer->getConnection() - ->newTable($installer->getTable('cms/block')) - ->addColumn('block_id', Varien_Db_Ddl_Table::TYPE_SMALLINT, null, [ - 'identity' => true, - 'nullable' => false, - 'primary' => true, - ], 'Block ID') - ->addColumn('title', Varien_Db_Ddl_Table::TYPE_TEXT, 255, [ - 'nullable' => false, - ], 'Block Title') - ->addColumn('identifier', Varien_Db_Ddl_Table::TYPE_TEXT, 255, [ - 'nullable' => false, - ], 'Block String Identifier') - ->addColumn('content', Varien_Db_Ddl_Table::TYPE_TEXT, '2M', [ - ], 'Block Content') - ->addColumn('creation_time', Varien_Db_Ddl_Table::TYPE_TIMESTAMP, null, [ - ], 'Block Creation Time') - ->addColumn('update_time', Varien_Db_Ddl_Table::TYPE_TIMESTAMP, null, [ - ], 'Block Modification Time') - ->addColumn('is_active', Varien_Db_Ddl_Table::TYPE_SMALLINT, null, [ - 'nullable' => false, - 'default' => '1', - ], 'Is Block Active') - ->setComment('CMS Block Table'); -$installer->getConnection()->createTable($table); - -/** - * Create table 'cms/block_store' - */ -$table = $installer->getConnection() - ->newTable($installer->getTable('cms/block_store')) - ->addColumn('block_id', Varien_Db_Ddl_Table::TYPE_SMALLINT, null, [ - 'nullable' => false, - 'primary' => true, - ], 'Block ID') - ->addColumn('store_id', Varien_Db_Ddl_Table::TYPE_SMALLINT, null, [ - 'unsigned' => true, - 'nullable' => false, - 'primary' => true, - ], 'Store ID') - ->addIndex( - $installer->getIdxName('cms/block_store', ['store_id']), - ['store_id'] - ) - ->addForeignKey( - $installer->getFkName('cms/block_store', 'block_id', 'cms/block', 'block_id'), - 'block_id', - $installer->getTable('cms/block'), - 'block_id', - Varien_Db_Ddl_Table::ACTION_CASCADE, - Varien_Db_Ddl_Table::ACTION_CASCADE - ) - ->addForeignKey( - $installer->getFkName('cms/block_store', 'store_id', 'core/store', 'store_id'), - 'store_id', - $installer->getTable('core/store'), - 'store_id', - Varien_Db_Ddl_Table::ACTION_CASCADE, - Varien_Db_Ddl_Table::ACTION_CASCADE - ) - ->setComment('CMS Block To Store Linkage Table'); -$installer->getConnection()->createTable($table); - -/** - * Create table 'cms/page' - */ -$table = $installer->getConnection() - ->newTable($installer->getTable('cms/page')) - ->addColumn('page_id', Varien_Db_Ddl_Table::TYPE_SMALLINT, null, [ - 'identity' => true, - 'nullable' => false, - 'primary' => true, - ], 'Page ID') - ->addColumn('title', Varien_Db_Ddl_Table::TYPE_TEXT, 255, [ - 'nullable' => true - ], 'Page Title') - ->addColumn('root_template', Varien_Db_Ddl_Table::TYPE_TEXT, 255, [ - 'nullable' => true - ], 'Page Template') - ->addColumn('meta_keywords', Varien_Db_Ddl_Table::TYPE_TEXT, '64k', [ - 'nullable' => true, - ], 'Page Meta Keywords') - ->addColumn('meta_description', Varien_Db_Ddl_Table::TYPE_TEXT, '64k', [ - 'nullable' => true, - ], 'Page Meta Description') - ->addColumn('identifier', Varien_Db_Ddl_Table::TYPE_TEXT, 100, [ - 'nullable' => true, - 'default' => null, - ], 'Page String Identifier') - ->addColumn('content_heading', Varien_Db_Ddl_Table::TYPE_TEXT, 255, [ - 'nullable' => true, - ], 'Page Content Heading') - ->addColumn('content', Varien_Db_Ddl_Table::TYPE_TEXT, '2M', [ - ], 'Page Content') - ->addColumn('creation_time', Varien_Db_Ddl_Table::TYPE_TIMESTAMP, null, [ - ], 'Page Creation Time') - ->addColumn('update_time', Varien_Db_Ddl_Table::TYPE_TIMESTAMP, null, [ - ], 'Page Modification Time') - ->addColumn('is_active', Varien_Db_Ddl_Table::TYPE_SMALLINT, null, [ - 'nullable' => false, - 'default' => '1', - ], 'Is Page Active') - ->addColumn('sort_order', Varien_Db_Ddl_Table::TYPE_SMALLINT, null, [ - 'nullable' => false, - 'default' => '0', - ], 'Page Sort Order') - ->addColumn('layout_update_xml', Varien_Db_Ddl_Table::TYPE_TEXT, '64k', [ - 'nullable' => true, - ], 'Page Layout Update Content') - ->addColumn('custom_theme', Varien_Db_Ddl_Table::TYPE_TEXT, 100, [ - 'nullable' => true, - ], 'Page Custom Theme') - ->addColumn('custom_root_template', Varien_Db_Ddl_Table::TYPE_TEXT, 255, [ - 'nullable' => true, - ], 'Page Custom Template') - ->addColumn('custom_layout_update_xml', Varien_Db_Ddl_Table::TYPE_TEXT, '64k', [ - 'nullable' => true, - ], 'Page Custom Layout Update Content') - ->addColumn('custom_theme_from', Varien_Db_Ddl_Table::TYPE_DATE, null, [ - 'nullable' => true, - ], 'Page Custom Theme Active From Date') - ->addColumn('custom_theme_to', Varien_Db_Ddl_Table::TYPE_DATE, null, [ - 'nullable' => true, - ], 'Page Custom Theme Active To Date') - ->addIndex( - $installer->getIdxName('cms/page', ['identifier']), - ['identifier'] - ) - ->setComment('CMS Page Table'); -$installer->getConnection()->createTable($table); - -/** - * Create table 'cms/page_store' - */ -$table = $installer->getConnection() - ->newTable($installer->getTable('cms/page_store')) - ->addColumn('page_id', Varien_Db_Ddl_Table::TYPE_SMALLINT, null, [ - 'nullable' => false, - 'primary' => true, - ], 'Page ID') - ->addColumn('store_id', Varien_Db_Ddl_Table::TYPE_SMALLINT, null, [ - 'unsigned' => true, - 'nullable' => false, - 'primary' => true, - ], 'Store ID') - ->addIndex( - $installer->getIdxName('cms/page_store', ['store_id']), - ['store_id'] - ) - ->addForeignKey( - $installer->getFkName('cms/page_store', 'page_id', 'cms/page', 'page_id'), - 'page_id', - $installer->getTable('cms/page'), - 'page_id', - Varien_Db_Ddl_Table::ACTION_CASCADE, - Varien_Db_Ddl_Table::ACTION_CASCADE - ) - ->addForeignKey( - $installer->getFkName('cms/page_store', 'store_id', 'core/store', 'store_id'), - 'store_id', - $installer->getTable('core/store'), - 'store_id', - Varien_Db_Ddl_Table::ACTION_CASCADE, - Varien_Db_Ddl_Table::ACTION_CASCADE - ) - ->setComment('CMS Page To Store Linkage Table'); -$installer->getConnection()->createTable($table); - -$installer->endSetup(); diff --git a/app/code/core/Mage/Cms/sql/cms_setup/mysql4-install-0.7.0.php b/app/code/core/Mage/Cms/sql/cms_setup/mysql4-install-0.7.0.php index 28a5637e737..f4f01817702 100644 --- a/app/code/core/Mage/Cms/sql/cms_setup/mysql4-install-0.7.0.php +++ b/app/code/core/Mage/Cms/sql/cms_setup/mysql4-install-0.7.0.php @@ -41,6 +41,7 @@ `root_template` varchar(255) NOT NULL default '', `meta_keywords` text NOT NULL, `meta_description` text NOT NULL, + 'meta_robots int NOT NULL, `identifier` varchar(100) NOT NULL default '', `content` text, `creation_time` datetime default NULL, @@ -53,7 +54,7 @@ UNIQUE KEY `identifier` (`identifier`,`store_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='CMS pages'; -insert into {$this->getTable('cms_page')}(`page_id`,`title`,`root_template`,`meta_keywords`,`meta_description`,`identifier`,`content`,`creation_time`,`update_time`,`is_active`,`store_id`,`sort_order`) values (1,'404 Not Found 1','right_column','Page keywords','Page description','no-route','

Whoops, our bad...

\r\n
\r\n
The page you requested was not found, and we have a fine guess why.
\r\n
\r\n
    \r\n
  • If you typed the URL directly, please make sure the spelling is correct.
  • \r\n
  • If you clicked on a link to get here, the link is outdated.
  • \r\n
\r\n
\r\n
\r\n
What can you do?
\r\n
Have no fear, help is near! There are many ways you can get back on track with Magento Store.
\r\n
\r\n
    \r\n
  • Go back to the previous page.
  • \r\n
  • Use the search bar at the top of the page to search for your products.
  • \r\n
  • Follow these links to get you back on track!
    Store Home | My Account
\r\n','2007-06-20 18:38:32','2007-08-26 19:11:13',1,0,0),(2,'Home page','right_column','','','home','

Home Page

\r\n','2007-08-23 10:03:25','2007-09-06 13:26:53',1,0,0),(3,'About Us','one_column','','','about-magento-demo-store','
\r\n

About Magento Store

\r\n
\r\n
\r\n

\"Varien\"

Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi luctus. Duis lobortis. Nulla nec velit. Mauris pulvinar erat non massa. Suspendisse tortor turpis, porta nec, tempus vitae, iaculis semper, pede.

\r\n

Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi luctus. Duis lobortis. Nulla nec velit. Mauris pulvinar erat non massa. Suspendisse tortor turpis, porta nec, tempus vitae, iaculis semper, pede. Cras vel libero id lectus rhoncus porta.

\r\n
\r\n

Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi luctus. Duis lobortis. Nulla nec velit.

\r\n

Vivamus tortor nisl, lobortis in, faucibus et, tempus at, dui. Nunc risus. Proin scelerisque augue. Nam ullamcorper. Phasellus id massa. Pellentesque nisl. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Nunc augue. Aenean sed justo non leo vehicula laoreet. Praesent ipsum libero, auctor ac, tempus nec, tempor nec, justo.

\r\n

Maecenas ullamcorper, odio vel tempus egestas, dui orci faucibus orci, sit amet aliquet lectus dolor et quam. Pellentesque consequat luctus purus. Nunc et risus. Etiam a nibh. Phasellus dignissim metus eget nisi. Vestibulum sapien dolor, aliquet nec, porta ac, malesuada a, libero. Praesent feugiat purus eget est. Nulla facilisi. Vestibulum tincidunt sapien eu velit. Mauris purus. Maecenas eget mauris eu orci accumsan feugiat. Pellentesque eget velit. Nunc tincidunt.

\r\n
\r\n

Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi luctus. Duis lobortis. Nulla nec velit. Mauris pulvinar erat non massa. Suspendisse tortor turpis, porta nec, tempus vitae, iaculis semper, pede. Cras vel libero id lectus rhoncus porta. Suspendisse convallis felis ac enim. Vivamus tortor nisl, lobortis in, faucibus et, tempus at, dui. Nunc risus. Proin scelerisque augue. Nam ullamcorper

\r\n

Maecenas ullamcorper, odio vel tempus egestas, dui orci faucibus orci, sit amet aliquet lectus dolor et quam. Pellentesque consequat luctus purus.

\r\n

Nunc et risus. Etiam a nibh. Phasellus dignissim metus eget nisi.

\r\n
\r\n

To all of you, from all of us at Magento Store - Thank you and Happy eCommerce!

\r\n

John Doe
Some important guy

\r\n
','2007-08-30 14:01:18','2007-08-30 14:01:18',1,0,0),(4,'Customer Service','three_column','','','customer-service','
\r\n

Customer Service

\r\n
\r\n\r\n
\r\n
Shipping & Delivery
\r\n
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi luctus. Duis lobortis. Nulla nec velit. Mauris pulvinar erat non massa. Suspendisse tortor turpis, porta nec, tempus vitae, iaculis semper, pede. Cras vel libero id lectus rhoncus porta. Suspendisse convallis felis ac enim. Vivamus tortor nisl, lobortis in, faucibus et, tempus at, dui. Nunc risus. Proin scelerisque augue. Nam ullamcorper. Phasellus id massa. Pellentesque nisl. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Nunc augue. Aenean sed justo non leo vehicula laoreet. Praesent ipsum libero, auctor ac, tempus nec, tempor nec, justo.
\r\n
Privacy & Security
\r\n
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi luctus. Duis lobortis. Nulla nec velit. Mauris pulvinar erat non massa. Suspendisse tortor turpis, porta nec, tempus vitae, iaculis semper, pede. Cras vel libero id lectus rhoncus porta. Suspendisse convallis felis ac enim. Vivamus tortor nisl, lobortis in, faucibus et, tempus at, dui. Nunc risus. Proin scelerisque augue. Nam ullamcorper. Phasellus id massa. Pellentesque nisl. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Nunc augue. Aenean sed justo non leo vehicula laoreet. Praesent ipsum libero, auctor ac, tempus nec, tempor nec, justo.
\r\n
Returns & Replacements
\r\n
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi luctus. Duis lobortis. Nulla nec velit. Mauris pulvinar erat non massa. Suspendisse tortor turpis, porta nec, tempus vitae, iaculis semper, pede. Cras vel libero id lectus rhoncus porta. Suspendisse convallis felis ac enim. Vivamus tortor nisl, lobortis in, faucibus et, tempus at, dui. Nunc risus. Proin scelerisque augue. Nam ullamcorper. Phasellus id massa. Pellentesque nisl. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Nunc augue. Aenean sed justo non leo vehicula laoreet. Praesent ipsum libero, auctor ac, tempus nec, tempor nec, justo.
\r\n
Ordering
\r\n
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi luctus. Duis lobortis. Nulla nec velit. Mauris pulvinar erat non massa. Suspendisse tortor turpis, porta nec, tempus vitae, iaculis semper, pede. Cras vel libero id lectus rhoncus porta. Suspendisse convallis felis ac enim. Vivamus tortor nisl, lobortis in, faucibus et, tempus at, dui. Nunc risus. Proin scelerisque augue. Nam ullamcorper. Phasellus id massa. Pellentesque nisl. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Nunc augue. Aenean sed justo non leo vehicula laoreet. Praesent ipsum libero, auctor ac, tempus nec, tempor nec, justo.
\r\n
Payment, Pricing & Promotions
\r\n
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi luctus. Duis lobortis. Nulla nec velit. Mauris pulvinar erat non massa. Suspendisse tortor turpis, porta nec, tempus vitae, iaculis semper, pede. Cras vel libero id lectus rhoncus porta. Suspendisse convallis felis ac enim. Vivamus tortor nisl, lobortis in, faucibus et, tempus at, dui. Nunc risus. Proin scelerisque augue. Nam ullamcorper. Phasellus id massa. Pellentesque nisl. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Nunc augue. Aenean sed justo non leo vehicula laoreet. Praesent ipsum libero, auctor ac, tempus nec, tempor nec, justo.
\r\n
Viewing Orders
\r\n
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi luctus. Duis lobortis. Nulla nec velit. Mauris pulvinar erat non massa. Suspendisse tortor turpis, porta nec, tempus vitae, iaculis semper, pede. Cras vel libero id lectus rhoncus porta. Suspendisse convallis felis ac enim. Vivamus tortor nisl, lobortis in, faucibus et, tempus at, dui. Nunc risus. Proin scelerisque augue. Nam ullamcorper. Phasellus id massa. Pellentesque nisl. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Nunc augue. Aenean sed justo non leo vehicula laoreet. Praesent ipsum libero, auctor ac, tempus nec, tempor nec, justo.
\r\n
Updating Account Information
\r\n
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi luctus. Duis lobortis. Nulla nec velit. Mauris pulvinar erat non massa. Suspendisse tortor turpis, porta nec, tempus vitae, iaculis semper, pede. Cras vel libero id lectus rhoncus porta. Suspendisse convallis felis ac enim. Vivamus tortor nisl, lobortis in, faucibus et, tempus at, dui. Nunc risus. Proin scelerisque augue. Nam ullamcorper. Phasellus id massa. Pellentesque nisl. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Nunc augue. Aenean sed justo non leo vehicula laoreet. Praesent ipsum libero, auctor ac, tempus nec, tempor nec, justo.
\r\n
','2007-08-30 14:02:20','2007-08-30 14:03:37',1,0,0); +insert into {$this->getTable('cms_page')}(`page_id`,`title`,`root_template`,`meta_keywords`,`meta_description`, 'meta_robots',`identifier`,`content`,`creation_time`,`update_time`,`is_active`,`store_id`,`sort_order`) values (1,'404 Not Found 1','right_column','Page keywords','Page description','1','no-route','

Whoops, our bad...

\r\n
\r\n
The page you requested was not found, and we have a fine guess why.
\r\n
\r\n
    \r\n
  • If you typed the URL directly, please make sure the spelling is correct.
  • \r\n
  • If you clicked on a link to get here, the link is outdated.
  • \r\n
\r\n
\r\n
\r\n
What can you do?
\r\n
Have no fear, help is near! There are many ways you can get back on track with Magento Store.
\r\n
\r\n
    \r\n
  • Go back to the previous page.
  • \r\n
  • Use the search bar at the top of the page to search for your products.
  • \r\n
  • Follow these links to get you back on track!
    Store Home | My Account
\r\n','2007-06-20 18:38:32','2007-08-26 19:11:13',1,0,0),(2,'Home page','right_column','','','home','

Home Page

\r\n','2007-08-23 10:03:25','2007-09-06 13:26:53',1,0,0),(3,'About Us','one_column','','','about-magento-demo-store','
\r\n

About Magento Store

\r\n
\r\n
\r\n

\"Varien\"

Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi luctus. Duis lobortis. Nulla nec velit. Mauris pulvinar erat non massa. Suspendisse tortor turpis, porta nec, tempus vitae, iaculis semper, pede.

\r\n

Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi luctus. Duis lobortis. Nulla nec velit. Mauris pulvinar erat non massa. Suspendisse tortor turpis, porta nec, tempus vitae, iaculis semper, pede. Cras vel libero id lectus rhoncus porta.

\r\n
\r\n

Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi luctus. Duis lobortis. Nulla nec velit.

\r\n

Vivamus tortor nisl, lobortis in, faucibus et, tempus at, dui. Nunc risus. Proin scelerisque augue. Nam ullamcorper. Phasellus id massa. Pellentesque nisl. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Nunc augue. Aenean sed justo non leo vehicula laoreet. Praesent ipsum libero, auctor ac, tempus nec, tempor nec, justo.

\r\n

Maecenas ullamcorper, odio vel tempus egestas, dui orci faucibus orci, sit amet aliquet lectus dolor et quam. Pellentesque consequat luctus purus. Nunc et risus. Etiam a nibh. Phasellus dignissim metus eget nisi. Vestibulum sapien dolor, aliquet nec, porta ac, malesuada a, libero. Praesent feugiat purus eget est. Nulla facilisi. Vestibulum tincidunt sapien eu velit. Mauris purus. Maecenas eget mauris eu orci accumsan feugiat. Pellentesque eget velit. Nunc tincidunt.

\r\n
\r\n

Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi luctus. Duis lobortis. Nulla nec velit. Mauris pulvinar erat non massa. Suspendisse tortor turpis, porta nec, tempus vitae, iaculis semper, pede. Cras vel libero id lectus rhoncus porta. Suspendisse convallis felis ac enim. Vivamus tortor nisl, lobortis in, faucibus et, tempus at, dui. Nunc risus. Proin scelerisque augue. Nam ullamcorper

\r\n

Maecenas ullamcorper, odio vel tempus egestas, dui orci faucibus orci, sit amet aliquet lectus dolor et quam. Pellentesque consequat luctus purus.

\r\n

Nunc et risus. Etiam a nibh. Phasellus dignissim metus eget nisi.

\r\n
\r\n

To all of you, from all of us at Magento Store - Thank you and Happy eCommerce!

\r\n

John Doe
Some important guy

\r\n
','2007-08-30 14:01:18','2007-08-30 14:01:18',1,0,0),(4,'Customer Service','three_column','','','customer-service','
\r\n

Customer Service

\r\n
\r\n\r\n
\r\n
Shipping & Delivery
\r\n
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi luctus. Duis lobortis. Nulla nec velit. Mauris pulvinar erat non massa. Suspendisse tortor turpis, porta nec, tempus vitae, iaculis semper, pede. Cras vel libero id lectus rhoncus porta. Suspendisse convallis felis ac enim. Vivamus tortor nisl, lobortis in, faucibus et, tempus at, dui. Nunc risus. Proin scelerisque augue. Nam ullamcorper. Phasellus id massa. Pellentesque nisl. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Nunc augue. Aenean sed justo non leo vehicula laoreet. Praesent ipsum libero, auctor ac, tempus nec, tempor nec, justo.
\r\n
Privacy & Security
\r\n
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi luctus. Duis lobortis. Nulla nec velit. Mauris pulvinar erat non massa. Suspendisse tortor turpis, porta nec, tempus vitae, iaculis semper, pede. Cras vel libero id lectus rhoncus porta. Suspendisse convallis felis ac enim. Vivamus tortor nisl, lobortis in, faucibus et, tempus at, dui. Nunc risus. Proin scelerisque augue. Nam ullamcorper. Phasellus id massa. Pellentesque nisl. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Nunc augue. Aenean sed justo non leo vehicula laoreet. Praesent ipsum libero, auctor ac, tempus nec, tempor nec, justo.
\r\n
Returns & Replacements
\r\n
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi luctus. Duis lobortis. Nulla nec velit. Mauris pulvinar erat non massa. Suspendisse tortor turpis, porta nec, tempus vitae, iaculis semper, pede. Cras vel libero id lectus rhoncus porta. Suspendisse convallis felis ac enim. Vivamus tortor nisl, lobortis in, faucibus et, tempus at, dui. Nunc risus. Proin scelerisque augue. Nam ullamcorper. Phasellus id massa. Pellentesque nisl. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Nunc augue. Aenean sed justo non leo vehicula laoreet. Praesent ipsum libero, auctor ac, tempus nec, tempor nec, justo.
\r\n
Ordering
\r\n
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi luctus. Duis lobortis. Nulla nec velit. Mauris pulvinar erat non massa. Suspendisse tortor turpis, porta nec, tempus vitae, iaculis semper, pede. Cras vel libero id lectus rhoncus porta. Suspendisse convallis felis ac enim. Vivamus tortor nisl, lobortis in, faucibus et, tempus at, dui. Nunc risus. Proin scelerisque augue. Nam ullamcorper. Phasellus id massa. Pellentesque nisl. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Nunc augue. Aenean sed justo non leo vehicula laoreet. Praesent ipsum libero, auctor ac, tempus nec, tempor nec, justo.
\r\n
Payment, Pricing & Promotions
\r\n
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi luctus. Duis lobortis. Nulla nec velit. Mauris pulvinar erat non massa. Suspendisse tortor turpis, porta nec, tempus vitae, iaculis semper, pede. Cras vel libero id lectus rhoncus porta. Suspendisse convallis felis ac enim. Vivamus tortor nisl, lobortis in, faucibus et, tempus at, dui. Nunc risus. Proin scelerisque augue. Nam ullamcorper. Phasellus id massa. Pellentesque nisl. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Nunc augue. Aenean sed justo non leo vehicula laoreet. Praesent ipsum libero, auctor ac, tempus nec, tempor nec, justo.
\r\n
Viewing Orders
\r\n
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi luctus. Duis lobortis. Nulla nec velit. Mauris pulvinar erat non massa. Suspendisse tortor turpis, porta nec, tempus vitae, iaculis semper, pede. Cras vel libero id lectus rhoncus porta. Suspendisse convallis felis ac enim. Vivamus tortor nisl, lobortis in, faucibus et, tempus at, dui. Nunc risus. Proin scelerisque augue. Nam ullamcorper. Phasellus id massa. Pellentesque nisl. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Nunc augue. Aenean sed justo non leo vehicula laoreet. Praesent ipsum libero, auctor ac, tempus nec, tempor nec, justo.
\r\n
Updating Account Information
\r\n
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi luctus. Duis lobortis. Nulla nec velit. Mauris pulvinar erat non massa. Suspendisse tortor turpis, porta nec, tempus vitae, iaculis semper, pede. Cras vel libero id lectus rhoncus porta. Suspendisse convallis felis ac enim. Vivamus tortor nisl, lobortis in, faucibus et, tempus at, dui. Nunc risus. Proin scelerisque augue. Nam ullamcorper. Phasellus id massa. Pellentesque nisl. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Nunc augue. Aenean sed justo non leo vehicula laoreet. Praesent ipsum libero, auctor ac, tempus nec, tempor nec, justo.
\r\n
','2007-08-30 14:02:20','2007-08-30 14:03:37',1,0,0); "); diff --git a/app/code/core/Mage/Cms/sql/cms_setup/mysql4-upgrade-1.6.0.0-1.6.0.3.php b/app/code/core/Mage/Cms/sql/cms_setup/mysql4-upgrade-1.6.0.0-1.6.0.3.php new file mode 100644 index 00000000000..313cc61c6f3 --- /dev/null +++ b/app/code/core/Mage/Cms/sql/cms_setup/mysql4-upgrade-1.6.0.0-1.6.0.3.php @@ -0,0 +1,26 @@ +startSetup(); + +$installer->getConnection()->addColumn( + $installer->getTable('cms/page'), + 'meta_robots', + "INT NOT NULL DEFAULT '0' AFTER `meta_description`" +); + +$installer->endSetup(); diff --git a/app/code/core/Mage/Contacts/controllers/IndexController.php b/app/code/core/Mage/Contacts/controllers/IndexController.php index 42cf817ed77..5f22369ed84 100644 --- a/app/code/core/Mage/Contacts/controllers/IndexController.php +++ b/app/code/core/Mage/Contacts/controllers/IndexController.php @@ -44,6 +44,9 @@ public function preDispatch() public function indexAction() { $this->loadLayout(); + $this->getLayout()->getBlock('head') + ->setRobots(Mage::getStoreConfig('web/robots_configuration/contacts')); + $this->getLayout()->getBlock('contactForm') ->setFormAction(Mage::getUrl('*/*/post', ['_secure' => $this->getRequest()->isSecure()])); diff --git a/app/code/core/Mage/Core/etc/system.xml b/app/code/core/Mage/Core/etc/system.xml index 489b1e6fcf2..1635652f1e9 100644 --- a/app/code/core/Mage/Core/etc/system.xml +++ b/app/code/core/Mage/Core/etc/system.xml @@ -1668,6 +1668,157 @@ + + + text + 210 + 1 + 1 + 1 + + + + select + adminhtml/system_config_source_design_robots + 10 + 1 + 1 + 1 + + + + + + select + adminhtml/system_config_source_design_robots + 20 + 1 + 1 + 1 + + + + + + select + adminhtml/system_config_source_design_robots + 30 + 1 + 1 + 1 + + + + + + select + adminhtml/system_config_source_design_robots + 40 + 1 + 1 + 1 + + + + + + select + adminhtml/system_config_source_design_robots + 50 + 1 + 1 + 1 + + + + + + select + adminhtml/system_config_source_design_robots + 60 + 1 + 1 + 1 + + + + + + select + adminhtml/system_config_source_design_robots + 70 + 1 + 1 + 1 + + + + + + select + adminhtml/system_config_source_design_robots + 80 + 1 + 1 + 1 + + + + + + select + adminhtml/system_config_source_design_robots + 90 + 1 + 1 + 1 + + + + + + select + adminhtml/system_config_source_design_robots + 100 + 1 + 1 + 1 + + + + + + select + adminhtml/system_config_source_design_robots + 110 + 1 + 1 + 1 + + + + + + select + adminhtml/system_config_source_design_robots + 110 + 1 + 1 + 1 + + + + + + select + adminhtml/system_config_source_design_robots + 120 + 1 + 1 + 1 + + + diff --git a/app/code/core/Mage/Customer/controllers/AccountController.php b/app/code/core/Mage/Customer/controllers/AccountController.php index df89ba23189..06a24282e1d 100644 --- a/app/code/core/Mage/Customer/controllers/AccountController.php +++ b/app/code/core/Mage/Customer/controllers/AccountController.php @@ -125,6 +125,7 @@ public function loginAction() $this->_initLayoutMessages('customer/session'); $this->_initLayoutMessages('catalog/session'); $this->getLayout()->getBlock('head')->setTitle($this->__('Customer Login')); + $this->getLayout()->getBlock('head')->setRobots(Mage::getStoreConfig('web/robots_configuration/customer')); $this->renderLayout(); } @@ -261,6 +262,7 @@ public function createAction() $this->loadLayout(); $this->_initLayoutMessages('customer/session'); + $this->getLayout()->getBlock('head')->setRobots(Mage::getStoreConfig('web/robots_configuration/customer')); $this->renderLayout(); } @@ -717,6 +719,7 @@ public function forgotPasswordAction() $this->_getSession()->unsForgottenEmail(); $this->_initLayoutMessages('customer/session'); + $this->getLayout()->getBlock('head')->setRobots(Mage::getStoreConfig('web/robots_configuration/customer')); $this->renderLayout(); } diff --git a/app/code/core/Mage/ImportExport/Model/Import.php b/app/code/core/Mage/ImportExport/Model/Import.php index 688717f1e6f..2e78d4ee6ca 100644 --- a/app/code/core/Mage/ImportExport/Model/Import.php +++ b/app/code/core/Mage/ImportExport/Model/Import.php @@ -337,10 +337,10 @@ public function expandSource() $regExps = ['last' => '/(.*?)(\d+)$/', 'middle' => '/(.*?)(\d+)(.*)$/']; $colReg = [ 'sku' => 'last', 'name' => 'last', 'description' => 'last', 'short_description' => 'last', - 'url_key' => 'middle', 'meta_title' => 'last', 'meta_keyword' => 'last', 'meta_description' => 'last', - '_links_related_sku' => 'last', '_links_crosssell_sku' => 'last', '_links_upsell_sku' => 'last', - '_custom_option_sku' => 'middle', '_custom_option_row_sku' => 'middle', '_super_products_sku' => 'last', - '_associated_sku' => 'last' + 'url_key' => 'middle', 'meta_title' => 'last', 'meta_keyword' => 'last', 'meta_robots' => 'last', + 'meta_description' => 'last', '_links_related_sku' => 'last', '_links_crosssell_sku' => 'last', + '_links_upsell_sku' => 'last', '_custom_option_sku' => 'middle', '_custom_option_row_sku' => 'middle', + '_super_products_sku' => 'last', '_associated_sku' => 'last' ]; $size = self::DEFAULT_SIZE; diff --git a/app/code/core/Mage/Page/Block/Html/Head.php b/app/code/core/Mage/Page/Block/Html/Head.php index 3a1a4a4816a..ae95f4a1b4e 100644 --- a/app/code/core/Mage/Page/Block/Html/Head.php +++ b/app/code/core/Mage/Page/Block/Html/Head.php @@ -22,6 +22,7 @@ * @method $this setCanLoadCalendarJs(bool $value) * @method $this setDescription(string $value) * @method $this setKeywords(string $value) + * @method $this setRobots(int $value) * @method $this setCanLoadTinyMce(bool $value) */ class Mage_Page_Block_Html_Head extends Mage_Core_Block_Template @@ -455,7 +456,7 @@ public function getDescription() } /** - * Retrieve content for keyvords tag + * Retrieve content for keywords tag * * @return string */ @@ -468,9 +469,9 @@ public function getKeywords() } /** - * Retrieve URL to robots file + * Retrieve values for robots tag * - * @return string + * @return integer */ public function getRobots() { diff --git a/app/code/core/Mage/Page/Model/Source/Robots.php b/app/code/core/Mage/Page/Model/Source/Robots.php new file mode 100644 index 00000000000..4f7464102f0 --- /dev/null +++ b/app/code/core/Mage/Page/Model/Source/Robots.php @@ -0,0 +1,70 @@ + + */ +class Mage_Page_Model_Source_Robots +{ + /** + * @return array + */ + public function toOptionArray() + { + return [ + Mage_Cms_Model_Page::META_ROBOTS_INDEX_FOLLOW => [ + 'value' => Mage_Cms_Model_Page::META_ROBOTS_INDEX_FOLLOW, + 'label' => Mage::helper('cms')->__('INDEX,FOLLOW') + ], + Mage_Cms_Model_Page::META_ROBOTS_INDEX_NOFOLLOW => [ + 'value' => Mage_Cms_Model_Page::META_ROBOTS_INDEX_NOFOLLOW, + 'label' => Mage::helper('cms')->__('INDEX,NOFOLLOW') + ], + Mage_Cms_Model_Page::META_ROBOTS_NOINDEX_FOLLOW => [ + 'value' => Mage_Cms_Model_Page::META_ROBOTS_NOINDEX_FOLLOW, + 'label' => Mage::helper('cms')->__('NOINDEX,FOLLOW') + ], + Mage_Cms_Model_Page::META_ROBOTS_NOINDEX_NOFOLLOW => [ + 'value' => Mage_Cms_Model_Page::META_ROBOTS_NOINDEX_NOFOLLOW, + 'label' => Mage::helper('cms')->__('NOINDEX,NOFOLLOW') + ], + Mage_Cms_Model_Page::META_ROBOTS_INDEX_FOLLOW_NOARCHIVE => [ + 'value' => Mage_Cms_Model_Page::META_ROBOTS_INDEX_FOLLOW_NOARCHIVE, + 'label' => Mage::helper('cms')->__('INDEX,FOLLOW,NOARCHIVE') + ], + Mage_Cms_Model_Page::META_ROBOTS_INDEX_NOFOLLOW_NOARCHIVE => [ + 'value' => Mage_Cms_Model_Page::META_ROBOTS_INDEX_NOFOLLOW_NOARCHIVE, + 'label' => Mage::helper('cms')->__('INDEX,NOFOLLOW,NOARCHIVE') + ], + Mage_Cms_Model_Page::META_ROBOTS_NOINDEX_NOFOLLOW_NOARCHIVE => [ + 'value' => Mage_Cms_Model_Page::META_ROBOTS_NOINDEX_NOFOLLOW_NOARCHIVE, + 'label' => Mage::helper('cms')->__('NOINDEX,NOFOLLOW,NOARCHIVE') + ] + ]; + } + + /** + * @param int $key + * @return string + */ + public function getOptionLabel($key) + { + $options = $this->toOptionArray(); + return $options[$key]['label']; + } +} diff --git a/app/code/core/Mage/Review/controllers/ProductController.php b/app/code/core/Mage/Review/controllers/ProductController.php index f8fb67d9c89..faebe86ff25 100644 --- a/app/code/core/Mage/Review/controllers/ProductController.php +++ b/app/code/core/Mage/Review/controllers/ProductController.php @@ -239,6 +239,7 @@ public function listAction() $breadcrumbsBlock->addCrumb('reviews', ['label' => Mage::helper('review')->__('Product Reviews')]); } + $this->getLayout()->getBlock('head')->setRobots(Mage::getStoreConfig('web/robots_configuration/reviews')); $this->renderLayout(); } elseif (!$this->getResponse()->isRedirect()) { $this->_forward('noRoute'); @@ -266,6 +267,7 @@ public function viewAction() $this->loadLayout(); $this->_initLayoutMessages('review/session'); $this->_initLayoutMessages('catalog/session'); + $this->getLayout()->getBlock('head')->setRobots(Mage::getStoreConfig('web/robots_configuration/reviews')); $this->renderLayout(); } diff --git a/app/code/core/Mage/Rss/controllers/IndexController.php b/app/code/core/Mage/Rss/controllers/IndexController.php index 824e2501708..8bb50d94338 100644 --- a/app/code/core/Mage/Rss/controllers/IndexController.php +++ b/app/code/core/Mage/Rss/controllers/IndexController.php @@ -44,6 +44,7 @@ public function indexAction() $helper = $this->_getHelper('rss'); if ($helper->isRssEnabled()) { $this->loadLayout(); + $this->getLayout()->getBlock('head')->setRobots(Mage::getStoreConfig('web/robots_configuration/rss')); $this->renderLayout(); } else { $this->getResponse()->setHeader('HTTP/1.1', '404 Not Found'); diff --git a/app/code/core/Mage/Sales/controllers/GuestController.php b/app/code/core/Mage/Sales/controllers/GuestController.php index b19310334cc..a8f48687c28 100644 --- a/app/code/core/Mage/Sales/controllers/GuestController.php +++ b/app/code/core/Mage/Sales/controllers/GuestController.php @@ -55,6 +55,7 @@ protected function _viewAction() $this->loadLayout(); Mage::helper('sales/guest')->getBreadcrumbs($this); + $this->getLayout()->getBlock('head')->setRobots(Mage::getStoreConfig('web/robots_configuration/ordersreturns')); $this->renderLayout(); } @@ -69,6 +70,7 @@ public function formAction() } $this->loadLayout(); Mage::helper('sales/guest')->getBreadcrumbs($this); + $this->getLayout()->getBlock('head')->setRobots(Mage::getStoreConfig('web/robots_configuration/ordersreturns')); $this->renderLayout(); } diff --git a/app/code/core/Mage/Sendfriend/controllers/ProductController.php b/app/code/core/Mage/Sendfriend/controllers/ProductController.php index 6a738071404..4a23cb823a9 100644 --- a/app/code/core/Mage/Sendfriend/controllers/ProductController.php +++ b/app/code/core/Mage/Sendfriend/controllers/ProductController.php @@ -126,6 +126,7 @@ public function sendAction() } } + $this->getLayout()->getBlock('head')->setRobots(Mage::getStoreConfig('web/robots_configuration/sendfriend')); $this->renderLayout(); } diff --git a/app/code/core/Mage/Tag/controllers/ListController.php b/app/code/core/Mage/Tag/controllers/ListController.php index 6e0020e4749..5e107253ce2 100644 --- a/app/code/core/Mage/Tag/controllers/ListController.php +++ b/app/code/core/Mage/Tag/controllers/ListController.php @@ -24,6 +24,7 @@ class Mage_Tag_ListController extends Mage_Core_Controller_Front_Action public function indexAction() { $this->loadLayout(); + $this->getLayout()->getBlock('head')->setRobots(Mage::getStoreConfig('web/robots_configuration/tags')); $this->renderLayout(); } } diff --git a/app/code/core/Mage/Tag/controllers/ProductController.php b/app/code/core/Mage/Tag/controllers/ProductController.php index 5f6d0dbf63c..5db88f5b872 100644 --- a/app/code/core/Mage/Tag/controllers/ProductController.php +++ b/app/code/core/Mage/Tag/controllers/ProductController.php @@ -35,6 +35,7 @@ public function listAction() $this->loadLayout(); $this->_initLayoutMessages('checkout/session'); $this->_initLayoutMessages('tag/session'); + $this->getLayout()->getBlock('head')->setRobots(Mage::getStoreConfig('web/robots_configuration/tags')); $this->renderLayout(); } } diff --git a/app/code/core/Mage/Wishlist/controllers/IndexController.php b/app/code/core/Mage/Wishlist/controllers/IndexController.php index ec358ecef3c..4ce7eb7c065 100644 --- a/app/code/core/Mage/Wishlist/controllers/IndexController.php +++ b/app/code/core/Mage/Wishlist/controllers/IndexController.php @@ -150,6 +150,8 @@ public function indexAction() $this->_initLayoutMessages('catalog/session'); $this->_initLayoutMessages('wishlist/session'); + $this->getLayout()->getBlock('head')->setRobots(Mage::getStoreConfig('web/robots_configuration/wishlist')); + $this->renderLayout(); } @@ -607,6 +609,7 @@ public function shareAction() $this->loadLayout(); $this->_initLayoutMessages('customer/session'); $this->_initLayoutMessages('wishlist/session'); + $this->getLayout()->getBlock('head')->setRobots(Mage::getStoreConfig('web/robots_configuration/wishlist')); $this->renderLayout(); } diff --git a/app/code/core/Mage/Wishlist/controllers/SharedController.php b/app/code/core/Mage/Wishlist/controllers/SharedController.php index af72c857676..f1104204ab7 100644 --- a/app/code/core/Mage/Wishlist/controllers/SharedController.php +++ b/app/code/core/Mage/Wishlist/controllers/SharedController.php @@ -68,6 +68,7 @@ public function indexAction() $this->loadLayout(); $this->_initLayoutMessages('checkout/session'); $this->_initLayoutMessages('wishlist/session'); + $this->getLayout()->getBlock('head')->setRobots(Mage::getStoreConfig('web/robots_configuration/wishlist')); $this->renderLayout(); } diff --git a/dev/tests/functional/tests/app/Mage/Bundle/Test/Fixture/BundleProduct.xml b/dev/tests/functional/tests/app/Mage/Bundle/Test/Fixture/BundleProduct.xml index 487e8d7a466..f89a94518ea 100644 --- a/dev/tests/functional/tests/app/Mage/Bundle/Test/Fixture/BundleProduct.xml +++ b/dev/tests/functional/tests/app/Mage/Bundle/Test/Fixture/BundleProduct.xml @@ -43,6 +43,7 @@ + diff --git a/dev/tests/functional/tests/app/Mage/Catalog/Test/Fixture/CatalogCategory.xml b/dev/tests/functional/tests/app/Mage/Catalog/Test/Fixture/CatalogCategory.xml index d36d9a00a96..46191f338bb 100644 --- a/dev/tests/functional/tests/app/Mage/Catalog/Test/Fixture/CatalogCategory.xml +++ b/dev/tests/functional/tests/app/Mage/Catalog/Test/Fixture/CatalogCategory.xml @@ -40,6 +40,7 @@ + diff --git a/dev/tests/functional/tests/app/Mage/Catalog/Test/Fixture/CatalogProductSimple.xml b/dev/tests/functional/tests/app/Mage/Catalog/Test/Fixture/CatalogProductSimple.xml index bb4311e41f2..1584efa0c78 100644 --- a/dev/tests/functional/tests/app/Mage/Catalog/Test/Fixture/CatalogProductSimple.xml +++ b/dev/tests/functional/tests/app/Mage/Catalog/Test/Fixture/CatalogProductSimple.xml @@ -46,6 +46,7 @@ + diff --git a/dev/tests/functional/tests/app/Mage/Catalog/Test/Fixture/CatalogProductVirtual.xml b/dev/tests/functional/tests/app/Mage/Catalog/Test/Fixture/CatalogProductVirtual.xml index e4b6bd906b1..13afac6aa20 100644 --- a/dev/tests/functional/tests/app/Mage/Catalog/Test/Fixture/CatalogProductVirtual.xml +++ b/dev/tests/functional/tests/app/Mage/Catalog/Test/Fixture/CatalogProductVirtual.xml @@ -40,6 +40,7 @@ + diff --git a/dev/tests/functional/tests/app/Mage/Catalog/Test/Fixture/ConfigurableProduct.xml b/dev/tests/functional/tests/app/Mage/Catalog/Test/Fixture/ConfigurableProduct.xml index 860ce8992d0..fcf2f974a0a 100644 --- a/dev/tests/functional/tests/app/Mage/Catalog/Test/Fixture/ConfigurableProduct.xml +++ b/dev/tests/functional/tests/app/Mage/Catalog/Test/Fixture/ConfigurableProduct.xml @@ -42,6 +42,7 @@ + diff --git a/dev/tests/functional/tests/app/Mage/Catalog/Test/Fixture/GroupedProduct.xml b/dev/tests/functional/tests/app/Mage/Catalog/Test/Fixture/GroupedProduct.xml index 177c18ef3fd..c918a94565f 100644 --- a/dev/tests/functional/tests/app/Mage/Catalog/Test/Fixture/GroupedProduct.xml +++ b/dev/tests/functional/tests/app/Mage/Catalog/Test/Fixture/GroupedProduct.xml @@ -44,6 +44,7 @@ + diff --git a/dev/tests/functional/tests/app/Mage/Cms/Test/Fixture/CmsPage.xml b/dev/tests/functional/tests/app/Mage/Cms/Test/Fixture/CmsPage.xml index af9b4702417..bc74eae5dce 100644 --- a/dev/tests/functional/tests/app/Mage/Cms/Test/Fixture/CmsPage.xml +++ b/dev/tests/functional/tests/app/Mage/Cms/Test/Fixture/CmsPage.xml @@ -24,6 +24,7 @@ + diff --git a/dev/tests/functional/tests/app/Mage/Downloadable/Test/Fixture/DownloadableProduct.xml b/dev/tests/functional/tests/app/Mage/Downloadable/Test/Fixture/DownloadableProduct.xml index 6d2b43ad0dd..1bf4fc92e12 100644 --- a/dev/tests/functional/tests/app/Mage/Downloadable/Test/Fixture/DownloadableProduct.xml +++ b/dev/tests/functional/tests/app/Mage/Downloadable/Test/Fixture/DownloadableProduct.xml @@ -50,6 +50,7 @@ +