শব্দভাণ্ডার (বাল্ক মুছুন) থেকে সমস্ত পদ কীভাবে মুছবেন?


10

আমার কাছে একটি বৃহত শব্দভাণ্ডার রয়েছে এবং অ্যাডমিনের মতামতগুলি এখনও শ্রমশৈলীর জন্য কাজ করে না। টেকনোমি ম্যানেজার পাশাপাশি এটি করে না। বাল্ক টার্ম মোছার জন্য কি কোনও বিকল্প আছে?

উত্তর:


15

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

এখানে চিত্র বর্ণনা লিখুন

আপনি কোডটি ব্যবহার করে এটি করতে চাইলে নীচের মতো কিছুতে সহায়তা করা উচিত:

$vocabulary = taxonomy_vocabulary_machine_name_load('my_custom_vocabulary');
foreach (taxonomy_get_tree($vocabulary->vid) as $term) {
  taxonomy_term_delete($term->tid);
}

ঠিক আছে ধন্যবাদ, যদিও ট্যাক্সো ম্যানেজারের কাছে বাল্ক সিলেক্ট বিকল্প নেই, এবং যদি আপনার শত শর্ত থাকে তবে আপনাকে প্রত্যেককে একটি করে চেক করতে হবে।
giorgio79

হ্যাঁ এটি আসলে বিরক্তিকর এক ধরণের, আমি তার জন্য একটি বৈশিষ্ট্য অনুরোধ রাখতে পারি
ক্লাইভ

2
উভয় ইউআই এবং কোড পদ্ধতি যুক্ত করার জন্য ধন্যবাদ! সর্বদা খুব দরকারী +1
ম্যাট ফ্লেচার

5
@ giorgio79 বেশিরভাগ আধুনিক ব্রাউজারগুলি শিফট + সমর্থন করে চেকবক্সগুলিতে ক্লিক করে। আপনি যদি একটি চেকবক্স ক্লিক করেন, তবে একই গ্রুপের অন্য চেকবক্সে শিফট + ক্লিক করুন, এই 2 টির মধ্যে থাকা সমস্ত চেকবক্সগুলি নির্বাচন / নির্বাচিত হবে।
Елин Й.

26

বিষয়বস্তুর ধরণ, শ্রমশক্তি শব্দভাণ্ডার ইত্যাদি দ্বারা বাল্ক-মোছার সামগ্রীগুলির একটি প্রিয় পদ্ধতি http://drupal.org/project/devel মডিউলটি ব্যবহার করে । একটি শব্দভাণ্ডারে সমস্ত পদ মুছে ফেলার জন্য:

  1. ডিভেল এবং ডেভেল জেনারেট মডিউলগুলি সক্ষম করুন
  2. বিকাশ> শর্তাদি উত্পন্ন করুন এ যান
  3. আপনি যে শব্দকোষ থেকে পদগুলি মুছতে চান তা নির্বাচন করুন
  4. উত্পাদনের শর্তাদি সংখ্যার জন্য "0" লিখুন
  5. "নতুন উত্পন্ন করার আগে বিদ্যমান পদগুলি মুছুন" পরীক্ষা করুন
  6. জমা দিন ক্লিক করুন

ভয়েলা - খালি শব্দভাণ্ডার, অন্যথায় ছোঁয়াচে।


মডিউলটি বলা হয়:
ডেভেল

6

আপনি নিম্নলিখিত কমান্ডটি ব্যবহার করতে পারেন:

drush -v eval 'foreach(taxonomy_get_tree(123) as $term) { taxonomy_term_delete($term->tid); }'

যদি এটি কাজ না করে তবে নিশ্চিত হয়ে নিন যে আপনি নিজের ক্যাশে সাফ করেছেন (যেমন মেমক্যাচড)।

বা নীচের নোংরা এসকিউএল কোয়েরি ব্যবহার করে দ্রুততর উপায়:

drush sqlq "DELETE FROM taxonomy_term_data WHERE vid = 123"

যেখানে 123 আপনার ভোকাবুলারি আইডি যা আপনার পরিবর্তন করা উচিত।

আপনি vidনিম্নলিখিত শব্দটি দিয়ে আপনার শব্দভাণ্ডারের নাম পেতে পারেন :

