ড্রুপাল 7 সহ ব্লকগুলিতে কীভাবে 'ওয়েলকাম {ব্যবহারকারীর নাম}' যুক্ত করবেন


15

আমি একটি ড্রুপাল 6 ওয়েবসাইট একই দ্রষ্টব্য সহ একটি ড্রুপাল 7 দ্বারা প্রতিস্থাপন করছি। D দ্রুপাল website ওয়েবসাইটটিতে একটি ব্লক রয়েছে যা আপনি লগইন করার সময় দৃশ্যমান হয় it

আমি ড্রুপাল in-তে এটি করার একটি উপায় খুঁজছি, আমি 'টোকেন' মডিউলটি দিয়ে এটি করার চেষ্টা করেছি তবে আমি কাজ করি না। এটি করার সর্বোত্তম উপায় কী?


এটি সম্পর্কে একটি ব্লগ পোস্ট এখানে দেওয়া হয়েছে: is.gd/j2q0Uu
আইশক

উত্তর:


12

হয় কোনও ব্লকে বা একটি কাস্টম মডিউল যা কোনও ব্লক যুক্ত করে, নিম্নলিখিত কোডটি যুক্ত করুন:

if (user_is_logged_in() == TRUE) {
    global $user;

    print "Welcome " . $user->name;
}
else {
    print "Please log in.";
}

এই আপনি বর্তমান ব্যবহারকারীর তথ্য চান তাহলে আরো দরকারী। সম্ভবত এই হিসাবে ভাল জন্য user_is_logged_inফাংশন।


এটি ভাল কাজ করে। এর নীচে প্রথম উত্তরটি পড়ে সমাধানটি পেয়েছি। যাইহোক, আমি পিএইচপি কন্টেন্টের মডিউলটি সম্পর্কে জানতাম না যা দ্রুপালের সাথে সরবরাহ করা হয়, তাই আমাকে আরও কিছুটা অনুসন্ধান করতে হয়েছিল। আপনার উত্তর দেওয়ার জন্য ধন্যবাদ.
গুয়ান 23

ইউজার_আইস_লগড_ইন () এর কল করার দরকার নেই কারণ আপনি ইতিমধ্যে যা করছেন what ব্যবহারকারীর গ্লোবাল ভেরিয়েবল ব্যবহার করে। নীচে আমার উত্তর অনুসারে কেবল $ ব্যবহারকারী-> ইউডি পরীক্ষা করুন।
রোবি

5

আপনি যদি কোনও মডিউলে এটি করতে চান (কোনও ব্লকে পিএইচপি কোড যুক্ত করার বিপরীতে প্রস্তাবিত, যা তখন সংস্করণ নিয়ন্ত্রণে থাকবে না), তবে আপনি এটি করতে পারেন:

(এক্ষেত্রে, এই সমস্ত কোডটি ব্যবহারকারীর নাম অনুসারে একটি কাস্টম মডিউলে যাবে))

/**
 * @file
 * Adds a block that welcomes users when they log in.
 */

/**
 * Implements hook_theme().
 */
function userwelcome_theme($existing, $type, $theme, $path) {
  return array(
    'userwelcome_welcome_block' => array(
      'variables' => array('user' => NULL),
    ),
  );
}

/**
 * Implements hook_block_info().
 */
function userwelcome_block_info() {
  // This example comes from node.module.
  $blocks['welcome'] = array(
    'info' => t('User welcome'),
    'cache' => DRUPAL_CACHE_PER_USER,
  );

  return $blocks;
}

/**
 * Implements hook_block_view().
 */
function userwelcome_block_view($delta = '') {
  global $user;
  $block = array();

  switch ($delta) {
    case 'welcome':
      // Don't show for anonymous users.
      if ($user->uid) {
        $block['subject'] = '';
        $block['content'] = array(
          '#theme' => 'userwelcome_welcome_block',
          '#user' => $user,
        );
      }
      break;
  }
  return $block;
}

/**
 * Theme the user welcome block for a given user.
 */
function theme_userwelcome_welcome_block($variables) {
  $user = $variables['user'];
  $output = t('Welcome !username', array('!username' => theme('username', array('account' => $user))));
  return $output;
}

