দ্রুপালে নির্দিষ্ট পৃষ্ঠায় প্রদর্শিত ব্লকগুলি কীভাবে প্রদর্শন করবেন?


10

একটি মডিউল মরুভূমি বিবেচনা করুন:

  • পৃষ্ঠা 1:- deserts/*
  • পৃষ্ঠা ২:- deserts/*/*
  • page3: - deserts/*/*/*

একটি গতিশীল সামগ্রী ...

আমার তিনটি ব্লক রয়েছে, যথা a, b এবং c:

  • ব্লক এ কেবল পৃষ্ঠা 1 এ প্রদর্শিত হবে
  • ব্লক বি কেবল পৃষ্ঠা 2 এ প্রদর্শিত হবে
  • ব্লক এ কেবল পৃষ্ঠা 3 এ প্রদর্শিত হবে

কিভাবে এই সীমাবদ্ধতা করা উচিত?


ড্রুপাল 6 বা 7? 6 ব্লক দৃশ্যমানতার জন্য পিএইচপি কোড নির্ধারণ করা সহজ করে তোলে।
মোয়েট

এটি ড্রুপাল 7 মোলট
আজমল

2
@ আজমল এটি কার্যকর হবে যদি আপনি প্রদত্ত উত্তরে মন্তব্য করতে পারেন এবং তারা কেন সহায়তা করেন নি তা ব্যাখ্যা করতে পারেন। লোকেরা (স্বাভাবিকভাবে) ধরে নেবে যে উচ্চ-ভোট প্রাপ্ত উত্তরটি সঠিক, এবং কোনও বিকল্প সরবরাহ করতে যাবেন না, যদি আপনি ব্যাখ্যা না করেন যে উত্তরটি কেন আপনার পক্ষে কার্যকর হয় না।
ক্লাইভ

desert/*/*/ desert/*/editআমার ব্লকটি যে পৃষ্ঠাটিতে প্রদর্শিত হবে সেটির জন্য desert/*/*desert/*/edit
আজমল

1
সম্ভবত এটি কেবল আমি, তবে এটি বিভ্রান্তিকর বলে মনে হচ্ছে। *মানে ওয়াইল্ডকার্ড। একটি সমাধান যেখানে ব্লক জন্য প্রদর্শিত হবে চাওয়ার সুতরাং desert/*/*বোঝা এটি করা উচিত জন্য দেখা desert/*/edit, যে বিষয়টি জন্য অথবা, desert/*/whatever
সিডিএমও

উত্তর:


18

প্রসঙ্গ মডিউলটি ব্যবহার করুন । যদিও আমি সাধারণত এই মডিউলটির অনুরাগী নই, এটি কার্যকর ক্ষেত্রে আসে এটির একটি।

কোনও পথের জন্য একটি শর্ত যুক্ত করুন। সুতরাং আমি যদি পৃষ্ঠা 1 বা 3 তে নয় তবে পৃষ্ঠায় একটি ব্লক চাই, তবে আমি প্রতিটি ব্লকের জন্য একটি করে পথ লিখব:

কেস 1 - ব্লক এ

মরুভূমি / *
~ মরুভূমি / * / *
~ মরুভূমি / * / * / *

কেস 2 - ব্লক বি

~ মরুভূমি / *
মরুভূমি / * / *
~ মরুভূমি / * / * / *

কেস 3- ব্লক সি

~ মরুভূমি / *
~ মরুভূমি / * / *
মরুভূমি / * / * / *

~ এর অর্থ এই ক্ষেত্রে বাদ দেওয়া। এর পরে, আপনি যে অঞ্চলে এটি দেখাতে চান তার জন্য ব্লকটি যুক্ত করুন। আপনি নির্দিষ্ট পথে আবার যুক্ত করতে পারেন যা অন্যথায় বাদ যায় এবং বিপরীতে।


এটি এই ক্ষেত্রে ভাল। তবে আমরা এটি সম্ভাব্য সব পরিস্থিতিতেই ঠিক করতে চাই, এটিই আসল সমাধান, এমন একটি মামলা রয়েছে যেখানে এটি ভাল না। আমি উপরের ক্ষেত্রে ব্যাখ্যা করেছি। সুতরাং দয়া করে দয়া করে উল্লেখ করুন
আজমল

আমি আমার উত্তর আপডেট করেছি, সুতরাং আশা করি এটি আরও ভাল ব্যাখ্যা করবে। আপনি প্রতিটি ব্লকের জন্য একটি নিয়ম তৈরি করবেন।
কাইলিটায়লর্ড

