উত্তর:
আপনি এটি variable_set()
জন্য ব্যবহার করতে পারেন ।
variable_set('site_frontpage', $value);
hook_install
বা hook_update_N
তার মধ্যে ব্যবহার করা ভাল হওয়া উচিত।
একটি মডিউল আছে ( ফ্রন্টপেজ , যা আমি রক্ষণাবেক্ষণ করেছি) যা বেনামে ব্যবহারকারীদের এবং সত্যায়িত ব্যবহারকারীদের জন্য আলাদা ফ্রন্ট পৃষ্ঠা সেট করতে দেয়। মডিউলটি তৃতীয় পক্ষের মডিউলগুলিকে ব্যবহারকারীদের পরিবর্তে পুনঃনির্দেশিত পৃষ্ঠাগুলি পরিবর্তন করতে বা পৃষ্ঠাটি রেন্ডার করতে ব্যবহৃত কাঠামোর অ্যারে পরিবর্তন করতে সহায়তা করে। তৃতীয় পক্ষের মডিউলগুলি কেবল তখনই পুনরায়নির্দেশ URL পরিবর্তন করার অনুমতি দেয় যখন বেনামে বা প্রমাণীকরণের জন্য প্রথম পৃষ্ঠাটি ফ্রন্টপেজ মডিউলটিতে সেট করা থাকে না বা নোড লোড করার সময় কোনও ত্রুটি ঘটে থাকে; মডিউলটি সম্ভবত ভবিষ্যতে তৃতীয় পক্ষের মডিউলগুলি ব্যবহারকারীদের তাদের নির্দিষ্ট পৃষ্ঠায় পুনর্নির্দেশ করার অনুমতি দেওয়ার জন্য পরিবর্তিত করা হবে will
বিকল্প হিসাবে, আপনি একটি কাস্টম মডিউল তৈরি করতে পারেন যা ফ্রন্টপেজ দ্বারা ব্যবহৃত কোডের অনুরূপ কোড ব্যবহার করে ব্যবহারকারীদের নির্দিষ্ট মানদণ্ডে ভিত্তি করে একটি নির্দিষ্ট পৃষ্ঠায় পুনর্নির্দেশ করে।
মডিউলটি হুক_মেনু () প্রয়োগ করতে হবে এবং মেনু কলব্যাকের সাথে উদাহরণস্বরূপ, http://example.com/frontpage ; সেই মেনু আইটেমের পৃষ্ঠা কলব্যাকের শর্তটি যাচাই করা হয়েছে তা যাচাই করা উচিত এবং তারপরে ব্যবহারকারীদের একটি নির্দিষ্ট ইউআরএলে পুনর্নির্দেশ করা উচিত।
কোড কঙ্কাল নিম্নলিখিত কিছু অনুরূপ হতে পারে:
/**
* Implements hook_menu().
*/
function mymodule_menu() {
$items = array();
$items['frontpage'] = array(
'page callback' => 'mymodule_frontpage_view',
'access arguments' => array('access content'),
'type' => MENU_CALLBACK,
);
return $items;
}
function mymodule_frontpage_view() {
// These variables can be useful to redirect the users
// to specific pages, basing on the language currently set for
// the content, or on the fact the user is logged in.
$langcode = $GLOBALS['language_content']->language;
$logged_in = user_is_logged_in();
if ($condition) {
drupal_goto($redirect);
}
}
একটি খুব নমনীয় সমাধান প্যানেল ব্যবহার করা হবে । যে কোনও মানদণ্ডের উপর ভিত্তি করে বিভিন্ন প্রদর্শনগুলি উপস্থাপন করা যেতে পারে এবং এটি কোনও ইউআই এর মাধ্যমে নিয়ন্ত্রিত হয়।
আমি এই মত স্থির করেছি:
/**
* Implements hook_page_alter.
* @param type $page
*/
function my_module_page_alter(&$page){
global $user;
$is_fron_page = drupal_is_front_page();
if($is_fron_page && $user->uid){
$redirect = 'users/'.$user->name.'/my-argument';
drupal_goto($redirect);
}
}
hook_page_alter
ও ব্যবহারগুলি ব্যবহার drupal_is_front_page
করা drupal_goto
উচিত (এই ক্ষেত্রে $ ব্যবহারকারী->
বিধি মডিউল এছাড়াও খবর "programatically" তে সেট ব্যবহার করা যেতে পারে।
আসলে তৈরি করার নিয়মটি হ'ল , পুনর্নির্দেশে লগইন হওয়া (প্রমাণীকৃত) ব্যবহারকারীদের বিধি বা পিএইচপি কোড ব্যবহার করে একটি ভিন্ন ফ্রন্টপ্যাজে উত্তরের উত্তর হতে পারে ।
এবং allyচ্ছিকভাবে এটি পতাকা মডিউলটির সাথে সংযুক্ত করা, সম্ভবত ব্যবহারকারীর অভিজ্ঞতা আরও বাড়িয়ে তুলতে পারে। উদাহরণস্বরূপ লগ ইন করা ব্যবহারকারীদের জন্য কোন সম্ভাব্য ফ্রন্টপেজগুলি তাদের "প্রিয়" হিসাবে বিবেচনা করে তা নির্দেশ করে to
আপনি যদি প্রোগ্রামটিমেটিকভাবে এটি বিশ্বব্যাপী সেট করতে খুঁজছেন তবে আপনি সেটিংস.ফ্পে চলকটি সেট করতে পারেন:
$conf['site_frontpage'] = 'some/custom/path';
আমি হোমপেজ নোডটি (সাবডোমেনগুলিতে) একটি হুক_উরাল_আউটবাউন্ড_াল্টারে পরিবর্তনশীল সেটিংস দ্বারা পরিবর্তন করেছি ()
variable_set('site_frontpage', $value);
এবং তারপরে পুনঃনির্দেশ:
$_GET['q'] = 'node/' . $domain_homepage_node_id;