নতুন সংশোধনটিকে "বর্তমান" হিসাবে না নিয়েই কি আমি প্রোগ্রামগতভাবে একটি নতুন নোড সংশোধন তৈরি করতে পারি?


9

যখনই আমার ফিডগুলি আমদানি করা বিদ্যমান সামগ্রীর টুকরোটির একটি নতুন সংস্করণ সন্ধান করে, এটি ওভাররাইটিং ডেটার পরিবর্তে এই নোডের একটি নতুন সংশোধন তৈরি করে।

সাধারণত নতুন সংশোধন এখনই "বর্তমান" হয়ে যায়। আমি চাই যে বর্তমানে প্রদর্শিত সংশোধনটি একই থাকে তবে একটি মডারেটর পরে সিদ্ধান্ত নিতে দিন যে নতুনটি প্রকাশ করা উচিত।


1
আপনি কি ওয়ার্কবেঞ্চ নিয়ন্ত্রণ, কর্মপ্রবাহ বা একই কাজ করে এমন কোনও মডিউল ব্যবহার করার চেষ্টা করেছেন?
এমপিডোনাদিও

আমি না। আমি প্রাথমিকভাবে ধরে নিয়েছি যেহেতু আমি কোডে নোড তৈরি করেছি, সেগুলি প্রয়োগ হয়নি। সম্ভবত এটি ক্ষেত্রে না।
লেথারিয়ন

উত্তর:


13

একটি স্ট্যান্ডার্ড ড্রুপাল ইনস্টল আপনাকে "মুলতুবি" পুনর্বিবেচনা তৈরি করতে দেয় না। আপনার দুটি বিকল্প রয়েছে:

  1. কর্মসূচির ভিত্তিতে একটি নতুন সংশোধন তৈরি করুন তবে প্রোগ্রামগতভাবে মূল সংশোধনীতে ফিরে যেতে (এটি আরও নতুন সংশোধন তৈরি করে, তবে এতে মূল বিষয়বস্তু রয়েছে)
  2. (প্রস্তাবিত) ওয়ার্কবেঞ্চ নিয়ন্ত্রণ, পুনর্বিবেচনা বা ওয়ার্কফ্লো ব্যবহার করুন যা সংস্করণ নিয়ন্ত্রণ এবং / অথবা অ্যাক্সেস নিয়ন্ত্রণের জন্য সুচিন্তিত সমাধান solutions

বিকল্প 1 এর জন্য: আপনি এই কোডটিকে একটি নতুন বিধি হিসাবে যুক্ত করতে পারেন বা এটি একটি নতুন মডিউলে ব্যবহার করতে পারেন

<?php
  // Programatically load the existing revision and save it
  // Taken from http://api.drupal.org/api/drupal/modules!node!node.module/function/node_save/7
  // Load the revision
  $original_revision = node_load($nid);
  $original_revision->revision = 1;
  $original_revision->log = t('Copy of the revision from %date.', array('%date' => format_date($original_revision->revision_timestamp)));

  $new_revision = node_load($nid);
  // Make any changes to the new revision here...
  $new_revision->revision = 1;
  $new_revision->log = t('Summarize your changes here');

  // Save the new revision first
  node_save($new_revision);

  // Save the original one again so that it is still the current revision
  node_save($original_revision);

  watchdog('content', '@type: reverted %title revision %revision.', array('@type' => $node_revision->type, '%title' => $node_revision->title, '%revision' => $node_revision->vid));
  drupal_set_message(t('@type %title was saved with a new revision, but reverting to original revision from %revision-date.', array('@type' => node_type_get_name($node_revision), '%title' => $node_revision->title, '%revision-date' => format_date($node_revision->revision_timestamp))));
  drupal_goto('node/' . $node_revision->nid . '/revisions');
?>

বিকল্প 2 এর জন্য: আমি পুনর্বিবেচনা বা কর্মপ্রবাহের উপরে ওয়ার্কব্যাঞ্চের সুপারিশ করব, তবে প্রতিটি আপনার প্রয়োজন অনুসারে আলাদা different ওয়ার্কবেঞ্চটি পুনর্বিবেচনার এক ধরণের উত্তরসূরি, এবং ওয়ার্কফ্লো কেবল সংস্করণ নিয়ন্ত্রণের চেয়ে অনেক বেশি, তাই এটি আপনার প্রয়োজনের জন্য উপযুক্ত হতে পারে বা নাও হতে পারে।

ওয়ার্কবেঞ্চ এবং ওয়ার্কফ্লোয়ের মধ্যে পার্থক্যগুলির বিষয়ে একটি দ্রুত ব্রেকডাউন


প্রথম বিকল্পটি দুর্দান্ত হবে তবে আমি কীভাবে প্রত্যাবর্তন করব?
লেথারিয়ন

বিকল্প 1 এর জন্য কোড যুক্ত করা হয়েছে, তবে সত্যই বিকল্প 2 সম্ভবত আপনার সেরা বাজি কারণ এটি কোন সংস্করণটি বর্তমান তা হ্যান্ডল করার জন্য কার্যকারিতা যুক্ত করেছে, কেবল বার বার আসলটি আবার নকল করার পরিবর্তে
জননাথন এলমোর

লিঙ্কটি ভাঙা হয়েছে
ডিজিটোগোফার

হুক_ফর্ম_ল্টারে কোথায় লিখবেন?
কেটিএম

লিঙ্ক স্থির। @ আইসক্রিমজেলি, হুক_নোড_আপডেট চেষ্টা করুন।
জনাথন এলমোর

2

এটি অনুমান, তবে আমি ওয়ার্কবেঞ্চ মডিউলে ওয়ার্কবেঞ্চ মডারেশন সাব- মডিউলটি একটি শট দেব । আমি ওয়ার্কফ্লোয়ের চেয়ে সেট আপ করা অনেক সহজ খুঁজে পেয়েছি ।

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


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