जवाबों:
आप उसके variable_set()
लिए उपयोग कर सकते हैं ।
variable_set('site_frontpage', $value);
hook_install
या hook_update_N
तो यह प्रयोग ठीक होना चाहिए।
एक मॉड्यूल है ( फ्रंटपेज , जो एक मैं बनाए रखा गया है) जो अनाम उपयोगकर्ताओं और प्रमाणित उपयोगकर्ताओं के लिए एक अलग फ्रंट पेज सेट करने की अनुमति देता है। मॉड्यूल तीसरे पक्ष के मॉड्यूल को उस पृष्ठ को बदलने की अनुमति देता है, जिससे उपयोगकर्ता इसके बजाय पुनर्निर्देशित होते हैं, या पृष्ठ को रेंडर करने के लिए उपयोग किए जाने वाले संरचना सरणी में परिवर्तन करते हैं। तृतीय-पक्ष मॉड्यूल को केवल पुनर्निर्देशन URL को बदलने की अनुमति है जब अनाम या प्रमाणित के लिए फ्रंट पेज फ्रंटपेज मॉड्यूल के भीतर सेट नहीं किया गया है, या जब नोड लोडिंग के दौरान कोई त्रुटि हुई है; मॉड्यूल को संभवतः भविष्य में बदल दिया जाएगा ताकि तीसरे पक्ष के मॉड्यूल उपयोगकर्ताओं को उनके द्वारा चुने गए एक विशिष्ट पृष्ठ पर पुनर्निर्देशित कर सकें।
विकल्प के रूप में, आप एक कस्टम मॉड्यूल बना सकते हैं, जो फ्रंटपेज द्वारा उपयोग किए गए कोड के समान है, उपयोगकर्ताओं को एक विशिष्ट पृष्ठ पर रीडायरेक्ट करता है, विशिष्ट मानदंडों पर आधारित है।
मॉड्यूल को हुक_मेनू () लागू करना चाहिए और मेनू कॉलबैक को संबद्ध करना चाहिए , उदाहरण के लिए, http://example.com/frontpage ; उस मेनू आइटम के पृष्ठ कॉलबैक को बस एक शर्त सत्यापित की जानी चाहिए, और फिर उपयोगकर्ताओं को एक विशिष्ट URL पर पुनर्निर्देशित करें।
कोड कंकाल निम्नलिखित के समान हो सकता है:
/**
* 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);
}
}
पैनलों का उपयोग करने के लिए एक बहुत ही लचीला समाधान होगा । विभिन्न डिस्प्ले किसी भी मापदंड के आधार पर प्रस्तुत किए जा सकते हैं, और UI के माध्यम से नियंत्रित किया जाता है।
मैंने इस तरह तय किया:
/**
* 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
(इस मामले में $ उपयोगकर्ता-> uid 0 नहीं होना चाहिए)
नियम मॉड्यूल भी मुखपृष्ठ "प्रोग्राम के" सेट करने के लिए इस्तेमाल किया जा सकता।
वास्तव में बनाया जाने वाला नियम, नियम या php कोड का उपयोग करके एक अलग फ्रंटपेज पर लॉग इन (प्रमाणित) उपयोगकर्ताओं के लिए रीडायरेक्ट में उत्तर का एक बदलाव होगा ।
और वैकल्पिक रूप से इसे फ्लैग मॉड्यूल के साथ जोड़ना , संभवतः उपयोगकर्ता अनुभव को और बढ़ा सकता है। उदाहरण के लिए उपयोगकर्ताओं को लॉग इन करने के लिए कि वे कौन से संभावित मोर्चे को अपना "पसंदीदा" मानते हैं।
यदि आप इसे विश्व स्तर पर प्रोग्राम करने के लिए देख रहे हैं, तो आप सेटिंग में वैरिएबल सेट कर सकते हैं।
$conf['site_frontpage'] = 'some/custom/path';
मैंने मुखपृष्ठ नोड को (उप-डोमेन पर) बदल दिया है, सेटिंग्स को एक हुक_url_outbound_alter में चर द्वारा ) ()
variable_set('site_frontpage', $value);
और फिर पुनर्निर्देशन:
$_GET['q'] = 'node/' . $domain_homepage_node_id;