আপনি যদি তখন কোনও থিমটিতে এই ব্লকের থিমিংকে ওভাররাইড করতে চান আপনি এটি করতে পারেন (আপনার থিমের টেম্পলেট.এফপি ফাইলটিতে):

/**
 * Theme the userwelcome block.
 */
function THEMENAME_userwelcome_welcome_block(&$variables) {
  // Return the output of the block here.
}

মনে রাখবেন যে এটি একটি কাস্টম মডিউল হওয়ায় আপনি কেবল মডিউলটিতে থিম ফানসিটনটি সরাসরি আপডেট করতে পারেন।

আপনি যদি কোনও কাস্টম মডিউল ব্যবহার করতে না চান তবে আপনি পিএইচপি কোড সহ একটি কাস্টম ব্লক তৈরি করতে পারেন এবং এটি যুক্ত করতে পারেন:

global $user;
// Only for logged in users.
if ($user->uid) {
  print 'Welcome ' . theme('username', array('account' => $user));
}

এটি একটি দুর্দান্ত উত্তর, যদিও আমি প্রতিটি ফাংশনের নামকরণ এবং অবস্থান সম্পর্কে কিছুটা অস্পষ্ট। এখানে আমার অনুমান রয়েছে - আমি সঠিক হলে আপনি কি পরামর্শ দিতে পারেন? ধরে নেওয়া যাক থিম নাম theme_userwelcome, should কাজ theme_userwelcome_welcome_blockস্থাপন করা থিম না userwelcomeমডিউল। সম্ভবত, userwelcome_themeফাংশনটি আসলে বলা উচিত userwelcome_theme_theme(হ্যাঁ থিমের নাম হিসাবে 2 থিমের শব্দ প্রতিস্থাপন করে hook) এবং থিমটিতে রাখা উচিত theme_userwelcome। ফাংশন userwelcome_block_viewএবং userwelcome_block_infoথাকা userwelcome
থেরোবাইওয়াক

আমি এই তথ্যের সাহায্যে উত্তর আপডেট করেছি: এই সমস্ত কোডটি ব্যবহারকারীদের নামে একটি মডিউল দেয়। আপনি যদি কোনও থিম থেকে ব্লকের থিমিংকে ওভাররাইড করতে চান আপনি THEMENAME_userwelcome_welcome_ block (& ​​$ ভেরিয়েবল) ব্যবহার করবেন
রোবীয়

5

দর্শন মডিউলটি ব্যবহার করুন। নতুন দৃশ্য তৈরি করুন> ব্যবহারকারীদের দেখান> ব্লক প্রদর্শন করুন। প্রসঙ্গত ফিল্টার যুক্ত করুন> লগ ইন করা ব্যবহারকারী থেকে ডিফল্ট যুক্তি> ব্যবহারকারী আইডি সরবরাহ করুন। আপনার ইচ্ছামত পাঠ্য / টোকেন বা ব্যবহারকারী প্রোফাইল ক্ষেত্র অন্তর্ভুক্ত করতে ক্ষেত্রগুলি কনফিগার করুন (আপনি ফলাফলগুলি পুনরায় লিখতে পারেন)। অঞ্চলটিতে ব্লক সংরক্ষণ করুন এবং যুক্ত করুন।

একটি মডিউল এবং কোনও কোড সহ সম্পন্ন হয়েছে।

-lunk_rat


আমি দৃ strongly়ভাবে বিশ্বাস করি যে এই উত্তরটি আরও অগ্রগতির দাবিদার। এটি আরও 'ড্রুপাল উপায়' অনুভব করে। যদি আপনি এটি কনফিগারেশন দিয়ে সমাধান করতে পারেন, তবে সেভাবে করুন - বরং কোড ব্যবহার করে।
ভাবলিপি

@ আইডোগ্রামটিও আমার পদ্ধতির এটি, এ কারণেই অন্যান্য উত্তরগুলির অনেকগুলি কাজ করবে বলে আমি উত্তরটি জমা দিয়েছি। দেখে মনে হচ্ছে এটি কিছু ভোট পাচ্ছে ...
সোয়ানসন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.