সিটিউলগুলি ব্যবহার করুন যা কোনও ব্যবহারকারী কোনও লিঙ্কে ক্লিক করলে মডেলটিতে ফর্ম সন্নিবেশ করতে পারে।
দয়া করে নীচের টিউটোরিয়ালটি দেখুন: সিটিউলস এবং ড্রুপাল 7 সহ একটি পপ-আপ মডেলে একটি ফর্ম sertোকান যা কয়েক ধাপে এই প্রক্রিয়াটিকে সহজতর করে।
মূলত আপনাকে hook_menu()
নিজের মডেল ফর্মের জন্য আপনার কলব্যাকটি সংজ্ঞায়িত করতে হবে :
$items['mymodule/%ctools_js'] = array(
'page callback' => 'mymodule_callback',
'page arguments' => array(1),
'access callback' => TRUE,
'type' => MENU_CALLBACK,
);
তারপরে একটি লিঙ্ক জেনারেটর তৈরি করুন যা এইচটিএমএল কোডটি দেয়:
/**
* Helper function to make a link.
*/
function _mymodule_make_link($link_text = '') {
// Set a default value if no text in supplied.
if (empty($link_text)) {
$link_text = 'Magical Modal';
}
return '<div id="magical-modal-link">' . l($link_text, 'mymodule/nojs', array('attributes' => array('class' => 'ctools-use-modal'))) . '</div>';
}
সুতরাং এটি আপনার পৃষ্ঠার কলব্যাকে ব্যবহার করা যেতে পারে, যেমন:
/**
* An example page.
*/
function mymodule_page() {
// Load the modal library and add the modal javascript.
ctools_include('modal');
ctools_modal_add_js();
return _mymodule_make_link('Magical modal');
}
ব্যবহারকারীর লিঙ্কটিতে ক্লিক করা হলে, এটি হয় /mymodule/ajax
বা /mymodule/nojs
(ক্ষেত্রে ক্ষেত্রে nojs
) অনুরোধ করে , সুতরাং নিম্নলিখিত কলব্যাক একটি মডেল তৈরি করতে পরিচালনা করে:
/**
* Ajax menu callback.
*/
function mymodule_callback($ajax) {
if ($ajax) {
ctools_include('ajax');
ctools_include('modal');
$form_state = array(
'ajax' => TRUE,
'title' => t('MyModule Modal Form'),
);
// Use ctools to generate ajax instructions for the browser to create
// a form in a modal popup.
$output = ctools_modal_form_wrapper('mymodule_form', $form_state);
// If the form has been submitted, there may be additional instructions
// such as dismissing the modal popup.
if (!empty($form_state['ajax_commands'])) {
$output = $form_state['ajax_commands'];
}
// Return the ajax instructions to the browser via ajax_render().
print ajax_render($output);
drupal_exit();
}
else {
return drupal_get_form('mymodule_form');
}
}
এখন আপনাকে কেবল নীচের মতো একটি ফর্ম তৈরি করতে হবে এবং এটির হ্যান্ডলারটি জমা দিতে হবে:
/**
* Drupal form to be put in a modal.
*/
function mymodule_form($form, $form_state) {
$form = array();
$form['new_link_text'] = array(
'#type' => 'textfield',
'#title' => t('Link text'),
);
$form['submit'] = array(
'#type' => 'submit',
'#value' => t('Submit'),
);
return $form;
}
/**
* Drupal form submit handler.
*/
function mymodule_form_submit(&$form, &$form_state) {
// Generate the new link using the submitted text value.
$link = _mymodule_make_link($form_state['values']['new_link_text']);
// Tell the browser to close the modal.
$form_state['ajax_commands'][] = ctools_modal_command_dismiss();
// Tell the browser to replace the old link with the new one.
$form_state['ajax_commands'][] = ajax_command_replace('#magical-modal-link', $link);
}
এটি পরীক্ষা করতে, এখানে যান: /mymodule/page
যেখানে আপনাকে 'ম্যাজিকাল মডেল' লিঙ্কটি দেখতে হবে যা একবার ক্লিক করলে আপনাকে মোডাল ফর্মটি দেখায়।