অতিরিক্ত তথ্য অন্তর্ভুক্ত করতে সমস্ত ইউআরএলকে পরিবর্তন করা


8

ইউআরএলগুলি পরিবর্তন করার জন্য কোন হুক উপলব্ধ? উদাহরণস্বরূপ, এমন ভাষা মডিউল রয়েছে যা সক্ষম করা থাকলে ইউআরএল সরবরাহ করে না যেমন /en/node/1ছেড়ে দেওয়া /node/1

আমি url তে অনুরূপ কিছু পেতে চাই, যাতে অন্য কার্যকারিতা আপোষহীন না হয়ে আমার অ্যাক্সেস থাকতে পারে।

এটি কীভাবে সম্পন্ন হয়?

উত্তর:


4

সুতরাং আপনি কি লিঙ্কের URL লিখিত হওয়ার সাথে সাথে সংশোধন করার উপায় খুঁজছেন? আমি সম্প্রতি এটি খতিয়ে দেখেছি এবং কতটা শিকারের প্রয়োজন তা দেখে অবাক হয়েছি।

আমি গিয়েছিলাম hook_url_outbound_alter( &$path, &$options, $original_path ), যা আপনাকে লিংক ইউআরএলগুলি পরিবর্তন করতে দেয় যা ড্রুপাল ইউআরএল সিস্টেম দ্বারা লিখিত রয়েছে।

এছাড়াও আছে hook_url_inbound_alter( &$path, $original_path, $path_language ), ভাল যেমন পাথ নির্দিষ্ট langauge অন্তর্ভুক্ত হতে পারে যা - এটি যেখানে আপনি নড়চড় জায়গা নিতে চান তার উপর নির্ভর করে। আমি ব্যক্তিগতভাবে এর hook_url_outbound_alter()সাথে কাজ করার জন্য নির্ভরযোগ্য এবং খুঁজে পেয়েছি - এটি সমস্ত উপযুক্ত ইউআরএলগুলি লিখিত হওয়ার সাথে সাথে পরিবর্তন করে এবং $ বিকল্পগুলি ব্যবহার করে আপনি কোয়েরি স্ট্রিংগুলি (...? ক্যোরি = স্ট্রিং এবং ফু / বার) এবং হ্যাশ ফ্র্যাংমেন্টগুলি বিশ্বস্তভাবে যুক্ত এবং সম্পাদনা করতে পারেন (... #someId)।

$ পাথটি সংশোধন করুন এবং এটি ইউআরএল href এ লিখিত হয়ে থাকা আসল পাথটি আপডেট করবে। অবশ্যই, এটি সমস্ত লিঙ্কগুলিতে চলে, সুতরাং আপনি এটি পরিবর্তন করতে চান এটি একটি লিঙ্ক তা পরীক্ষা করে শুরু করতে চান।

এটি এলিয়াস করার আগে কার্যকর করা হয়েছে, সুতরাং এটি ড্রুপাল ডিফল্টের উপর ভিত্তি করে তৈরি হবে। দুটি অতি সরল উদাহরণ দেওয়ার জন্য, আপনি যদি কেবলমাত্র কর বিভাগের পথগুলি পরিবর্তন করতে চান:

function some_module_url_outbound_alter( &$path, &$options, $original_path ) {
  if(strpos($original_path, 'taxonomy/term') === 0) {
    // do stuff
  }
}

এবং / অথবা আপনি যদি এটি কেবল নির্দিষ্ট পৃষ্ঠায় চালিত করতে চান, যেমন নোড সম্পাদনা পৃষ্ঠাগুলি:

function some_module_url_outbound_alter( &$path, &$options, $original_path ) {
  $current_path = explode("/", current_path() );
  if (count($current_path) >= 3 && $current_path[0] == "node" && $current_path[2] == "edit") {
    // do stuff
  }
}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.