উত্তর:
ড্রুপাল 7 এর জন্য:
আপনার কাস্টম মডিউলে হুক_ব্লক_ইনফো এবং হুক_ব্লক_ভিউ হুক ব্যবহার করুন । hook_ block_info ব্লকটি সংজ্ঞায়িত করে। এটি প্রশাসক > কাঠামো > ব্লকগুলিতে প্রদর্শিত হবে । * হুক_ব্লক_ভিউ * সামগ্রীটি প্রদর্শন করে। ড্রুপাল এপিআই থেকে নীচে উদাহরণগুলি দেখুন।
হুক_ব্লক_ইনফো উদাহরণ, যেখানে দুটি ব্লক সংজ্ঞায়িত করা হয়েছে (শিরোনাম সিন্ডিকেট এবং সাম্প্রতিক সামগ্রী):
<?php
function hook_block_info() {
// This example comes from node.module.
$blocks['syndicate'] = array(
'info' => t('Syndicate'),
'cache' => DRUPAL_NO_CACHE,
);
$blocks['recent'] = array(
'info' => t('Recent content'),
// DRUPAL_CACHE_PER_ROLE will be assumed.
);
return $blocks;
}
?>
হুক_ব্লক_ভিউয়ের উদাহরণ:
<?php
function hook_block_view($delta = '') {
// This example is adapted from node.module.
$block = array();
switch ($delta) {
case 'syndicate':
$block['subject'] = t('Syndicate');
$block['content'] = array(
'#theme' => 'feed_icon',
'#url' => 'rss.xml',
'#title' => t('Syndicate'),
);
break;
case 'recent':
if (user_access('access content')) {
$block['subject'] = t('Recent content');
if ($nodes = node_get_recent(variable_get('node_recent_block_count', 10))) {
$block['content'] = array(
'#theme' => 'node_recent_block',
'#nodes' => $nodes,
);
}
else {
$block['content'] = t('No content available.');
}
}
break;
}
return $block;
}
?>
পড়ুন ব্লক এপিআই পৃষ্ঠা আঙ্গুলসমূহ পূর্ণ তালিকার জন্য Drupal.org উপর। ড্রুপাল 6 কিছুটা আলাদা। কোনও হুক_ব্লক_ভিউ হুক নেই; পরিবর্তে ব্লক ঘোষণার জন্য হুক_ব্লক ব্যবহার করুন ।
ড্রুপাল 6 এর জন্য সংক্ষিপ্ত উত্তরটি হ'ল আপনি একটি কাস্টম মডিউল তৈরি করেন যা হুক_ব্লককে কার্যকর করে ।
ড্রুপাল 7 এর জন্য, আপনি ব্লক এপিআই ব্যবহার করুন ।
যদি এটি মডিউল বিকাশের ক্ষেত্রে আপনার প্রথম প্ররোচনা হয় তবে আমি প্রো ড্রুপাল ডেভলপমেন্ট বা প্রো ড্রুপাল 7 বিকাশের জন্য উচ্চ পরামর্শ দিচ্ছি । আপনি যা কিছু জানা দরকার তা সেখানে রয়েছে।
আপনি যা খুঁজছিলেন তা সন্ধান করতে পারেন এবং এটি এখানে খুঁজে পেয়েছেন:
/ Modules/
block/ block.module: block_custom_ block_save ($ সম্পাদনা, $ ডেল্টা)।
তবে আপনি যখন এই ফাংশনটি দেখেন তখন আপনি দেখতে পাবেন যে আপনি নিজেই db_update করতে পারেন।
db_update('block_custom')
->fields(array(
'body' => $edit['body']['value'],
'info' => $edit['info'],
'format' => $edit['body']['format'],
))
->condition('bid', $delta)
->execute();
Drupal এর 7 এ, কটাক্ষপাত করা block_add_block_form_submit
মধ্যে modules/block/block.admin.inc
।
এটি নিয়মিত ব্লক তৈরির ফর্ম; এটি অন্য ফাংশনটি কল করার চেয়ে সরাসরি রেকর্ডগুলি সন্নিবেশ করানো বলে মনে হয়। নোট করুন যে ব্লক টেবিলের প্রতিটি রেকর্ড একটি একক থিমের সাথে লিঙ্কযুক্ত (আপনি কেবল সক্রিয়টি ব্যবহার করতে পারেন তবে সমস্ত থিমের জন্য রেকর্ড সন্নিবেশ করা নিরাপদ)।
Block_custom টেবিল বিষয়বস্তু ঝুলিতে।
ব্লক রফতানি করতে আপনি বৈশিষ্ট্যগুলি অতিরিক্ত মডিউল ব্যবহার করতে পারেন ।
বিকল্পভাবে, কেবল ব্লক সারণীতে সরাসরি রেকর্ড তৈরি করুন।
INSERT INTO blocks (
module, delta, theme, status, weight, region, custom,
throttle, visibility, pages, title, cache)
VALUES (
'views','blog-block_1','mytheme',1,10,'sidebar_first',0,0,1,'blog\r\nblog/*','',-1)