কিভাবে প্রোগ্রাম্যাটিকভাবে প্রথম পৃষ্ঠার সেট করবেন?


22

আমি চালুর সময় ড্রুপাল ফ্রন্ট পেজকে প্রোগ্রামালিমে সেট করতে চাই।
কিভাবে আমি এটি করতে পারব? এটা কি সম্ভব?

উত্তর:


22

আপনি এটি variable_set()জন্য ব্যবহার করতে পারেন ।

variable_set('site_frontpage', $value);

18
এটি সঠিক, তবে এটি এমন কোনও জিনিস নয় যা খুব ঘন ঘন বা ব্যবহারের ক্রিয়া ভিত্তিক করা উচিত। একটি ভেরিয়েবল_সেট () কল সর্বদা "ক্যাশে_সিয়ার_ল '(' ভেরিয়েবল ',' ক্যাশে_বুটস্ট্র্যাপ ') এর ফলাফল দেয়;" সুতরাং পরবর্তী অনুরোধটির জন্য ভেরিয়েবলগুলি এবং ডাটাবেস থেকে বুটস্ট্র্যাপের তথ্য পুনরায় আনতে হবে।
বেরদির

1
@ বার্ডির - এটি কোনওভাবে সাইটের কার্যক্ষমতাকে প্রভাবিত করবে?
এক কোসমোস

7
হ্যাঁ, এটি কার্য সম্পাদনকে প্রভাবিত করবে, ক্যাশে_ বুটস্ট্র্যাপে একাধিক ক্যাশ রয়েছে যা কেবল সময়ের সাথে সাথে পুনর্নির্মাণ করা হবে, উদাহরণস্বরূপ হুক বাস্তবায়ন। বিকল্প সমাধানগুলি সামনের পৃষ্ঠায় গতিশীলভাবে সামগ্রী প্রদর্শনের জন্য ভিউ, প্যানেল বা একটি কাস্টম মডিউল ব্যবহার করবে। উদাহরণস্বরূপ, আপনি কোনও সামগ্রীর ধরণের সর্বাধিক সাম্প্রতিক নোড প্রদর্শন করতে একটি ভিউ তৈরি করতে পারেন এবং তারপরে সাইট_ফ্রন্টপেজটি নির্দেশ করতে পারেন।
বার্ডির

এটি এক hook_installবা hook_update_Nতার মধ্যে ব্যবহার করা ভাল হওয়া উচিত।
লেইম্যানেক্স

16

একটি মডিউল আছে ( ফ্রন্টপেজ , যা আমি রক্ষণাবেক্ষণ করেছি) যা বেনামে ব্যবহারকারীদের এবং সত্যায়িত ব্যবহারকারীদের জন্য আলাদা ফ্রন্ট পৃষ্ঠা সেট করতে দেয়। মডিউলটি তৃতীয় পক্ষের মডিউলগুলিকে ব্যবহারকারীদের পরিবর্তে পুনঃনির্দেশিত পৃষ্ঠাগুলি পরিবর্তন করতে বা পৃষ্ঠাটি রেন্ডার করতে ব্যবহৃত কাঠামোর অ্যারে পরিবর্তন করতে সহায়তা করে। তৃতীয় পক্ষের মডিউলগুলি কেবল তখনই পুনরায়নির্দেশ 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);
  }
}

9

একটি খুব নমনীয় সমাধান প্যানেল ব্যবহার করা হবে । যে কোনও মানদণ্ডের উপর ভিত্তি করে বিভিন্ন প্রদর্শনগুলি উপস্থাপন করা যেতে পারে এবং এটি কোনও ইউআই এর মাধ্যমে নিয়ন্ত্রিত হয়।


4

আমি এই মত স্থির করেছি:

/**
 * 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);
  }
}

1
হ্যালো. আপনার কোডটি ভাগ করে নিতে পেরে ভাল লাগল। আপনার কোডটি ঠিক কীভাবে এটি ঠিক করে দেয় তা যদি আমাদের বলতে পারেন তবে আরও সুন্দর। আপনি জানেন, যুক্তিযুক্ত অন্যরা অনুসরণ করতে পারে যদি কোনও কারণে কপি-পেস্ট করা কোড তাদের জন্য কাজ না করে।
মোয়াট

@ মোমলট - এই পদ্ধতিটি, যা আপনার শুল্ক মডিউলে যুক্ত করা উচিত , কিছু শর্তের ভিত্তিতে ব্যবহারকারীদের পুনর্নির্দেশের জন্য প্রয়োগ hook_page_alterও ব্যবহারগুলি ব্যবহার drupal_is_front_pageকরা drupal_gotoউচিত (এই ক্ষেত্রে $ ব্যবহারকারী->
ইউআইডি

@ কমোনপাইক এটি এমন নয় যে আমি এটি বুঝতে পারি না। আমার মন্তব্যটি সামগ্রিকভাবে উত্তরের মানের সম্পর্কে ছিল এবং বিশেষত এটি নতুন, অনভিজ্ঞ ব্যবহারকারীদের জন্য ব্যবহারযোগ্যতা।
মোওত

1

বিধি মডিউল এছাড়াও খবর "programatically" তে সেট ব্যবহার করা যেতে পারে।

আসলে তৈরি করার নিয়মটি হ'ল , পুনর্নির্দেশে লগইন হওয়া (প্রমাণীকৃত) ব্যবহারকারীদের বিধি বা পিএইচপি কোড ব্যবহার করে একটি ভিন্ন ফ্রন্টপ্যাজে উত্তরের উত্তর হতে পারে ।

এবং allyচ্ছিকভাবে এটি পতাকা মডিউলটির সাথে সংযুক্ত করা, সম্ভবত ব্যবহারকারীর অভিজ্ঞতা আরও বাড়িয়ে তুলতে পারে। উদাহরণস্বরূপ লগ ইন করা ব্যবহারকারীদের জন্য কোন সম্ভাব্য ফ্রন্টপেজগুলি তাদের "প্রিয়" হিসাবে বিবেচনা করে তা নির্দেশ করে to


1

আপনি যদি প্রোগ্রামটিমেটিকভাবে এটি বিশ্বব্যাপী সেট করতে খুঁজছেন তবে আপনি সেটিংস.ফ্পে চলকটি সেট করতে পারেন:

$conf['site_frontpage'] = 'some/custom/path';

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.