ฉันทำงานบนไซต์ที่มีฉันเชื่อว่าอินสแตนซ์ Magento แยก 9 รายการไซต์เดียวกัน
ดังนั้นจึงมีขั้นตอนที่เข้มงวดเกี่ยวกับข้อมูลแบ็คเอนด์ - กำหนดค่าและแม้กระทั่งสำหรับบล็อก CMS
ฉันต้องการค้นหาวิธีเพิ่มบล็อก CMS ผ่านสคริปต์การตั้งค่า
ฉันทำงานบนไซต์ที่มีฉันเชื่อว่าอินสแตนซ์ Magento แยก 9 รายการไซต์เดียวกัน
ดังนั้นจึงมีขั้นตอนที่เข้มงวดเกี่ยวกับข้อมูลแบ็คเอนด์ - กำหนดค่าและแม้กระทั่งสำหรับบล็อก CMS
ฉันต้องการค้นหาวิธีเพิ่มบล็อก CMS ผ่านสคริปต์การตั้งค่า
คำตอบ:
สำหรับสิ่งนี้ฉันขอแนะนำให้ใช้data
โฟลเดอร์ของหนึ่งในโมดูลที่กำหนดเองของคุณ สมมติว่าโมดูลปัจจุบันอยู่ที่รุ่น
1.0.4
สร้างไฟล์data/[module]_setup/data-upgrade-1.0.4-1.0.5.php
ด้วยเนื้อหาดังต่อไปนี้:
แก้ไข: เปลี่ยนชื่อไฟล์
$content = 'BLOCK CONTENT HERE';
//if you want one block for each store view, get the store collection
$stores = Mage::getModel('core/store')->getCollection()->addFieldToFilter('store_id', array('gt'=>0))->getAllIds();
//if you want one general block for all the store viwes, uncomment the line below
//$stores = array(0);
foreach ($stores as $store){
$block = Mage::getModel('cms/block');
$block->setTitle('Block title here');
$block->setIdentifier('block_identifier_here');
$block->setStores(array($store));
$block->setIsActive(1);
$block->setContent($content);
$block->save();
}
หลังจากนี้เพียงแค่เปลี่ยนรุ่นในconfig.xml
เพื่อ1.0.5
ล้างแคชและรีเฟรชหน้าใด ๆ
Mage::app()->getStores()
ทำเช่นเดียวกัน?
Mage::app()->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID);
$staticBlock = array(
'title' => 'Test Block',
'identifier' => 'test-block',
'content' => 'Sample Test Block',
'is_active' => 1,
'stores' => array(0)
);
Mage::getModel('cms/block')->setData($staticBlock)->save();
แทนที่จะใช้sql
โฟลเดอร์คุณควรใส่สคริปต์การตั้งค่าใด ๆ ที่แก้ไขข้อมูล CMS ในdata
โฟลเดอร์ ดูapp/code/core/Mage/Cms/data/cms_setup
ตัวอย่างที่ดี สคริปต์การติดตั้งเหล่านี้เพิ่มบล็อกแบบสแตติกและหน้า CMS
สำหรับการเปลี่ยนค่ากำหนดใช้รหัสนี้:
$installer->setConfigData(
Mage_Page_Model_Config::XML_PATH_CMS_LAYOUTS,
'your_value_here'
);
นอกจากนี้นี่เป็นบทความที่มีประโยชน์
คุณสามารถใช้รหัสด้านล่างในสคริปต์อัพเกรด:
$installer = $this;
/* @var $installer Mage_Core_Model_Resource_Setup */
$connection = $installer->getConnection();
/* @var $connection Varien_Db_Adapter_Pdo_Mysql */
$installer->startSetup();
$connection->insert($installer->getTable('cms/block'), array(
'title' => 'Footer Links',
'identifier' => 'footer-links',
'content' => '<ul>\r\n<li><a href=\"{{store direct_url=\"about-magento-demo-store\"}}\">About Us</a></li>\r\n<li class=\"last\"><a href=\"{{store direct_url=\"customer-service\"}}\">Customer Service</a></li>\r\n</ul>',
'creation_time' => now(),
'update_time' => now(),
));
$connection->insert($installer->getTable('cms/block_store'), array(
'block_id' => $connection->lastInsertId(),
'store_id' => 0
));
$installer->endSetup();
รหัสต่อไปนี้สร้างและอัพเดตบล็อกแบบสแตติกโดยใช้สคริปต์ magento
http://www.pearlbells.co.uk/how-to-create-and-update-the-static-blocks-using-magento-script/
function createBlock($blockData) {
$block = Mage::getModel('cms/block')->load($blockData['identifier']);
$block->setTitle($blockData['title']);
$block->setIdentifier($blockData['identifier']);
$block->setStores(array($blockData['storeId']));
$block->setIsActive($blockData['active']);
$block->setContent($blockData['content']);
$block->save();
}