drush sqlq "SELECT name, vid FROM taxonomy_vocabulary WHERE name = 'vocabulary_name'"

আরো দেখুন:


1
এটি খুব সুন্দরভাবে কাজ করে :-)
আলেজান্দ্রো মোরেনো

1
দুর্দান্ত উত্তর! আপনি আরও upvotes প্রাপ্য!
লুটারো রোসেলস

1
এমনকি যদি আপনি স্বাচ্ছন্দ্য বোধ করেন তবে আপনি দুটিও একত্রিত করতে পারেন: drush sqlq "DELETE FROM taxonomy_term_data WHERE vid = (SELECT vid FROM taxonomy_vocabulary WHERE name = 'vocabulary_name')"
কির্কল্যান্ড

2

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


2

ড্রুপাল in-এর একটি ভোকাবুলারির মধ্যে সমস্ত শ্রেণীবদ্ধ শর্তাদি সর্বাধিক মুছে ফেলার জন্য, সমস্ত পদ taxonomy_term_deleteদিয়ে লুপ করে ফাংশনটি ব্যবহার করুন ।

নিম্নলিখিত উদাহরণ বিবেচনা করুন:

// Get metadata about the vocabulary from its machine name
$vocab = taxonomy_vocabulary_machine_name_load('TAXONOMY_MACHINE_NAME');

// Get a hierarchical representation of all terms
$terms = taxonomy_get_tree($vocab->vid);

// Loop thru all terms in the taxonomy, deleting each one
if (!empty($terms)) {
  foreach ($terms as $term) {
    taxonomy_term_delete($term->tid);
  }
}

তার চেয়ে সহজ যদি আপনি Drush এবং devel মডিউল ইনস্টল, আপনি বাল্ক করার জন্য নিম্নোক্ত কমান্ডটি আপনার শেল মতো পরিবেশ থেকে বর্গীকরণ সূত্র * সমস্ত পদ মুছতে ব্যবহার করতে পারেন:

$ উত্পাদিত শর্তাদি ড্রাক্স TAXONOMY_MACHINE_NAME 0 --কিল

* এটি ধরে নেয় আপনার ডিভেল জেনারেট মডিউল সক্ষম হয়েছে, যা প্রয়োজন হলে এটি করা যেতে পারে:

$ drush en -y devel && drush en -y devel_generate


ড্রশ জেনারেট-পদগুলির জন্য ধন্যবাদ কারণ এটি ইউআই থেকে ব্যবহার করার সময় বয়ে গিয়েছিল
জিওরগোস্ক

1

ট্যাক্সোনমি পদগুলির ডিফল্ট প্রদর্শন প্রতিস্থাপনের জন্য ভিউ পাওয়ার জন্য আমি ভিবিওর সাথে অ্যাডমিন ভিউগুলি ব্যবহার করার পরামর্শ দেব ।

আপনার যা করতে হবে তা হল:

  1. অবশ্যই সেই মডিউলগুলি সক্ষম করুন
  2. "প্রশাসন: ট্যাক্সনোমির শর্তাদি" নামে পরিচিতি সক্ষম করুন
  3. "বাল্ক অপারেশন: ট্যাক্সোনমি শব্দ" নামে পরিচিত একটি কলাম যুক্ত করুন
  4. ফ্লাশ ক্যাসস - তারপরে অ্যাডমিন> স্ট্রাকচার> টেকনোমি> নির্দিষ্ট ভোকাব এ যান to

বাল্ক অপারেশন এবং প্রশাসনিক দর্শনগুলি দেখুন


1

আমি এখানে সমস্ত ট্যাক্সনোমির শর্তাদি মুছে ফেলার জন্য কীভাবে একটি বোতাম যুক্ত করতে পারি সে সম্পর্কে একটি ব্লগ পোস্ট লিখেছি ।

মূলত:

আমি এর জন্য jQuery ইজি কনফার্ম ডায়ালগ প্লাগইন ব্যবহার করছি । প্রথমে এখান থেকে গ্রন্থাগারটি ডাউনলোড করুন এবং এটি আপনার থিমস জেএস ফোল্ডারে রাখুন।

তারপরে আমরা কাস্টম মডিউলে একটি সামান্য কোড সহ একটি "সমস্ত শর্তাদি মুছুন" বোতামটি যুক্ত করতে পারি:

function hook_form_alter(&$form, &$form_state, $form_id) {
    switch($form_id) {
        case 'taxonomy_overview_terms':

            if($form['#total_entries']) {
                drupal_add_library('system', 'ui.dialog');
                drupal_add_js(drupal_get_path('theme', 'YOUR_THEME_NAME').'/js/jquery.easy-confirm-dialog.js');         
                $js = 'jQuery(document).ready(function($){$(".confirm").easyconfirm({locale: { title: \'Delete all '.$form['#vocabulary']->name.' terms\', button: [\'No\',\'Yes\']}});});';
                drupal_add_js($js, array('type'=>'inline'));
                $form['actions']['delete_all'] = array(
                    '#markup' => '<a href="https://drupal.stackexchange.com/admin/structure/taxonomy/'.$form['#vocabulary']->vid.'/delete-all" class="button confirm" title="Are you sure you want to delete all terms from the '.$form['#vocabulary']->name.' vocabulary?">Delete All Terms</a>',
                    '#weight' => 10,
                    '#attributes' => array('class' => array('button'))
                );
            }

            break;
    }
}

শর্তগুলি মুছতে এখন আমাদের আমাদের ফাংশনের পথটি নির্ধারণ করতে হবে:

function hook_menu() {
    $items = array();
    $items['admin/structure/taxonomy/%/delete-all'] = array(
        'title' => 'Delete all taxonomy terms',
        'type' => MENU_CALLBACK,
        'page callback' => 'delete_all_taxonomy_terms',
        'page arguments'    =>  array(3),
        'access arguments'  =>  array('administer taxonomy'),
    );
    return $items;
}

এবং অবশেষে শর্তাদি মোছার জন্য কার্যকারিতা যুক্ত করুন:

function delete_all_taxonomy_terms($vid) {
    $vocabulary = taxonomy_vocabulary_load($vid);
    $query = new EntityFieldQuery();
    $result = $query
        ->entityCondition('entity_type', 'taxonomy_term')
        ->propertyCondition('vid', $vid)
        ->execute();
    foreach($result['taxonomy_term'] as $term) {
        taxonomy_term_delete($term->tid);
    }
    drupal_set_message('All terms have been deleted from the '.$vocabulary->name.' vocabulary');
    drupal_goto('admin/structure/taxonomy/'.$vocabulary->machine_name);
}

0

উত্তরগুলি সম্পূর্ণ করতে এখানে একটি মডিউল হুবহু এটি করছে। এটি হ'ল ট্যাক্সনমি_ডিলেট_সকল_মিটার মডিউল। আমি এটি ব্যবহার করেছি এবং এটি কাজ করে।

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


0

আমার উত্তরটি মূল প্রশ্নের সাথে জড়িত। উপর নির্মাণের kenorb এর উত্তর, আপনি যদি আপনার সাইটে সব শব্দভাণ্ডারের পরিষ্কার করতে চান, আপনি নিম্নলিখিত চালাতে পারেন:

drush -v eval '$vocabularies = taxonomy_get_vocabularies(); foreach($vocabularies as $vocabulary) { foreach(taxonomy_get_tree($vocabulary->vid) as $term) { taxonomy_term_delete($term->tid);}}'

0

@ টেক্সাস_ব্রোনিয়াসের দ্বারা বলা হয়েছিল, আপনি যদি ডেভেল জেনারেট সক্ষম করে থাকেন তবে আপনি এটি ব্যবহার করতে পারেন তবে এটি আরও একধাপ এগিয়ে নিয়ে যেতে পারেন, আপনি যদি ড্রাশও ইনস্টল করে থাকেন তবে আমি এই আদেশটি ব্যবহার করব:

ড্রাশ জেনারেট-পদগুলি [শব্দভাণ্ডার_ম্যাচিন_নাম] 0 --কিল

এবং কেবল আপনার শব্দভান্ডারের মেশিনের নামের সাথে [শব্দভান্ডার_ম্যাচিন_নাম] প্রতিস্থাপন করুন। "0" হ'ল কতগুলি শর্ত যুক্ত করতে হবে এবং "- কিল" হ'ল এটি বর্তমানে রয়েছে সেগুলি সরাতে।

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