আমি কীভাবে দ্রুত আমার সাইটের সমস্ত নোডগুলি পুনরায় সংরক্ষণ করতে পারি (বিষয়বস্তু আপডেটে সক্রিয় একটি নিয়ম ট্রিগার করতে)?


24

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

উত্তর:


22

ভিবিওতে একটি "পিএইচপি কোড কার্যকর করুন" ক্রিয়া রয়েছে। এটি চালান, এবং "নোড_সেভ (ave সত্তা)" ইনপুট করুন; (উদ্ধৃতি ব্যতীত) পাঠ্যবক্সে। আপনার জন্য সময়সীমা পরিচালনা করার সময় এটি কৌশলটি করবে do


1
আহ, অনেক তাড়াতাড়ি :)
ক্লাইভ

5
ভিবিওতে "বিষয়বস্তু সংরক্ষণ করুন" করার জন্য একটি বিকল্প রয়েছে, যা আপনার নিজের পিএইচপি না লিখেও এটি করবে।
স্টিভেনওয়ে

আমি "সংরক্ষণ বিষয়বস্তু" বিকল্পটি খুঁজে পাইনি, তবে আপনি উল্লিখিত পিএইচপি পদ্ধতিটি দুর্দান্ত কাজ করেছে! ধন্যবাদ!
হকি 2112

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

14

আমি নিয়ম বা ভিবিও সম্পর্কে জানি না তবে আপনি একই ফলাফল পেতে একটি শর্ট কোড স্নিপেট ব্যবহার করতে পারেন:

$nids = db_query('SELECT nid FROM {node}')->fetchCol();
foreach (node_load_multiple($nids) as $node) {
  node_save($node);
}

যদি আপনি প্রচুর নোড পেয়ে থাকেন যা কিছুটা সময় নিতে পারে তবে আপনার সার্ভারটি যদি কোডটির শুরুতে সময়সীমা বাড়ানো ভাল ধারণা হয় তবে সম্ভবত এটি যদি বন্ধ হয়ে যায় তবে সীমাহীন হয়ে যায় a :

set_time_limit(0);

12

আপনি নোড_মাস_আপডেট () ফাংশনটি ব্যবহার করতে পারেন :

module_load_include('inc', 'node', 'node.admin');
$nids = db_query('SELECT nid FROM {node}')->fetchCol();
node_mass_update($nids, array());

আপনার সময়সীমা সম্পর্কে যত্ন নেওয়া দরকার না বলে এটি খুব ভাল। নোড আপডেটের জন্য ব্যাচ প্রক্রিয়া যদি 10 টিরও বেশি নোড থাকে তবে স্বয়ংক্রিয়ভাবে শুরু হবে।


5
200,000 এরও বেশি নোডে পুরোপুরি কাজ করেছেন Wor আপনার জন্য ব্যাচ পরিচালনা করে আপনি যদি ডিভেল মডিউল সক্ষম করে থাকেন তবে উপরের কোডটি কেবল '/ devel / php' পৃষ্ঠায় পেস্ট করতে পারেন
2pha

1
উজ্জ্বল সমাধান, ব্যাকগ্রাউন্ডে চলে তাই কোনও সময় সম্পাদন বা কোনও সাইটের কার্যকারিতা হত্যার কোনও সম্ভাবনা নেই
ড্যানিয়েল ওয়াটারস

5

আপডেট: আমি সবেমাত্র সমস্ত নোড পুনরায় তৈরি করেছি । আপাতত এটি নির্বাচিত নোড প্রকারের সমস্ত নোড পুনরায় সংরক্ষণ করতে একটি ব্যাচ প্রক্রিয়া ট্রিগার করতে একটি ফর্ম রয়েছে contains বর্তমানে আলফায় আমি পাশাপাশি ড্রশ কমান্ড (বিটা) এবং কিছু পরীক্ষা (স্থিতিশীল) যুক্ত করার পরিকল্পনা করছি।

ড্রুপাল সমস্ত নোডের স্ক্রিনশটটি পুনরায় সংরক্ষণ করুন


আছে resave নোড । এটি ক্রোন রান ব্যবহার করার উদ্দেশ্যে তৈরি intended তবে আপনি এটিকে ম্যানুয়ালি ট্রিগারও করতে পারেন। কোন বিষয়বস্তুর ধরণের নোডগুলি পুনঃসামিত করা উচিত তা কেবল চয়ন করুন।

"পুনরায় সংরক্ষণ করুন নোডস এখন" টিপে আপনি ম্যানুয়াল রিস্যাভ চালানোর আগে আপনাকে একবার "সংরক্ষণ করুন কনফিগারেশন" (ক্রোন টাইপ এবং সামগ্রীর ধরণ পছন্দ করেছেন) করতে হবে।


2

আপনার সামগ্রীর ধরণ অনুসারে অ্যাডমিন / সামগ্রী এবং ফিল্টার করুন - কেবল প্রকাশিত। সমস্ত নির্বাচন করুন এবং তারপরে অপারেশনগুলি ড্রপ ডাউন থেকে "মান পরিবর্তন করুন" নির্বাচন করুন। 'এক্সিকিউট' ক্লিক করুন। পরের পৃষ্ঠায়, বৈশিষ্ট্যগুলি থেকে 'স্থিতি' নির্বাচন করুন এবং প্রকাশিত ত্যাগ করুন। 'পরের' ক্লিক করুন সমস্ত প্রকাশিত নোড কোনও পরিবর্তন ছাড়াই পুনরায় আকারে ফিরিয়ে আনবে।

অপ্রকাশিত নোডের জন্য পুনরাবৃত্তি করুন (তবে সম্পত্তি হিসাবে অপ্রকাশিত নির্বাচন করুন)।

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