4

আপনি "যে পৃষ্ঠাগুলিতে এই পিএইচপি কোডটি সত্য (কেবল বিশেষজ্ঞ) প্রত্যাবর্তন করবে" পৃষ্ঠাগুলি ব্যবহার করতে পারেন। কিন্তু ডাটাবেসে পিএইচপি কোড স্থাপন করা, আইএমএইচও, একটি খারাপ অভ্যাস। পরিবর্তে, ভালো কিছু ব্যবহারের বিষয়ে বিবেচনা এক্সটেন্ডেড ব্লক দৃশ্যমানতা মডিউল বা বাস্তবায়ন hook_block_list_alter()যেমন

function MODULE_block_list_alter(&$blocks) {
  global $theme_key;
  foreach ($blocks as $key => $block) {
    if (!isset($block->theme) || !isset($block->status) || $block->theme != $theme_key || $block->status != 1) {
      // This block was added by a contrib module, leave it in the list.
      continue;
    }
    switch ("{$block->module}_{$block->delta}") {
      case "moduleA_deltaA":
        if (arg(0) != 'deserts' || !arg(1) || arg(2)) {
          unset($blocks[$key]);
        }
        break;
      case "moduleB_deltaB":
        if (arg(0) != 'deserts' || !arg(1) || !arg(2) || arg(3)) {
          unset($blocks[$key]);
        }
        break;
      case "moduleC_deltaC":
        if (arg(0) != 'deserts' || !arg(1) || !arg(2) || !arg(3)) {
          unset($blocks[$key]);
        }
        break;
    }
  }
}

দ্রষ্টব্য: আপনার দৃশ্যমানতার বিধি বাস্তবায়নের জন্য সম্ভবত একটি দুর্দান্ত উপায় রয়েছে।


0

আপনার এটি বিধি ব্লক ভিজিবিলিটি মডিউলটি ব্যবহার করে কাজ করতে সক্ষম হওয়া উচিত । এখানে তার প্রকল্প পৃষ্ঠা থেকে একটি উদ্ধৃতি দেওয়া হয়েছে:

বিধিগুলি ব্লক ভিজিবিলিটি মডিউলটি নিয়ম উপাদানগুলিকে ব্লক দৃশ্যমানতা নিয়ন্ত্রণ করতে ব্যবহার করার অনুমতি দেয় । এটি দ্রুপাল প্রশাসক এবং বিকাশকারীদের নিয়ন্ত্রণের ক্ষেত্রে চূড়ান্ত নমনীয়তা সরবরাহ করে যখন তাদের ওয়েবসাইটে ব্লকগুলি প্রদর্শিত হবে, ততক্ষণে দ্রুপালের দ্বারা সরবরাহিত ডিফল্ট দৃশ্যমানতার বিকল্পগুলিও রয়েছে।

সাধারণ ধারণাটি হ'ল আপনি যদি নিয়মগুলি দিয়ে এটি করতে পারেন তবে ব্লক দৃশ্যমানতা নিয়ন্ত্রণ করতে আপনি এটি ব্যবহার করতে পারেন, তাই সম্ভাবনাগুলি সীমাহীন:

  • কেবল এক মাসেরও বেশি আগে নিবন্ধিত ব্যবহারকারীদের জন্য একটি ব্লক দেখাতে হবে?

  • সম্ভবত আপনার একটি ব্লক রয়েছে যা অবশ্যই সপ্তাহের দিন সকাল 8 টা থেকে 5 টা পর্যন্ত প্রদর্শিত হবে?

  • বর্তমান আবহাওয়ার অবস্থার উপর ভিত্তি করে কোনও ব্লক প্রদর্শন বা আড়াল করার বিষয়ে কী?

এই সমস্ত কিছু নিয়ম ব্লক দৃশ্যমানতা ব্যবহার করে করা যেতে পারে।

এটির সাথে এবং " যদি আপনি নিয়মগুলি দিয়ে এটি করতে পারেন তবে উপরে এটি ব্লক দৃশ্যমানতা নিয়ন্ত্রণ করতে ব্যবহার করতে পারেন ", আপনি নিজের পৃষ্ঠা 1, পৃষ্ঠা 2 এবং পৃষ্ঠা 3 সংক্রান্ত বিভিন্ন ইউআরএলকে বিধিবিধানের বিধি তৈরি করার বিষয়ে আপনার প্রশ্নকে হ্রাস করেছেন ।

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