হুক_ফর্ম_ল্টার ব্যবহার করে আপনার দুটি জিনিস করা দরকার
1) এটি একটি নোড ফর্ম নিশ্চিত করুন 2) প্রতিটি জমা বোতামে একটি কাস্টম জমা হ্যান্ডলার যুক্ত করুন।
function mymodule_form_alter(&$form, FormStateInterface $form_state, $form_id) {
if (isset($form['#entity_type']) && $form['#entity_type'] == 'node') {
foreach (array_keys($form['actions']) as $action) {
if ($action != 'preview' && isset($form['actions'][$action]['#type']) && $form['actions'][$action]['#type'] === 'submit') {
$form['actions'][$action]['#submit'][] = 'mymodule_node_form_submit';
}
}
}
}
তারপরে সাবমিট ফাংশনটির জন্য, আপনি যা যুক্তি চান তা ব্যবহার করতে পারেন। আপনি নোডফর্ম :: সেভের সাথে তুলনা করতে পারেন, যেখানে এটি আপনাকে ক্যানোনিকাল নোড পৃষ্ঠায় বা বর্তমান ব্যবহারকারীর অ্যাক্সেস অনুমতিগুলির ভিত্তিতে প্রথম পৃষ্ঠায় প্রেরণ করবে।
আপনি যদি এই আচরণটি পরিবর্তন করতে চান যাতে এটি বর্তমান নোড ফর্মটিতে থাকে, আপনি এটি করতে পারেন:
function mymodule_node_form_submit($form, FormStateInterface $form_state) {
$node = $form_state->getFormObject()->getEntity();
if ($node->id()) {
if ($node->access('edit')) {
$form_state->setRedirect(
'entity.node.edit_form',
['node' => $node->id()]
);
}
else {
$form_state->setRedirect('<front>');
}
}
}
আপনি যদি নিজের কাস্টম অবতরণ পৃষ্ঠাটি ব্যবহার করতে চান তবে আপনি ইতিমধ্যে যে কোডটি ব্যবহার করছেন সেটির সাথে আপনাকে পুনর্নির্দেশটি প্রতিস্থাপন করবে:
$form_state->setRedirect('custom.landing.page');
মনে রাখবেন যে যখন কোনও "গন্তব্য" $ _GET পরামিতি থাকে, যেমন / অ্যাডমিন / সামগ্রী পৃষ্ঠায় over
/ প্রশাসক / সামগ্রী পৃষ্ঠা থেকে গন্তব্য প্যারামিটারটি সরাতে, আপনি সেই দর্শন ক্ষেত্রগুলিতে "সামগ্রী: অপারেশন লিঙ্কগুলি (অপারেশনস)" এর অধীনে "গন্তব্য" চেকবক্সটি নির্বাচন করতে পারবেন না।
If saving is an option, privileged users get dedicated form submit buttons to adjust the publishing status while saving in one go. @todo This adjustment makes it close to impossible for contributed modules to integrate with "the Save operation" of this form. Modules need a way to plug themselves into 1) the ::submit() step, and 2) the ::save() step, both decoupled from the pressed form button.