সেটআপ স্ক্রিপ্টের মাধ্যমে একটি সিএমএস ব্লক যুক্ত করা হচ্ছে


19

আমি এমন একটি সাইটে কাজ করছি যা আমি বিশ্বাস করি 9 টি পৃথক ম্যাজেন্টো উদাহরণ, একই সাইট।

সুতরাং যে কোনও ব্যাক-এন্ড ডেটা - কনফিগার এবং এমনকি সিএমএস ব্লকের জন্যও কঠোর পদ্ধতি রয়েছে।

আমি কীভাবে একটি সেটআপ স্ক্রিপ্টের মাধ্যমে কোনও সিএমএস ব্লক যুক্ত করতে পারি তা জানতে চাই।

উত্তর:


36

এর জন্য, আমি 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যে কোনও পৃষ্ঠা রিফ্রেশ করুন।


একটি সিএমএস যোগ করা ব্লক হ'ল একটি বাগফিক্স তাই বৈশিষ্ট্য সংস্করণটি বাম্প করা উচিত। 😜
ব্যবহারকারীর 487772

চান Mage::app()->getStores()একই কাজ?
ব্যবহারকারী 487772


4

sqlফোল্ডারটি ব্যবহার করার পরিবর্তে , আপনার ফোল্ডারে সিএমএস ডেটা পরিবর্তনকারী কোনও সেটআপ স্ক্রিপ্টগুলি রাখা উচিত data। দেখুন app/code/core/Mage/Cms/data/cms_setupকিছু ভাল উদাহরণ জন্য। এই ইনস্টল স্ক্রিপ্টগুলি স্থিতিশীল ব্লক এবং সিএমএস পৃষ্ঠা যুক্ত করে।

কনফিগার মানগুলি পরিবর্তনের জন্য, এই কোডটি ব্যবহার করুন:

$installer->setConfigData(
    Mage_Page_Model_Config::XML_PATH_CMS_LAYOUTS,
    'your_value_here'
);

এছাড়াও, এখানে একটি দরকারী নিবন্ধ


1

আপনি আপগ্রেড স্ক্রিপ্টে কোডের নীচেও ব্যবহার করতে পারেন:

$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();

সরাসরি এসকিউএল সহ এটি ডাটাবেসে সামগ্রী যুক্ত করা উচিত নয় যদি এটি এড়ানো যায় (যা প্রায়শই সর্বদা)। এক্ষেত্রে আপনি নিরাপদে ডেটা যুক্ত করতে মডেলগুলি সেমি / ব্লক ব্যবহার করতে পারেন।
আয়ান

0

নিম্নলিখিত কোডটি ম্যাজেন্টো স্ক্রিপ্টগুলি ব্যবহার করে স্থির ব্লক তৈরি এবং আপডেট করে

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();

}

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.