কীভাবে নোড বা দ্রোশের সাথে নোডের একটি তালিকা মুছবেন?


8

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

" আমি কি দ্রূশের সাথে প্রদত্ত সামগ্রীর ধরণের নোডগুলি মুছতে পারি? " প্রশ্নে আমি 2 টি উত্তর কমান্ডের সাথে কথা drush node_delete <nid>বলেছি তবে আমি এই আদেশটি খুঁজে পাচ্ছি না।

আমি নোড_ডিলেট () সম্পর্কে এই কোডটি সম্পাদন করার জন্য কিছু কোড ব্যবহার করে একটি আলোচনায় পেয়েছি , তবে এটি ব্যবহার করছে:

drush php-eval "global \$user; \$user = user_load(1); node_delete(nid);"

এটি সম্পাদন করার জন্য কার্যকর কার্যকর কার্যকারিতা উপস্থিত না থাকায় এই কার্যকারিতা বাস্তবায়নের আরও ভাল উপায়: ড্রশ মডিউলে বা একটি নতুন মডিউল তৈরি করতে?

উত্তর:


6

আপনি যদি ড্রশ সত্তা মডিউলটি ব্যবহার করেন তবে আপনি নিজের drush entity-delete node 123সাইট থেকে এনআইডি 123 মুছতে চালাতে পারেন।

সম্পাদনা: যদি কারও কাছে drush entity-deleteকমান্ডটি ব্যবহার করা প্রয়োজন হয় তবে মডিউলের ডেভ সংস্করণটি ব্যবহার করা উচিত: https://www.drupal.org/project/drush_entity/releases/7.x-5.x-dev


ধন্যবাদ গ্রেগ, আপনি সর্বদা ড্রাশ স্টাফগুলিতে সহায়তা করছেন ;-)
অ্যাড্রিয়ান সিড

আমি ড্রাশ সত্তা মডিউলটির ভিতরে একটি বাগ পেয়েছি যারা নোডগুলি মোছার অনুমতি দেয় না, আমি প্যাচটি পরে করব।
অ্যাড্রিয়ান সিড আলমাগুয়ার


প্যাচ, জমা ছিল যদি কেউ ব্যবহার করতে প্রয়োজন drush entity-deleteকমান্ড এই মুহূর্তে ব্যবহার করা উচিত Drush সত্তা মডিউল এর Dev সংস্করণ drupal.org/project/drush_entity/releases/7.x-5.x-dev
আদ্রিয়ান Cid Almaguer

7

অবশেষে আমি নিজের নিজস্ব মডিউলটি তৈরি করি drush_delete

drush_delete.drush.incফাইলের অভ্যন্তরে এই কোডটি লিখুন:

<?php
/**
 * @file
 * The Drush Delete drush commands.
 */

/**
* Implements hook_drush_command().
*/
function drush_delete_drush_command() {
  $items['node-delete'] = array(
    'description' => dt("Delete nodes."),
    'aliases' => array('nd'),
    'arguments' => array(
      'nids' => dt('The nids of the nodes to delete'),
    ),
    'examples' => array(
      'drush node-delete 1' => dt('Delete the node with nid = 1.'),
      'drush node-delete 1 2 3' => dt('Delete the nodes with nid = 1, 2 and 3.'),

    ),
  );
  return $items;
}

/**
 * Callback for the node-delete command
 */
function drush_drush_delete_node_delete() {
  $nids = func_get_args();
  $nids = array_filter($nids, 'is_numeric');
  $nids = array_map('intval', $nids);
  $nids = array_unique($nids);
  $nids = array_values($nids);
  $cant = count($nids);

  if ($cant > 0) {
    node_delete_multiple($nids);

    drush_print(dt("Deleted nodes:"));
    drush_print(implode(' ', $nids));
  }
  else {
    drush_set_error('DRUSH_ERROR_CODE', dt("You must enter at least one nid"));
  }
}

মডিউলটি ইনস্টল করুন, drush cc drushড্রাশ ক্যাশে সাফ করার জন্য রান করুন এবং কমান্ডটি এভাবে ব্যবহার করুন:

নোড ব্যবহার মুছতে:

drush node-delete 1
drush nd 1

একাধিক নোড মুছতে ব্যবহার করুন:

drush node-delete 1 2 3
drush nd 1 2 3

আপনি এই মডিউলটিতে কমান্ডটি খুঁজে পেতে পারেন:

https://github.com/adrian-cid/drush_commands


6

IMHO সবচেয়ে সহজ উপায় পিএইচপি-ইভাল সহ:

drush php-eval "node_delete_multiple(array(NODE_ID));"

...

drush php-eval "node_delete_multiple(array(34));"     // for node/34

drush php-eval "node_delete_multiple(array(34, 35));" // for node ids 34 and 35

ধন্যবাদ, তবে আমি মনে করি আপনার যদি কোনও ড্রশ কমান্ড থাকে তবে আপনি প্রয়োজনীয় যুক্তি এবং বিকল্প যুক্ত করতে পারেন। এবং আপনি একটি সহজ উপায়ে বৈধতা যুক্ত করতে পারেন।
অ্যাড্রিয়ান সিড

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