হুক ব্যবহার করে নতুন সামগ্রী আপডেট / মোছা / যুক্ত করার পরে ক্যাশে কীভাবে মুছবেন?


11

ড্রুপাল in এ আমাদের একটি কাস্টম পরিষেবাদি মডিউল এবং একটি সাইট রয়েছে এবং সম্পাদক নতুন সামগ্রী যুক্ত করার পরে বা বিদ্যমানগুলিকে আপডেট করার পরে ক্যাশে মোছার কাজটি পেয়েছিলাম।

আমি ক্যাশে অ্যাকশনস নামে পরিচিত একটি মডিউল সম্পর্কে পড়েছি , তবে আমি যেমন বলেছি, আমার কাস্টম মডিউলে আমার ফাংশনটি তৈরি করা দরকার need

এছাড়াও, আমি ড্রুপাল হুকস সম্পর্কে পড়া শুরু করেছি, তবে কীভাবে এই টাস্কটি বাস্তবায়িত করা যায় তার একটি ক্লু নেই। কোন পরামর্শ? ধন্যবাদ।


এটি কয়েকটি উপায়ে প্রয়োগ করা যেতে পারে। আপনার সম্পাদক কত ঘন ঘন নতুন সামগ্রী আপডেট / মুছুন / যুক্ত করেন?
পিটার

খুব প্রায়ই, কারণ আমরা মোবাইল অ্যাপ্লিকেশনগুলির জন্য ওয়েব পরিষেবাগুলি তৈরি করতে ডেটার ম্যানেজার হিসাবে ড্রুপাল ব্যবহার করি। আমি আপনাকে ঠিক কত ঘন ঘন ডেটা যুক্ত করি বা সংশোধন করতে পারি তা বলতে পারি না, তবে মূল অনুরোধটি প্রতিবার পরিবর্তন হওয়ার সাথে সাথে ক্যাশে সাফ করা।
এরজেই

উত্তর:


12

মনে হচ্ছে আপনি ইতিমধ্যে একটি কাস্টম মডিউল পেয়েছেন, তবে কেবলমাত্র যদি আপনি মডিউল বিকাশকারীর গাইড না পান

আঙ্গুলসমূহ আপনি যা খুঁজছেন হয় hook_node_insert()এবং hook_node_update(), এবং ফাংশন ক্যাশে পারেন হবে পরিষ্কার cache_clear_all()বা drupal_flush_all_caches। প্রাক্তন আপনাকে নির্দিষ্ট ক্যাশে বিনগুলি (এবং এমনকি নির্দিষ্ট ক্যাশে আইটেমগুলি) সাফ করতে দেবে, এবং পরবর্তীটি একেবারে সবকিছু মুছে ফেলবে।

উদাহরণ স্বরূপ:

function MYMODULE_node_insert($node) {
  drupal_flush_all_caches();
}

বা নোড আপডেট হওয়ার পরে কেবল স্থির পৃষ্ঠার ক্যাশে সাফ করার জন্য:

function MYMODULE_node_update($node) {
  $nodeurl = url('node/'. $node->nid, array('absolute' => TRUE));
  cache_clear_all($nodeurl, 'cache_page');
}

ঠিক আছে, আমি এটা বুঝতে পারি। আরও একটি প্রশ্ন, আমাকে কি আমার .মডিউল ফাইলে বা ড্রুপালের নোড মডিউল ফাইলটিতে কোড যুক্ত করতে হবে?
এরজেই

2
এটি আপনার নিজের মডিউল ফাইলে চলে যায়, হ্রিং কোর ফাইলগুলি দ্রুপাল-এ বড় নং :)
ক্লাইভ

1

আপনি আপডেট করার পরে নির্দিষ্ট নোড ক্যাশে সহজেই সাফ করতে পারেন। যাত্রা। :

function MYMODULE_node_update($node) {
  $nodeurl = url('node/'. $node->nid, array('absolute' => TRUE));
  cache_clear_all($nodeurl, 'cache_page');
}

দয়া করে নোট করুন যে আপনাকে অবশ্যই উল্লেখ করতে হবে array('absolute' => TRUE)

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